Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exclude non-package files from hatch build #2388

Draft
wants to merge 3 commits into
base: develop
Choose a base branch
from

Conversation

jemrobinson
Copy link
Member

@jemrobinson jemrobinson commented Jan 28, 2025

✅ Checklist

  • You have given your pull request a meaningful title (e.g. Enable foobar integration rather than 515 foobar).
  • You are targeting the appropriate branch. If you're not certain which one this is, it should be develop.
  • Your branch is up-to-date with the target branch (it probably was when you started, but it may have changed since then).

🚦 Depends on

n/a

⤴️ Summary

Excludes non-package files from hatch build

🌂 Related issues

Closes #2373

🔬 Tests

Tested on a local build:

Contents before

dist/data_safe_haven-5.3.1
├── CITATION.cff
├── CODEOWNERS
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── DISCLAIMER.md
├── LICENSE
├── PKG-INFO
├── README.md
├── ROADMAP.md
├── SECURITY.md
├── VERSIONING.md
├── data_safe_haven
│   ├── __init__.py
│   ├── administration
│   │   ├── __init__.py
│   │   └── users
│   │       ├── __init__.py
│   │       ├── entra_users.py
│   │       ├── guacamole_users.py
│   │       ├── research_user.py
│   │       └── user_handler.py
│   ├── commands
│   │   ├── __init__.py
│   │   ├── cli.py
│   │   ├── config.py
│   │   ├── context.py
│   │   ├── pulumi.py
│   │   ├── shm.py
│   │   ├── sre.py
│   │   └── users.py
│   ├── config
│   │   ├── __init__.py
│   │   ├── config_sections.py
│   │   ├── context.py
│   │   ├── context_manager.py
│   │   ├── dsh_pulumi_config.py
│   │   ├── dsh_pulumi_project.py
│   │   ├── shm_config.py
│   │   └── sre_config.py
│   ├── console
│   │   ├── __init__.py
│   │   ├── format.py
│   │   ├── pretty.py
│   │   └── prompts.py
│   ├── directories.py
│   ├── exceptions
│   │   └── __init__.py
│   ├── external
│   │   ├── __init__.py
│   │   ├── api
│   │   │   ├── __init__.py
│   │   │   ├── azure_sdk.py
│   │   │   ├── credentials.py
│   │   │   └── graph_api.py
│   │   └── interface
│   │       ├── __init__.py
│   │       ├── azure_container_instance.py
│   │       ├── azure_ipv4_range.py
│   │       ├── azure_postgresql_database.py
│   │       └── pulumi_account.py
│   ├── functions
│   │   ├── __init__.py
│   │   ├── network.py
│   │   └── strings.py
│   ├── infrastructure
│   │   ├── __init__.py
│   │   ├── common
│   │   │   ├── __init__.py
│   │   │   ├── dockerhub_credentials.py
│   │   │   ├── ip_ranges.py
│   │   │   └── transformations.py
│   │   ├── components
│   │   │   ├── __init__.py
│   │   │   ├── composite
│   │   │   │   ├── __init__.py
│   │   │   │   ├── entra_application.py
│   │   │   │   ├── local_dns_record.py
│   │   │   │   ├── microsoft_sql_database.py
│   │   │   │   ├── nfsv3_blob_container.py
│   │   │   │   ├── nfsv3_storage_account.py
│   │   │   │   ├── postgresql_database.py
│   │   │   │   └── virtual_machine.py
│   │   │   ├── dynamic
│   │   │   │   ├── __init__.py
│   │   │   │   ├── blob_container_acl.py
│   │   │   │   ├── dsh_resource_provider.py
│   │   │   │   ├── file_share_file.py
│   │   │   │   └── ssl_certificate.py
│   │   │   └── wrapped
│   │   │       ├── __init__.py
│   │   │       └── log_analytics_workspace.py
│   │   ├── programs
│   │   │   ├── __init__.py
│   │   │   ├── declarative_sre.py
│   │   │   ├── imperative_shm.py
│   │   │   └── sre
│   │   │       ├── __init__.py
│   │   │       ├── application_gateway.py
│   │   │       ├── apt_proxy_server.py
│   │   │       ├── backup.py
│   │   │       ├── clamav_mirror.py
│   │   │       ├── data.py
│   │   │       ├── database_servers.py
│   │   │       ├── desired_state.py
│   │   │       ├── dns_server.py
│   │   │       ├── entra.py
│   │   │       ├── firewall.py
│   │   │       ├── gitea_server.py
│   │   │       ├── hedgedoc_server.py
│   │   │       ├── identity.py
│   │   │       ├── monitoring.py
│   │   │       ├── networking.py
│   │   │       ├── remote_desktop.py
│   │   │       ├── software_repositories.py
│   │   │       ├── user_services.py
│   │   │       └── workspaces.py
│   │   └── project_manager.py
│   ├── logging
│   │   ├── __init__.py
│   │   ├── logger.py
│   │   ├── non_logging_singleton.py
│   │   └── plain_file_handler.py
│   ├── provisioning
│   │   ├── __init__.py
│   │   └── sre_provisioning_manager.py
│   ├── resources
│   │   ├── __init__.py
│   │   ├── dns_server
│   │   │   ├── AdGuardHome.mustache.yaml
│   │   │   └── entrypoint.sh
│   │   ├── gitea
│   │   │   ├── caddy
│   │   │   │   └── Caddyfile
│   │   │   └── gitea
│   │   │       ├── configure.mustache.sh
│   │   │       └── entrypoint.sh
│   │   ├── hedgedoc
│   │   │   ├── caddy
│   │   │   │   └── Caddyfile
│   │   │   └── hedgedoc
│   │   │       └── config.json
│   │   ├── remote_desktop
│   │   │   ├── caddy
│   │   │   │   └── Caddyfile
│   │   │   └── postgresql
│   │   │       ├── init_db.mustache.sql
│   │   │       ├── list_users.mustache.sql
│   │   │       └── update_connections.mustache.sql
│   │   ├── software_repositories
│   │   │   ├── allowlists
│   │   │   │   ├── cran.allowlist
│   │   │   │   └── pypi.allowlist
│   │   │   └── caddy
│   │   │       └── Caddyfile
│   │   ├── update_server
│   │   │   └── update_server_linux.cloud_init.yaml
│   │   └── workspace
│   │       ├── ansible
│   │       │   ├── desired_state.yaml
│   │       │   ├── files
│   │       │   │   ├── etc
│   │       │   │   │   ├── clamav
│   │       │   │   │   │   └── clamd.conf
│   │       │   │   │   ├── polkit-1
│   │       │   │   │   │   └── localauthority
│   │       │   │   │   │       └── 50-local.d
│   │       │   │   │   │           └── 50-colord.pkla
│   │       │   │   │   ├── skel
│   │       │   │   │   │   ├── Desktop
│   │       │   │   │   │   │   ├── input.desktop
│   │       │   │   │   │   │   ├── output.desktop
│   │       │   │   │   │   │   └── shared.desktop
│   │       │   │   │   │   ├── bashrc
│   │       │   │   │   │   └── xsession
│   │       │   │   │   ├── systemd
│   │       │   │   │   │   └── system
│   │       │   │   │   │       ├── clamav-clamdscan.service
│   │       │   │   │   │       ├── clamav-clamdscan.timer
│   │       │   │   │   │       └── clamav-clamonacc.service
│   │       │   │   │   ├── xdg
│   │       │   │   │   │   └── xfce4
│   │       │   │   │   │       └── terminal
│   │       │   │   │   │           └── terminalrc
│   │       │   │   │   └── xrdp
│   │       │   │   │       └── xrdp.ini
│   │       │   │   └── usr
│   │       │   │       └── local
│   │       │   │           ├── bin
│   │       │   │           │   └── privileged-rules
│   │       │   │           ├── share
│   │       │   │           │   ├── icons
│   │       │   │           │   │   ├── gitea.png
│   │       │   │           │   │   └── hedgedoc.png
│   │       │   │           │   └── xrdp
│   │       │   │           │       └── dsh_logo_240x140_256color.bmp
│   │       │   │           └── smoke_tests
│   │       │   │               ├── run_all_tests.bats
│   │       │   │               ├── test_databases.sh
│   │       │   │               ├── test_databases_R.R
│   │       │   │               ├── test_databases_python.py
│   │       │   │               ├── test_functionality_R.R
│   │       │   │               ├── test_functionality_python.py
│   │       │   │               ├── test_mounted_drives.sh
│   │       │   │               ├── test_repository_R.sh
│   │       │   │               └── test_repository_python.sh
│   │       │   ├── host_vars
│   │       │   │   └── localhost.yaml
│   │       │   ├── tasks
│   │       │   │   ├── auditd.yaml
│   │       │   │   ├── clamav.yaml
│   │       │   │   ├── install_deb.yaml
│   │       │   │   ├── ldap.yaml
│   │       │   │   ├── package_proxy.yaml
│   │       │   │   ├── packages.yaml
│   │       │   │   ├── smoke_tests.yaml
│   │       │   │   ├── sshd.yaml
│   │       │   │   ├── ubuntu_pro.yaml
│   │       │   │   ├── user_config.yaml
│   │       │   │   ├── xfce.yaml
│   │       │   │   └── xrdp.yaml
│   │       │   └── templates
│   │       │       └── etc
│   │       │           ├── R
│   │       │           │   └── Rprofile.site.j2
│   │       │           ├── audit
│   │       │           │   └── rules.d
│   │       │           │       └── audit.rules.j2
│   │       │           ├── database_credential.j2
│   │       │           ├── nslcd.conf.j2
│   │       │           ├── pip.conf.j2
│   │       │           └── skel
│   │       │               └── Desktop
│   │       │                   ├── gitea.desktop.j2
│   │       │                   └── hedgedoc.desktop.j2
│   │       └── workspace.cloud_init.mustache.yaml
│   ├── serialisers
│   │   ├── __init__.py
│   │   ├── azure_serialisable_model.py
│   │   ├── context_base.py
│   │   └── yaml_serialisable_model.py
│   ├── singleton.py
│   ├── types
│   │   ├── __init__.py
│   │   ├── annotated_types.py
│   │   ├── enums.py
│   │   └── types.py
│   ├── utility
│   │   ├── __init__.py
│   │   └── file_reader.py
│   ├── validators
│   │   ├── __init__.py
│   │   ├── typer.py
│   │   └── validators.py
│   └── version.py
├── docs
│   └── source
│       ├── _static
│       │   ├── favicon.ico
│       │   ├── logo_turing_dark.png
│       │   ├── logo_turing_light.png
│       │   ├── overrides.css
│       │   └── scriberia_diagram.jpg
│       ├── conf.py
│       ├── contributing
│       │   ├── devops_gap.png
│       │   ├── example-conversation-in-issue.png
│       │   ├── gitflow.svg
│       │   └── index.md
│       ├── deployment
│       │   ├── configure_entra_id.md
│       │   ├── deploy_shm.md
│       │   ├── deploy_sre.md
│       │   ├── images
│       │   │   ├── backup_fix_protection_error.png
│       │   │   └── entra_authentication_methods.png
│       │   ├── index.md
│       │   ├── security_checklist
│       │   │   ├── no_internet_browser.png
│       │   │   ├── no_internet_curl.png
│       │   │   ├── no_nslookup.png
│       │   │   ├── no_ssh_fqdn.png
│       │   │   ├── no_ssh_ip.png
│       │   │   ├── no_valid_workspaces.png
│       │   │   ├── nsg_inbound_access.png
│       │   │   ├── pypi_t2_allowed.png
│       │   │   ├── pypi_t2_disallowed.png
│       │   │   ├── pypi_t3_allowed.png
│       │   │   ├── pypi_t3_disallowed.png
│       │   │   ├── security_checklist_template.md
│       │   │   ├── sspr.png
│       │   │   ├── sspr_success.png
│       │   │   ├── valid_workspaces.png
│       │   │   └── workspace_xfce_initial.png
│       │   ├── security_checklist.md
│       │   └── setup_context.md
│       ├── design
│       │   ├── index.md
│       │   └── security
│       │       ├── index.md
│       │       ├── objectives.md
│       │       ├── reference_configuration.md
│       │       ├── sample_security_controls.png
│       │       └── technical_controls.md
│       ├── index.md
│       ├── management
│       │   ├── data.md
│       │   ├── egress_token_read_only.png
│       │   ├── index.md
│       │   ├── ingress_token_write_only.png
│       │   ├── logs.md
│       │   ├── sre.md
│       │   └── user.md
│       ├── overview
│       │   ├── index.md
│       │   ├── sensitivity_tiers.md
│       │   ├── using_dsh.md
│       │   ├── what_is_dsh.md
│       │   └── why_use_dsh.md
│       ├── reference
│       │   ├── config.md
│       │   ├── context.md
│       │   ├── index.md
│       │   ├── pulumi.md
│       │   ├── shm.md
│       │   ├── sre.md
│       │   └── users.md
│       └── roles
│           ├── data_provider_representative
│           │   ├── azcopy_warning.png
│           │   ├── azure_storage_explorer_connect.png
│           │   ├── azure_storage_explorer_container.png
│           │   ├── azure_storage_explorer_error.png
│           │   ├── data_ingress.md
│           │   └── index.md
│           ├── index.md
│           ├── investigator
│           │   ├── data_egress.md
│           │   ├── data_ingress.md
│           │   └── index.md
│           ├── programme_manager
│           │   └── index.md
│           ├── project_manager
│           │   ├── data_egress.md
│           │   ├── data_ingress.md
│           │   ├── index.md
│           │   └── project_lifecycle.md
│           ├── researcher
│           │   ├── accessing_the_sre.md
│           │   ├── available_software.md
│           │   ├── images
│           │   │   ├── account_setup_captcha.png
│           │   │   ├── account_setup_forgotten_password.png
│           │   │   ├── account_setup_mfa_add_authenticator_app.png
│           │   │   ├── account_setup_mfa_additional_security_verification.png
│           │   │   ├── account_setup_mfa_allow_notifications.png
│           │   │   ├── account_setup_mfa_app_qrcode.png
│           │   │   ├── account_setup_mfa_choose_authenticator_app.png
│           │   │   ├── account_setup_mfa_dashboard_microsoft_authenticator.png
│           │   │   ├── account_setup_mfa_dashboard_phone_only.png
│           │   │   ├── account_setup_mfa_dashboard_totp_authenticator.png
│           │   │   ├── account_setup_mfa_microsoft_authenticator_app_approved.png
│           │   │   ├── account_setup_mfa_microsoft_authenticator_app_test.png
│           │   │   ├── account_setup_mfa_registered_phone.png
│           │   │   ├── account_setup_mfa_totp_allow_notifications.png
│           │   │   ├── account_setup_mfa_totp_app_qrcode.png
│           │   │   ├── account_setup_mfa_totp_authenticator_app_approved.png
│           │   │   ├── account_setup_mfa_totp_authenticator_app_test.png
│           │   │   ├── account_setup_mfa_verified_phone.png
│           │   │   ├── account_setup_mfa_verifying_phone.png
│           │   │   ├── account_setup_more_information_required.png
│           │   │   ├── account_setup_new_password.png
│           │   │   ├── account_setup_new_password_sign_in.png
│           │   │   ├── account_setup_verify_phone.png
│           │   │   ├── db_beekeeper_studio_mssql.png
│           │   │   ├── db_beekeeper_studio_postgres.png
│           │   │   ├── firefox_not_responding.png
│           │   │   ├── gitea_dashboard.png
│           │   │   ├── gitea_explore.png
│           │   │   ├── gitea_homepage.png
│           │   │   ├── gitea_login.png
│           │   │   ├── gitea_new_repository.png
│           │   │   ├── gitea_pull_request_diff.png
│           │   │   ├── gitea_pull_request_finish.png
│           │   │   ├── gitea_pull_request_start.png
│           │   │   ├── gitea_repository_view.png
│           │   │   ├── guacamole_dashboard.png
│           │   │   ├── guacamole_dashboard_multiple_workspaces.png
│           │   │   ├── guacamole_mfa.png
│           │   │   ├── guacamole_oauth_login.png
│           │   │   ├── hedgedoc_access_options.png
│           │   │   ├── hedgedoc_homepage.png
│           │   │   ├── hedgedoc_login.png
│           │   │   ├── hedgedoc_publish.png
│           │   │   ├── workspace_desktop_applications.png
│           │   │   ├── workspace_desktop_pycharm.png
│           │   │   ├── workspace_desktop_rstudio.png
│           │   │   ├── workspace_desktop_vscodium.png
│           │   │   ├── workspace_login_failure.png
│           │   │   ├── workspace_login_screen.png
│           │   │   ├── workspace_terminal_python.png
│           │   │   ├── workspace_terminal_r.png
│           │   │   └── workspace_xfce_initial.png
│           │   ├── index.md
│           │   ├── new_user_setup.md
│           │   ├── snippets
│           │   │   ├── software_database.partial.md
│           │   │   ├── software_editors.partial.md
│           │   │   ├── software_languages.partial.md
│           │   │   ├── software_other.partial.md
│           │   │   └── software_presentation.partial.md
│           │   ├── troubleshooting.md
│           │   └── using_the_sre.md
│           └── system_manager
│               └── index.md
├── pyproject.toml
├── tests
│   ├── commands
│   │   ├── conftest.py
│   │   ├── test_cli.py
│   │   ├── test_config_shm.py
│   │   ├── test_config_sre.py
│   │   ├── test_context.py
│   │   ├── test_pulumi.py
│   │   ├── test_shm.py
│   │   ├── test_sre.py
│   │   └── test_users.py
│   ├── config
│   │   ├── test_config_sections.py
│   │   ├── test_context_manager.py
│   │   ├── test_pulumi.py
│   │   ├── test_shm_config.py
│   │   └── test_sre_config.py
│   ├── conftest.py
│   ├── console
│   │   ├── test_format.py
│   │   ├── test_pretty.py
│   │   └── test_prompts.py
│   ├── external
│   │   └── api
│   │       ├── conftest.py
│   │       ├── test_azure_sdk.py
│   │       ├── test_credentials.py
│   │       └── test_graph_api.py
│   ├── functions
│   │   ├── test_network.py
│   │   └── test_strings.py
│   ├── infrastructure
│   │   ├── common
│   │   │   └── test_ip_ranges.py
│   │   ├── programs
│   │   │   ├── resource_assertions.py
│   │   │   └── sre
│   │   │       ├── conftest.py
│   │   │       ├── test_application_gateway.py
│   │   │       ├── test_firewall.py
│   │   │       └── test_workspaces.py
│   │   └── test_project_manager.py
│   ├── logging
│   │   ├── test_logger.py
│   │   ├── test_non_logging_singleton.py
│   │   └── test_plain_file_handler.py
│   ├── serialisers
│   │   ├── test_azure_serialisable_model.py
│   │   └── test_yaml_serialisable_model.py
│   └── validators
│       ├── test_typer_validators.py
│       └── test_validators.py
└── typings
    ├── fqdn
    │   └── __init__.pyi
    ├── pulumi
    │   └── __init__.pyi
    ├── pulumi_azure_native
    │   └── __init__.pyi
    └── typer
        ├── __init__.pyi
        ├── main.pyi
        ├── models.pyi
        └── params.pyi

