dls-deploy-tools 0.6__tar.gz → 0.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.copier-answers.yml +1 -1
- dls_deploy_tools-0.7/.devcontainer/devcontainer.json +79 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/CONTRIBUTING.md +1 -1
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/workflows/_container.yml +1 -1
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/workflows/_dist.yml +7 -6
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/workflows/_docs.yml +4 -4
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/workflows/_pypi.yml +1 -1
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/workflows/_release.yml +2 -2
- dls_deploy_tools-0.7/.github/workflows/_test.yml +47 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/workflows/_tox.yml +4 -4
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/workflows/ci.yml +7 -12
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/workflows/periodic.yml +1 -1
- dls_deploy_tools-0.7/.gitleaks.toml +19 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.pre-commit-config.yaml +13 -0
- dls_deploy_tools-0.7/.python-version +1 -0
- dls_deploy_tools-0.7/Dockerfile +49 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/PKG-INFO +1 -16
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/tutorials/installation.md +1 -1
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/pyproject.toml +82 -26
- dls_deploy_tools-0.7/renovate.json +41 -0
- dls_deploy_tools-0.7/src/deploy_tools/_version.py +24 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/dls_deploy_tools.egg-info/PKG-INFO +1 -16
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/dls_deploy_tools.egg-info/SOURCES.txt +4 -2
- dls_deploy_tools-0.7/src/dls_deploy_tools.egg-info/requires.txt +6 -0
- dls_deploy_tools-0.7/uv.lock +1491 -0
- dls_deploy_tools-0.6/.devcontainer/devcontainer.json +0 -55
- dls_deploy_tools-0.6/.github/actions/install_requirements/action.yml +0 -35
- dls_deploy_tools-0.6/.github/dependabot.yml +0 -28
- dls_deploy_tools-0.6/.github/workflows/_test.yml +0 -68
- dls_deploy_tools-0.6/Dockerfile +0 -29
- dls_deploy_tools-0.6/src/deploy_tools/_version.py +0 -34
- dls_deploy_tools-0.6/src/dls_deploy_tools.egg-info/requires.txt +0 -22
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/ISSUE_TEMPLATE/issue.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/pages/index.html +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.github/pages/make_switcher.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.gitignore +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.vscode/extensions.json +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.vscode/launch.json +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.vscode/settings.json +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/.vscode/tasks.json +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/LICENSE +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/README.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/catalog-info.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/_api.rst +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/_templates/custom-module-template.rst +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/conf.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/explanations/decisions/COPYME +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/explanations/decisions.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/explanations.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/genindex.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/how-to/contribute.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/how-to/run-container.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/how-to.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/images/dls-logo.svg +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/index.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/reference.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/docs/tutorials.md +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/setup.cfg +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/__init__.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/__main__.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/app_builder.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/apptainer.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/build.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/compare.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/demo_configuration/argocd/v2.14.10.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/demo_configuration/dls-pmac-control/0.1.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/demo_configuration/dls-pmac-control/0.2.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/demo_configuration/ec/i13-1.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/demo_configuration/ec/p47.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/demo_configuration/edge-containers-cli/0.1.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/demo_configuration/example-module-apps/0.1.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/demo_configuration/example-module-deps/0.2.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/demo_configuration/phoebus/0.1.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/demo_configuration/settings.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/deploy.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/layout.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/__init__.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/app.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/apptainer_app.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/binary_app.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/changes.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/deployment.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/module.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/parent.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/save_and_load.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/schema.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/schemas/deployment-settings.json +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/schemas/deployment.json +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/schemas/module.json +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/schemas/release.json +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/models/shell_app.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/module_builder.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/modulefile.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/print_updates.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/snapshot.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/sync.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/templater.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/templates/apptainer_entrypoint +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/templates/gitignore +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/templates/modulefile +6 -6
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/templates/modulefile_version +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/templates/shell_entrypoint +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/deploy_tools/validate.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/dls_deploy_tools.egg-info/dependency_links.txt +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/dls_deploy_tools.egg-info/entry_points.txt +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/src/dls_deploy_tools.egg-info/top_level.txt +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/conftest.py +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/generate_samples.sh +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/deployment.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modulefiles/dls-pmac-control/.version +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modulefiles/ec/.version +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modulefiles/edge-containers-cli/.version +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modulefiles/example-module-apps/.version +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modulefiles/example-module-deps/.version +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modulefiles/phoebus/.version +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/argocd/v2.14.10/module.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/argocd/v2.14.10/modulefile +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/dls-pmac-control/0.1/entrypoints/dls-pmac-control +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/dls-pmac-control/0.1/entrypoints/test-echo-module-file +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/dls-pmac-control/0.1/module.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/dls-pmac-control/0.1/modulefile +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/dls-pmac-control/0.2/entrypoints/dls-pmac-control +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/dls-pmac-control/0.2/entrypoints/test-echo-module-file +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/dls-pmac-control/0.2/module.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/dls-pmac-control/0.2/modulefile +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/ec/i13-1/module.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/ec/i13-1/modulefile +3 -3
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/ec/p47/module.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/ec/p47/modulefile +3 -3
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/edge-containers-cli/0.1/entrypoints/ec +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/edge-containers-cli/0.1/entrypoints/ec-bash +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/edge-containers-cli/0.1/entrypoints/ec-login +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/edge-containers-cli/0.1/module.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/edge-containers-cli/0.1/modulefile +2 -2
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/example-module-apps/0.1/entrypoints/cowsay-hello +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/example-module-apps/0.1/entrypoints/show-directory +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/example-module-apps/0.1/entrypoints/test-echo-module-folder +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/example-module-apps/0.1/entrypoints/test-shell-script +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/example-module-apps/0.1/module.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/example-module-apps/0.1/modulefile +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/example-module-deps/0.2/module.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/example-module-deps/0.2/modulefile +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/phoebus/0.1/entrypoints/phoebus +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/phoebus/0.1/module.yaml +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/samples/deploy-tools-output/modules/phoebus/0.1/modulefile +0 -0
- {dls_deploy_tools-0.6 → dls_deploy_tools-0.7}/tests/test_cli.py +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// For format details, see https://containers.dev/implementors/json_reference/
|
|
2
|
+
{
|
|
3
|
+
"name": "Python 3 Developer Container",
|
|
4
|
+
"build": {
|
|
5
|
+
"dockerfile": "../Dockerfile",
|
|
6
|
+
"target": "developer"
|
|
7
|
+
},
|
|
8
|
+
"remoteEnv": {
|
|
9
|
+
// Allow X11 apps to run inside the container
|
|
10
|
+
"DISPLAY": "${localEnv:DISPLAY}",
|
|
11
|
+
// Put things that allow it in the persistent cache
|
|
12
|
+
"PRE_COMMIT_HOME": "/cache/pre-commit",
|
|
13
|
+
"UV_CACHE_DIR": "/cache/uv",
|
|
14
|
+
"UV_PYTHON_CACHE_DIR": "/cache/uv-python",
|
|
15
|
+
// Make a venv that is specific for this workspace path as the cache is shared
|
|
16
|
+
"UV_PROJECT_ENVIRONMENT": "/cache/venv-for${localWorkspaceFolder}",
|
|
17
|
+
// Do the equivalent of "activate" the venv so we don't have to "uv run" everything
|
|
18
|
+
"VIRTUAL_ENV": "/cache/venv-for${localWorkspaceFolder}",
|
|
19
|
+
"PATH": "/cache/venv-for${localWorkspaceFolder}/bin:${containerEnv:PATH}"
|
|
20
|
+
},
|
|
21
|
+
"customizations": {
|
|
22
|
+
"vscode": {
|
|
23
|
+
// Set *default* container specific settings.json values on container create.
|
|
24
|
+
"settings": {
|
|
25
|
+
// Use the container's python by default
|
|
26
|
+
"python.defaultInterpreterPath": "/cache/venv-for${localWorkspaceFolder}/bin/python",
|
|
27
|
+
// Don't activate the venv as it is already in the PATH
|
|
28
|
+
"python.terminal.activateEnvInCurrentTerminal": false,
|
|
29
|
+
"python.terminal.activateEnvironment": false,
|
|
30
|
+
// Workaround to prevent garbled python REPL in the terminal
|
|
31
|
+
// https://github.com/microsoft/vscode-python/issues/25505
|
|
32
|
+
"python.terminal.shellIntegration.enabled": false
|
|
33
|
+
},
|
|
34
|
+
// Add the IDs of extensions you want installed when the container is created.
|
|
35
|
+
"extensions": [
|
|
36
|
+
"ms-python.python",
|
|
37
|
+
"github.vscode-github-actions",
|
|
38
|
+
"tamasfe.even-better-toml",
|
|
39
|
+
"redhat.vscode-yaml",
|
|
40
|
+
"ryanluker.vscode-coverage-gutters",
|
|
41
|
+
"charliermarsh.ruff",
|
|
42
|
+
"ms-azuretools.vscode-docker"
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
// Create the config folder for the bash-config feature and uv cache
|
|
47
|
+
"initializeCommand": "mkdir -p ${localEnv:HOME}/.config/terminal-config",
|
|
48
|
+
"runArgs": [
|
|
49
|
+
// Allow the container to access the host X11 display and EPICS CA
|
|
50
|
+
"--net=host",
|
|
51
|
+
// Make sure SELinux does not disable with access to host filesystems like tmp
|
|
52
|
+
"--security-opt=label=disable",
|
|
53
|
+
// Add fuse device for apptainer testing inside the dev container
|
|
54
|
+
"--device=/dev/fuse"
|
|
55
|
+
],
|
|
56
|
+
"mounts": [
|
|
57
|
+
"source=/dls_sw/,target=/dls_sw,type=bind,consistency=cached",
|
|
58
|
+
// these two mounts allow us to pick up cache and config folders that have
|
|
59
|
+
// been symlinked out of the home directory
|
|
60
|
+
"source=/dls/science/users/,target=/dls/science/users,type=bind,consistency=cached",
|
|
61
|
+
"source=/scratch/,target=/scratch,type=bind,consistency=cached",
|
|
62
|
+
// Mount in the user terminal config folder so it can be edited
|
|
63
|
+
{
|
|
64
|
+
"source": "${localEnv:HOME}/.config/terminal-config",
|
|
65
|
+
"target": "/user-terminal-config",
|
|
66
|
+
"type": "bind"
|
|
67
|
+
},
|
|
68
|
+
// Keep a persistent cross container cache for uv, pre-commit, and the venvs
|
|
69
|
+
{
|
|
70
|
+
"source": "devcontainer-shared-cache",
|
|
71
|
+
"target": "/cache",
|
|
72
|
+
"type": "volume"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
// Mount the parent as /workspaces so we can pip install peers as editable
|
|
76
|
+
"workspaceMount": "source=${localWorkspaceFolder}/..,target=/workspaces,type=bind",
|
|
77
|
+
// After the container is created, recreate the venv then make pre-commit first run faster
|
|
78
|
+
"postCreateCommand": "uv venv --clear && uv sync && pre-commit install --install-hooks"
|
|
79
|
+
}
|
|
@@ -24,4 +24,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua
|
|
|
24
24
|
|
|
25
25
|
This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects.
|
|
26
26
|
|
|
27
|
-
For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/
|
|
27
|
+
For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/5.0.2/how-to.html).
|
|
@@ -7,15 +7,18 @@ jobs:
|
|
|
7
7
|
|
|
8
8
|
steps:
|
|
9
9
|
- name: Checkout
|
|
10
|
-
uses: actions/checkout@
|
|
10
|
+
uses: actions/checkout@v5
|
|
11
11
|
with:
|
|
12
12
|
# Need this to get version number from last tag
|
|
13
13
|
fetch-depth: 0
|
|
14
14
|
|
|
15
|
+
- name: Install uv
|
|
16
|
+
uses: astral-sh/setup-uv@v7
|
|
17
|
+
|
|
15
18
|
- name: Build sdist and wheel
|
|
16
19
|
run: >
|
|
17
20
|
export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) &&
|
|
18
|
-
|
|
21
|
+
uvx --from build pyproject-build
|
|
19
22
|
|
|
20
23
|
- name: Upload sdist and wheel as artifacts
|
|
21
24
|
uses: actions/upload-artifact@v4
|
|
@@ -24,12 +27,10 @@ jobs:
|
|
|
24
27
|
path: dist
|
|
25
28
|
|
|
26
29
|
- name: Check for packaging errors
|
|
27
|
-
run:
|
|
30
|
+
run: uvx twine check --strict dist/*
|
|
28
31
|
|
|
29
32
|
- name: Install produced wheel
|
|
30
|
-
|
|
31
|
-
with:
|
|
32
|
-
pip-install: dist/*.whl
|
|
33
|
+
run: python -m pip install dist/*.whl
|
|
33
34
|
|
|
34
35
|
- name: Test module --version works using the installed wheel
|
|
35
36
|
# If more than one module in src/ replace with module name to test
|
|
@@ -12,7 +12,7 @@ jobs:
|
|
|
12
12
|
run: sleep 60
|
|
13
13
|
|
|
14
14
|
- name: Checkout
|
|
15
|
-
uses: actions/checkout@
|
|
15
|
+
uses: actions/checkout@v5
|
|
16
16
|
with:
|
|
17
17
|
# Need this to get version number from last tag
|
|
18
18
|
fetch-depth: 0
|
|
@@ -20,11 +20,11 @@ jobs:
|
|
|
20
20
|
- name: Install system packages
|
|
21
21
|
run: sudo apt-get install graphviz
|
|
22
22
|
|
|
23
|
-
- name: Install
|
|
24
|
-
uses:
|
|
23
|
+
- name: Install uv
|
|
24
|
+
uses: astral-sh/setup-uv@v7
|
|
25
25
|
|
|
26
26
|
- name: Build docs
|
|
27
|
-
run: tox -e docs
|
|
27
|
+
run: uv run --locked tox -e docs
|
|
28
28
|
|
|
29
29
|
- name: Remove environment.pickle
|
|
30
30
|
run: rm build/html/.doctrees/environment.pickle
|
|
@@ -7,7 +7,7 @@ jobs:
|
|
|
7
7
|
|
|
8
8
|
steps:
|
|
9
9
|
- name: Download artifacts
|
|
10
|
-
uses: actions/download-artifact@
|
|
10
|
+
uses: actions/download-artifact@v5
|
|
11
11
|
with:
|
|
12
12
|
merge-multiple: true
|
|
13
13
|
|
|
@@ -23,7 +23,7 @@ jobs:
|
|
|
23
23
|
- name: Create GitHub Release
|
|
24
24
|
# We pin to the SHA, not the tag, for security reasons.
|
|
25
25
|
# https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions
|
|
26
|
-
uses: softprops/action-gh-release@
|
|
26
|
+
uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2.4.1
|
|
27
27
|
with:
|
|
28
28
|
prerelease: ${{ contains(github.ref_name, 'a') || contains(github.ref_name, 'b') || contains(github.ref_name, 'rc') }}
|
|
29
29
|
files: "*"
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
on:
|
|
2
|
+
workflow_call:
|
|
3
|
+
inputs:
|
|
4
|
+
python-version:
|
|
5
|
+
type: string
|
|
6
|
+
description: The version of python to install, default is from .python-version file
|
|
7
|
+
default: ""
|
|
8
|
+
runs-on:
|
|
9
|
+
type: string
|
|
10
|
+
description: The runner to run this job on
|
|
11
|
+
required: true
|
|
12
|
+
|
|
13
|
+
env:
|
|
14
|
+
# https://github.com/pytest-dev/pytest/issues/2042
|
|
15
|
+
PY_IGNORE_IMPORTMISMATCH: "1"
|
|
16
|
+
UV_PYTHON: ${{ inputs.python-version }}
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
run:
|
|
20
|
+
runs-on: ${{ inputs.runs-on }}
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- name: Checkout
|
|
24
|
+
uses: actions/checkout@v5
|
|
25
|
+
with:
|
|
26
|
+
# Need this to get version number from last tag
|
|
27
|
+
fetch-depth: 0
|
|
28
|
+
|
|
29
|
+
- name: Install uv
|
|
30
|
+
uses: astral-sh/setup-uv@v7
|
|
31
|
+
|
|
32
|
+
- name: Install dependencies
|
|
33
|
+
run: |
|
|
34
|
+
sudo apt update
|
|
35
|
+
sudo apt install -y software-properties-common
|
|
36
|
+
sudo add-apt-repository -y ppa:apptainer/ppa
|
|
37
|
+
sudo apt update
|
|
38
|
+
sudo apt install -y apptainer
|
|
39
|
+
|
|
40
|
+
- name: Run tests
|
|
41
|
+
run: uv run --locked tox -e tests
|
|
42
|
+
|
|
43
|
+
- name: Upload coverage to Codecov
|
|
44
|
+
uses: codecov/codecov-action@v5
|
|
45
|
+
with:
|
|
46
|
+
name: ${{ inputs.python-version }}/${{ inputs.runs-on }}
|
|
47
|
+
files: cov.xml
|
|
@@ -13,10 +13,10 @@ jobs:
|
|
|
13
13
|
|
|
14
14
|
steps:
|
|
15
15
|
- name: Checkout
|
|
16
|
-
uses: actions/checkout@
|
|
16
|
+
uses: actions/checkout@v5
|
|
17
17
|
|
|
18
|
-
- name: Install
|
|
19
|
-
uses:
|
|
18
|
+
- name: Install uv
|
|
19
|
+
uses: astral-sh/setup-uv@v7
|
|
20
20
|
|
|
21
21
|
- name: Run tox
|
|
22
|
-
run: tox -e ${{ inputs.tox }}
|
|
22
|
+
run: uv run --locked tox -e ${{ inputs.tox }}
|
|
@@ -5,7 +5,7 @@ on:
|
|
|
5
5
|
branches:
|
|
6
6
|
- main
|
|
7
7
|
tags:
|
|
8
|
-
-
|
|
8
|
+
- "*"
|
|
9
9
|
pull_request:
|
|
10
10
|
|
|
11
11
|
jobs:
|
|
@@ -18,19 +18,13 @@ jobs:
|
|
|
18
18
|
test:
|
|
19
19
|
strategy:
|
|
20
20
|
matrix:
|
|
21
|
-
runs-on: ["ubuntu-latest"] # can add windows-latest, macos-latest
|
|
22
|
-
python-version: ["3.12", "3.13"]
|
|
23
|
-
include:
|
|
24
|
-
# Include one that runs in the dev environment
|
|
25
|
-
- runs-on: "ubuntu-latest"
|
|
26
|
-
python-version: "dev"
|
|
21
|
+
runs-on: [ "ubuntu-latest" ] # can add windows-latest, macos-latest
|
|
22
|
+
python-version: [ "3.12", "3.13", "3.14" ]
|
|
27
23
|
fail-fast: false
|
|
28
24
|
uses: ./.github/workflows/_test.yml
|
|
29
25
|
with:
|
|
30
26
|
runs-on: ${{ matrix.runs-on }}
|
|
31
27
|
python-version: ${{ matrix.python-version }}
|
|
32
|
-
secrets:
|
|
33
|
-
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
34
28
|
|
|
35
29
|
container:
|
|
36
30
|
needs: test
|
|
@@ -44,20 +38,21 @@ jobs:
|
|
|
44
38
|
|
|
45
39
|
docs:
|
|
46
40
|
uses: ./.github/workflows/_docs.yml
|
|
47
|
-
|
|
41
|
+
permissions:
|
|
42
|
+
contents: write
|
|
48
43
|
|
|
49
44
|
dist:
|
|
50
45
|
uses: ./.github/workflows/_dist.yml
|
|
51
46
|
|
|
52
47
|
pypi:
|
|
53
|
-
needs: [dist, test]
|
|
48
|
+
needs: [ dist, test ]
|
|
54
49
|
if: github.ref_type == 'tag'
|
|
55
50
|
uses: ./.github/workflows/_pypi.yml
|
|
56
51
|
permissions:
|
|
57
52
|
id-token: write
|
|
58
53
|
|
|
59
54
|
release:
|
|
60
|
-
needs: [dist, test, docs]
|
|
55
|
+
needs: [ dist, test, docs ]
|
|
61
56
|
if: github.ref_type == 'tag'
|
|
62
57
|
uses: ./.github/workflows/_release.yml
|
|
63
58
|
permissions:
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# This allow-list is limited to YAML/YML files to cut down SealedSecrets false positives.
|
|
2
|
+
# All gitleaks default rules still apply everywhere (useDefault = true).
|
|
3
|
+
# To broaden this allow-list to all files, comment out the 'paths' line below.
|
|
4
|
+
|
|
5
|
+
[extend]
|
|
6
|
+
useDefault = true
|
|
7
|
+
|
|
8
|
+
[[rules]]
|
|
9
|
+
id = "generic-api-key"
|
|
10
|
+
|
|
11
|
+
# Pattern-only allowlist for long Ag… tokens in YAML
|
|
12
|
+
[[rules.allowlists]]
|
|
13
|
+
condition = "AND"
|
|
14
|
+
regexes = [
|
|
15
|
+
# Boundary-safe Ag… token without lookarounds (RE2-safe)
|
|
16
|
+
'''(?:^|[^A-Za-z0-9+/=])(Ag[A-Za-z0-9+/]{500,}={0,2})(?:[^A-Za-z0-9+/=]|$)'''
|
|
17
|
+
]
|
|
18
|
+
# Limit to YAML only for now. Comment this out if you want it to apply everywhere.
|
|
19
|
+
paths = ['''(?i).*\.ya?ml$''']
|
|
@@ -3,6 +3,7 @@ repos:
|
|
|
3
3
|
rev: v5.0.0
|
|
4
4
|
hooks:
|
|
5
5
|
- id: check-added-large-files
|
|
6
|
+
exclude: ^uv.lock
|
|
6
7
|
- id: check-yaml
|
|
7
8
|
- id: check-merge-conflict
|
|
8
9
|
- id: end-of-file-fixer
|
|
@@ -22,3 +23,15 @@ repos:
|
|
|
22
23
|
entry: ruff format --force-exclude
|
|
23
24
|
types: [python]
|
|
24
25
|
require_serial: true
|
|
26
|
+
|
|
27
|
+
- id: uv-sync
|
|
28
|
+
name: update uv.lock and venv
|
|
29
|
+
pass_filenames: false
|
|
30
|
+
language: system
|
|
31
|
+
entry: uv sync
|
|
32
|
+
files: ^(uv\.lock|pyproject\.toml)$
|
|
33
|
+
|
|
34
|
+
- repo: https://github.com/gitleaks/gitleaks
|
|
35
|
+
rev: v8.28.0
|
|
36
|
+
hooks:
|
|
37
|
+
- id: gitleaks
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.12
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# The devcontainer should use the developer target and run as root with podman
|
|
2
|
+
# or docker with user namespaces.
|
|
3
|
+
FROM ghcr.io/diamondlightsource/ubuntu-devcontainer:noble AS developer
|
|
4
|
+
|
|
5
|
+
# Add any system dependencies for the developer/build environment here
|
|
6
|
+
RUN apt-get update -y && apt-get install -y --no-install-recommends \
|
|
7
|
+
graphviz environment-modules wget \
|
|
8
|
+
&& cd /tmp \
|
|
9
|
+
&& wget https://github.com/apptainer/apptainer/releases/download/v1.3.3/apptainer_1.3.3_amd64.deb \
|
|
10
|
+
&& apt install -y ./apptainer_1.3.3_amd64.deb \
|
|
11
|
+
&& apt-get dist-clean
|
|
12
|
+
|
|
13
|
+
# The build stage installs the context into the venv
|
|
14
|
+
FROM developer AS build
|
|
15
|
+
|
|
16
|
+
# Change the working directory to the `app` directory
|
|
17
|
+
# and copy in the project
|
|
18
|
+
WORKDIR /app
|
|
19
|
+
COPY . /app
|
|
20
|
+
RUN chmod o+wrX .
|
|
21
|
+
|
|
22
|
+
# Tell uv sync to install python in a known location so we can copy it out later
|
|
23
|
+
ENV UV_PYTHON_INSTALL_DIR=/python
|
|
24
|
+
|
|
25
|
+
# Sync the project without its dev dependencies
|
|
26
|
+
RUN --mount=type=cache,target=/root/.cache/uv \
|
|
27
|
+
uv sync --locked --no-editable --no-dev --managed-python
|
|
28
|
+
|
|
29
|
+
# The runtime stage copies the built venv into a runtime container
|
|
30
|
+
FROM ubuntu:noble AS runtime
|
|
31
|
+
|
|
32
|
+
# Add apt-get system dependecies for runtime here if needed
|
|
33
|
+
RUN apt-get update -y && apt-get install -y --no-install-recommends \
|
|
34
|
+
graphviz environment-modules wget git ca-certificates \
|
|
35
|
+
&& update-ca-certificates \
|
|
36
|
+
&& cd /tmp \
|
|
37
|
+
&& wget https://github.com/apptainer/apptainer/releases/download/v1.3.3/apptainer_1.3.3_amd64.deb \
|
|
38
|
+
&& apt install -y ./apptainer_1.3.3_amd64.deb \
|
|
39
|
+
&& apt-get dist-clean
|
|
40
|
+
|
|
41
|
+
# Copy the python installation from the build stage
|
|
42
|
+
COPY --from=build /python /python
|
|
43
|
+
|
|
44
|
+
# Copy the environment, but not the source code
|
|
45
|
+
COPY --from=build /app/.venv /app/.venv
|
|
46
|
+
ENV PATH=/app/.venv/bin:$PATH
|
|
47
|
+
|
|
48
|
+
ENTRYPOINT ["deploy-tools"]
|
|
49
|
+
CMD ["--version"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dls-deploy-tools
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7
|
|
4
4
|
Summary: A set of tools used for deploying applications to a shared filesystem.
|
|
5
5
|
Author-email: Martin Gaughran <martin.gaughran@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -219,21 +219,6 @@ Requires-Dist: jinja2
|
|
|
219
219
|
Requires-Dist: pyyaml
|
|
220
220
|
Requires-Dist: GitPython
|
|
221
221
|
Requires-Dist: natsort
|
|
222
|
-
Provides-Extra: dev
|
|
223
|
-
Requires-Dist: copier; extra == "dev"
|
|
224
|
-
Requires-Dist: myst-parser; extra == "dev"
|
|
225
|
-
Requires-Dist: pipdeptree; extra == "dev"
|
|
226
|
-
Requires-Dist: pre-commit; extra == "dev"
|
|
227
|
-
Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
|
|
228
|
-
Requires-Dist: pyright; extra == "dev"
|
|
229
|
-
Requires-Dist: pytest; extra == "dev"
|
|
230
|
-
Requires-Dist: pytest-cov; extra == "dev"
|
|
231
|
-
Requires-Dist: ruff; extra == "dev"
|
|
232
|
-
Requires-Dist: sphinx-autobuild; extra == "dev"
|
|
233
|
-
Requires-Dist: sphinx-copybutton; extra == "dev"
|
|
234
|
-
Requires-Dist: sphinx-design; extra == "dev"
|
|
235
|
-
Requires-Dist: tox-direct; extra == "dev"
|
|
236
|
-
Requires-Dist: types-mock; extra == "dev"
|
|
237
222
|
Dynamic: license-file
|
|
238
223
|
|
|
239
224
|
[](https://github.com/DiamondLightSource/deploy-tools/actions/workflows/ci.yml)
|
|
@@ -24,11 +24,10 @@ license.file = "LICENSE"
|
|
|
24
24
|
readme = "README.md"
|
|
25
25
|
requires-python = ">=3.12"
|
|
26
26
|
|
|
27
|
-
[
|
|
27
|
+
[dependency-groups]
|
|
28
28
|
dev = [
|
|
29
29
|
"copier",
|
|
30
30
|
"myst-parser",
|
|
31
|
-
"pipdeptree",
|
|
32
31
|
"pre-commit",
|
|
33
32
|
"pydata-sphinx-theme>=0.12",
|
|
34
33
|
"pyright",
|
|
@@ -38,7 +37,7 @@ dev = [
|
|
|
38
37
|
"sphinx-autobuild",
|
|
39
38
|
"sphinx-copybutton",
|
|
40
39
|
"sphinx-design",
|
|
41
|
-
"tox-
|
|
40
|
+
"tox-uv",
|
|
42
41
|
"types-mock",
|
|
43
42
|
]
|
|
44
43
|
|
|
@@ -52,7 +51,6 @@ GitHub = "https://github.com/DiamondLightSource/deploy-tools"
|
|
|
52
51
|
email = "martin.gaughran@diamond.ac.uk"
|
|
53
52
|
name = "Martin Gaughran"
|
|
54
53
|
|
|
55
|
-
|
|
56
54
|
[tool.setuptools_scm]
|
|
57
55
|
version_file = "src/deploy_tools/_version.py"
|
|
58
56
|
|
|
@@ -83,29 +81,87 @@ data_file = "/tmp/deploy_tools.coverage"
|
|
|
83
81
|
# Tests are run from installed location, map back to the src directory
|
|
84
82
|
source = ["src", "**/site-packages/"]
|
|
85
83
|
|
|
86
|
-
# tox must currently be configured via an embedded ini string
|
|
87
|
-
# See: https://github.com/tox-dev/tox/issues/999
|
|
88
84
|
[tool.tox]
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
[
|
|
94
|
-
#
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
85
|
+
skipsdist = true
|
|
86
|
+
# envs to runs automatically with tox -p
|
|
87
|
+
env_list = ["pre-commit", "type-checking", "tests", "docs"]
|
|
88
|
+
|
|
89
|
+
[tool.tox.env_run_base]
|
|
90
|
+
# Pass all environment variables to the test environments
|
|
91
|
+
passenv = ["*"]
|
|
92
|
+
|
|
93
|
+
[tool.tox.env.pre-commit]
|
|
94
|
+
description = "Run pre-commit on all files"
|
|
95
|
+
commands = [
|
|
96
|
+
[
|
|
97
|
+
"pre-commit",
|
|
98
|
+
"run",
|
|
99
|
+
"--all-files",
|
|
100
|
+
"--show-diff-on-failure",
|
|
101
|
+
{ replace = "posargs", default = [
|
|
102
|
+
], extend = true },
|
|
103
|
+
],
|
|
104
|
+
]
|
|
105
|
+
|
|
106
|
+
[tool.tox.env.type-checking]
|
|
107
|
+
description = "Run pyright"
|
|
108
|
+
commands = [
|
|
109
|
+
[
|
|
110
|
+
"pyright",
|
|
111
|
+
"--pythonpath",
|
|
112
|
+
"{env:VIRTUAL_ENV}/bin/python",
|
|
113
|
+
"src",
|
|
114
|
+
"tests",
|
|
115
|
+
{ replace = "posargs", default = [
|
|
116
|
+
], extend = true },
|
|
117
|
+
],
|
|
118
|
+
]
|
|
119
|
+
|
|
120
|
+
[tool.tox.env.tests]
|
|
121
|
+
description = "Run tests with coverage"
|
|
122
|
+
commands = [
|
|
123
|
+
[
|
|
124
|
+
"pytest",
|
|
125
|
+
"--cov=deploy_tools",
|
|
126
|
+
"--cov-report",
|
|
127
|
+
"term",
|
|
128
|
+
"--cov-report",
|
|
129
|
+
"xml:cov.xml",
|
|
130
|
+
{ replace = "posargs", default = [
|
|
131
|
+
], extend = true },
|
|
132
|
+
],
|
|
133
|
+
]
|
|
134
|
+
|
|
135
|
+
[tool.tox.env.docs]
|
|
136
|
+
description = "Run docs build with clean environment"
|
|
137
|
+
commands = [
|
|
138
|
+
[
|
|
139
|
+
"sphinx-build",
|
|
140
|
+
"--fresh-env",
|
|
141
|
+
"--show-traceback",
|
|
142
|
+
"--fail-on-warning",
|
|
143
|
+
"--keep-going",
|
|
144
|
+
"docs",
|
|
145
|
+
"build/html",
|
|
146
|
+
{ replace = "posargs", default = [
|
|
147
|
+
], extend = true },
|
|
148
|
+
],
|
|
149
|
+
]
|
|
150
|
+
|
|
151
|
+
[tool.tox.env.docs-autobuild]
|
|
152
|
+
description = "Run docs with autobuild on change"
|
|
153
|
+
commands = [
|
|
154
|
+
[
|
|
155
|
+
"sphinx-autobuild",
|
|
156
|
+
"--show-traceback",
|
|
157
|
+
"--watch",
|
|
158
|
+
"README.md",
|
|
159
|
+
"docs",
|
|
160
|
+
"build/html",
|
|
161
|
+
{ replace = "posargs", default = [
|
|
162
|
+
], extend = true },
|
|
163
|
+
],
|
|
164
|
+
]
|
|
109
165
|
|
|
110
166
|
[tool.ruff]
|
|
111
167
|
src = ["src", "tests"]
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
|
3
|
+
"extends": [
|
|
4
|
+
"config:recommended"
|
|
5
|
+
],
|
|
6
|
+
"lockFileMaintenance": {
|
|
7
|
+
"description": "Keep uv.lock up to date, merging if tests pass",
|
|
8
|
+
"enabled": true,
|
|
9
|
+
"automerge": true
|
|
10
|
+
},
|
|
11
|
+
"packageRules": [
|
|
12
|
+
{
|
|
13
|
+
"description": "Disable python version as that is managed by python-copier-template",
|
|
14
|
+
"matchManagers": [
|
|
15
|
+
"pyenv"
|
|
16
|
+
],
|
|
17
|
+
"enabled": false
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"description": "Disable github actions that are managed by python-copier-template",
|
|
21
|
+
"matchPackageNames": [
|
|
22
|
+
"actions/checkout",
|
|
23
|
+
"astral-sh/setup-uv",
|
|
24
|
+
"actions/upload-artifact",
|
|
25
|
+
"actions/download-artifact",
|
|
26
|
+
"softprops/action-gh-release",
|
|
27
|
+
"codecov/codecov-action",
|
|
28
|
+
"docker/setup-buildx-action",
|
|
29
|
+
"docker/login-action",
|
|
30
|
+
"docker/build-push-action",
|
|
31
|
+
"docker/metadata-action",
|
|
32
|
+
"pypa/gh-action-pypi-publish",
|
|
33
|
+
"peaceiris/actions-gh-pages"
|
|
34
|
+
],
|
|
35
|
+
"matchManagers": [
|
|
36
|
+
"github-actions"
|
|
37
|
+
],
|
|
38
|
+
"enabled": false
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# file generated by vcs-versioning
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
__all__ = [
|
|
6
|
+
"__version__",
|
|
7
|
+
"__version_tuple__",
|
|
8
|
+
"version",
|
|
9
|
+
"version_tuple",
|
|
10
|
+
"__commit_id__",
|
|
11
|
+
"commit_id",
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
version: str
|
|
15
|
+
__version__: str
|
|
16
|
+
__version_tuple__: tuple[int | str, ...]
|
|
17
|
+
version_tuple: tuple[int | str, ...]
|
|
18
|
+
commit_id: str | None
|
|
19
|
+
__commit_id__: str | None
|
|
20
|
+
|
|
21
|
+
__version__ = version = '0.7'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 7)
|
|
23
|
+
|
|
24
|
+
__commit_id__ = commit_id = 'g4e9157218'
|