113 directories, 367 files

Contents after

data_safe_haven-5.3.0
├── CITATION.cff
├── DISCLAIMER.md
├── LICENSE
├── PKG-INFO
├── README.md
├── SECURITY.md
├── data_safe_haven
│   ├── __init__.py
│   ├── administration
│   │   ├── __init__.py
│   │   └── users
│   │       ├── __init__.py
│   │       ├── entra_users.py
│   │       ├── guacamole_users.py
│   │       ├── research_user.py
│   │       └── user_handler.py
│   ├── allowlist
│   │   ├── __init__.py
│   │   └── allowlist.py
│   ├── commands
│   │   ├── __init__.py
│   │   ├── allowlist.py
│   │   ├── cli.py
│   │   ├── config.py
│   │   ├── context.py
│   │   ├── pulumi.py
│   │   ├── shm.py
│   │   ├── sre.py
│   │   └── users.py
│   ├── config
│   │   ├── __init__.py
│   │   ├── config_sections.py
│   │   ├── context.py
│   │   ├── context_manager.py
│   │   ├── dsh_pulumi_config.py
│   │   ├── dsh_pulumi_project.py
│   │   ├── shm_config.py
│   │   └── sre_config.py
│   ├── console
│   │   ├── __init__.py
│   │   ├── format.py
│   │   ├── pretty.py
│   │   └── prompts.py
│   ├── directories.py
│   ├── exceptions
│   │   └── __init__.py
│   ├── external
│   │   ├── __init__.py
│   │   ├── api
│   │   │   ├── __init__.py
│   │   │   ├── azure_sdk.py
│   │   │   ├── credentials.py
│   │   │   └── graph_api.py
│   │   └── interface
│   │       ├── __init__.py
│   │       ├── azure_container_instance.py
│   │       ├── azure_ipv4_range.py
│   │       ├── azure_postgresql_database.py
│   │       └── pulumi_account.py
│   ├── functions
│   │   ├── __init__.py
│   │   ├── network.py
│   │   └── strings.py
│   ├── infrastructure
│   │   ├── __init__.py
│   │   ├── common
│   │   │   ├── __init__.py
│   │   │   ├── dockerhub_credentials.py
│   │   │   ├── ip_ranges.py
│   │   │   └── transformations.py
│   │   ├── components
│   │   │   ├── __init__.py
│   │   │   ├── composite
│   │   │   │   ├── __init__.py
│   │   │   │   ├── entra_application.py
│   │   │   │   ├── local_dns_record.py
│   │   │   │   ├── microsoft_sql_database.py
│   │   │   │   ├── nfsv3_blob_container.py
│   │   │   │   ├── nfsv3_storage_account.py
│   │   │   │   ├── postgresql_database.py
│   │   │   │   └── virtual_machine.py
│   │   │   ├── dynamic
│   │   │   │   ├── __init__.py
│   │   │   │   ├── blob_container_acl.py
│   │   │   │   ├── dsh_resource_provider.py
│   │   │   │   ├── file_share_file.py
│   │   │   │   └── ssl_certificate.py
│   │   │   └── wrapped
│   │   │       ├── __init__.py
│   │   │       └── log_analytics_workspace.py
│   │   ├── programs
│   │   │   ├── __init__.py
│   │   │   ├── declarative_sre.py
│   │   │   ├── imperative_shm.py
│   │   │   └── sre
│   │   │       ├── __init__.py
│   │   │       ├── application_gateway.py
│   │   │       ├── apt_proxy_server.py
│   │   │       ├── backup.py
│   │   │       ├── clamav_mirror.py
│   │   │       ├── data.py
│   │   │       ├── database_servers.py
│   │   │       ├── desired_state.py
│   │   │       ├── dns_server.py
│   │   │       ├── entra.py
│   │   │       ├── firewall.py
│   │   │       ├── gitea_server.py
│   │   │       ├── hedgedoc_server.py
│   │   │       ├── identity.py
│   │   │       ├── monitoring.py
│   │   │       ├── networking.py
│   │   │       ├── remote_desktop.py
│   │   │       ├── software_repositories.py
│   │   │       ├── user_services.py
│   │   │       └── workspaces.py
│   │   └── project_manager.py
│   ├── logging
│   │   ├── __init__.py
│   │   ├── logger.py
│   │   ├── non_logging_singleton.py
│   │   └── plain_file_handler.py
│   ├── provisioning
│   │   ├── __init__.py
│   │   └── sre_provisioning_manager.py
│   ├── resources
│   │   ├── __init__.py
│   │   ├── dns_server
│   │   │   ├── AdGuardHome.mustache.yaml
│   │   │   └── entrypoint.sh
│   │   ├── gitea
│   │   │   ├── caddy
│   │   │   │   └── Caddyfile
│   │   │   └── gitea
│   │   │       ├── configure.mustache.sh
│   │   │       └── entrypoint.sh
│   │   ├── hedgedoc
│   │   │   ├── caddy
│   │   │   │   └── Caddyfile
│   │   │   └── hedgedoc
│   │   │       └── config.json
│   │   ├── remote_desktop
│   │   │   ├── caddy
│   │   │   │   └── Caddyfile
│   │   │   └── postgresql
│   │   │       ├── init_db.mustache.sql
│   │   │       ├── list_users.mustache.sql
│   │   │       └── update_connections.mustache.sql
│   │   ├── software_repositories
│   │   │   ├── allowlists
│   │   │   │   ├── cran.allowlist
│   │   │   │   └── pypi.allowlist
│   │   │   └── caddy
│   │   │       └── Caddyfile
│   │   ├── update_server
│   │   │   └── update_server_linux.cloud_init.yaml
│   │   └── workspace
│   │       ├── ansible
│   │       │   ├── desired_state.yaml
│   │       │   ├── files
│   │       │   │   ├── etc
│   │       │   │   │   ├── clamav
│   │       │   │   │   │   └── clamd.conf
│   │       │   │   │   ├── polkit-1
│   │       │   │   │   │   └── localauthority
│   │       │   │   │   │       └── 50-local.d
│   │       │   │   │   │           └── 50-colord.pkla
│   │       │   │   │   ├── skel
│   │       │   │   │   │   ├── Desktop
│   │       │   │   │   │   │   ├── input.desktop
│   │       │   │   │   │   │   ├── output.desktop
│   │       │   │   │   │   │   └── shared.desktop
│   │       │   │   │   │   ├── bashrc
│   │       │   │   │   │   └── xsession
│   │       │   │   │   ├── systemd
│   │       │   │   │   │   └── system
│   │       │   │   │   │       ├── clamav-clamdscan.service
│   │       │   │   │   │       ├── clamav-clamdscan.timer
│   │       │   │   │   │       └── clamav-clamonacc.service
│   │       │   │   │   ├── xdg
│   │       │   │   │   │   └── xfce4
│   │       │   │   │   │       └── terminal
│   │       │   │   │   │           └── terminalrc
│   │       │   │   │   └── xrdp
│   │       │   │   │       └── xrdp.ini
│   │       │   │   └── usr
│   │       │   │       └── local
│   │       │   │           ├── bin
│   │       │   │           │   └── privileged-rules
│   │       │   │           ├── share
│   │       │   │           │   ├── icons
│   │       │   │           │   │   ├── gitea.png
│   │       │   │           │   │   └── hedgedoc.png
│   │       │   │           │   └── xrdp
│   │       │   │           │       └── dsh_logo_240x140_256color.bmp
│   │       │   │           └── smoke_tests
│   │       │   │               ├── run_all_tests.bats
│   │       │   │               ├── test_databases.sh
│   │       │   │               ├── test_databases_R.R
│   │       │   │               ├── test_databases_python.py
│   │       │   │               ├── test_functionality_R.R
│   │       │   │               ├── test_functionality_python.py
│   │       │   │               ├── test_mounted_drives.sh
│   │       │   │               ├── test_repository_R.sh
│   │       │   │               └── test_repository_python.sh
│   │       │   ├── host_vars
│   │       │   │   └── localhost.yaml
│   │       │   ├── tasks
│   │       │   │   ├── auditd.yaml
│   │       │   │   ├── clamav.yaml
│   │       │   │   ├── install_deb.yaml
│   │       │   │   ├── ldap.yaml
│   │       │   │   ├── package_proxy.yaml
│   │       │   │   ├── packages.yaml
│   │       │   │   ├── smoke_tests.yaml
│   │       │   │   ├── sshd.yaml
│   │       │   │   ├── ubuntu_pro.yaml
│   │       │   │   ├── user_config.yaml
│   │       │   │   ├── xfce.yaml
│   │       │   │   └── xrdp.yaml
│   │       │   └── templates
│   │       │       └── etc
│   │       │           ├── R
│   │       │           │   └── Rprofile.site.j2
│   │       │           ├── audit
│   │       │           │   └── rules.d
│   │       │           │       └── audit.rules.j2
│   │       │           ├── database_credential.j2
│   │       │           ├── nslcd.conf.j2
│   │       │           ├── pip.conf.j2
│   │       │           └── skel
│   │       │               └── Desktop
│   │       │                   ├── gitea.desktop.j2
│   │       │                   └── hedgedoc.desktop.j2
│   │       └── workspace.cloud_init.mustache.yaml
│   ├── serialisers
│   │   ├── __init__.py
│   │   ├── azure_serialisable_model.py
│   │   ├── context_base.py
│   │   └── yaml_serialisable_model.py
│   ├── singleton.py
│   ├── types
│   │   ├── __init__.py
│   │   ├── annotated_types.py
│   │   ├── enums.py
│   │   └── types.py
│   ├── utility
│   │   ├── __init__.py
│   │   └── file_reader.py
│   ├── validators
│   │   ├── __init__.py
│   │   ├── typer.py
│   │   └── validators.py
│   └── version.py
└── pyproject.toml

74 directories, 181 files

@jemrobinson
Copy link
Member Author

jemrobinson commented Jan 28, 2025

Thoughts on this @JimMadge . Is this excluding too much (or not enough)?

See e.g. this post from a Python core dev recommending that docs and tests should be excluded.

Copy link

github-actions bot commented Jan 28, 2025

Coverage report

This PR does not seem to contain any modification to coverable code.

pyproject.toml Outdated Show resolved Hide resolved
@jemrobinson jemrobinson requested a review from JimMadge January 29, 2025 11:54
@jemrobinson
Copy link
Member Author

I've confirmed that locally-present __pycache__ files (that should be covered by .gitignore) are ignored as expected.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improve build instructions
2 participants