docker-devkit 0.1.20__tar.gz → 0.1.22__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.
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/.github/workflows/ci.yml +4 -1
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/.github/workflows/release.yml +3 -1
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/AGENTS.md +2 -2
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/PKG-INFO +1 -1
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/pyproject.toml +1 -1
- docker_devkit-0.1.22/release-devkit.yaml +8 -0
- docker_devkit-0.1.20/release-devkit.json +0 -10
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/.gitattributes +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/.gitignore +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/.python-version +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/CLAUDE.md +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/LICENSE +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/NOTICE +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/README.md +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/plan.md +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/ruff.base.toml +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/ruff.toml +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/__init__.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/build_docker.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/config.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/context_sha.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/detect_gpu.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/documents.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/down.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/image_refs.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/lifecycle.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/mirror.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/modes.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/py.typed +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/score_generate.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/up.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_config.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_context_sha.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_default_targets.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_documents.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_image_refs.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_lifecycle.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_mirror.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_score_generate.py +0 -0
- {docker_devkit-0.1.20 → docker_devkit-0.1.22}/uv.lock +0 -0
|
@@ -10,6 +10,9 @@ concurrency:
|
|
|
10
10
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
11
11
|
cancel-in-progress: true
|
|
12
12
|
|
|
13
|
+
env:
|
|
14
|
+
PYTHON_DEVKIT_VERSION: "0.1.13"
|
|
15
|
+
|
|
13
16
|
jobs:
|
|
14
17
|
check:
|
|
15
18
|
runs-on: ubuntu-latest
|
|
@@ -23,4 +26,4 @@ jobs:
|
|
|
23
26
|
enable-cache: true
|
|
24
27
|
|
|
25
28
|
- name: Preflight
|
|
26
|
-
run: uvx --from python-devkit
|
|
29
|
+
run: uvx --from python-devkit==${PYTHON_DEVKIT_VERSION} preflight-python
|
|
@@ -17,6 +17,8 @@ jobs:
|
|
|
17
17
|
permissions:
|
|
18
18
|
contents: write
|
|
19
19
|
id-token: write
|
|
20
|
+
env:
|
|
21
|
+
RELEASE_DEVKIT_VERSION: "0.1.24"
|
|
20
22
|
steps:
|
|
21
23
|
- uses: actions/checkout@v5
|
|
22
24
|
with:
|
|
@@ -28,4 +30,4 @@ jobs:
|
|
|
28
30
|
- uses: astral-sh/setup-uv@v7
|
|
29
31
|
|
|
30
32
|
- name: Publish
|
|
31
|
-
run: uvx --from release-devkit
|
|
33
|
+
run: uvx --from release-devkit==${RELEASE_DEVKIT_VERSION} publish-stable --config release-devkit.yaml
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
The package is `docker_devkit` (src-layout under `src/docker_devkit/`); all dependencies resolve from PyPI — `bashrun` (shell-outs), `packaging` (`requires` specifier parsing), `pathspec`, `pydantic`/`pydantic-settings`, `pyyaml` (score-document parsing), `strictyaml` (config loading), `typer` (CLIs) — git-source pins only in scratch branches testing unreleased changes. The repo and package renamed twice on the way here — `stack-lifecycle` → `stack-toolkit` (2026-09-20, before any publish) and `stack-toolkit` → `docker-devkit` (2026-09-21, member of the `-devkit` family). The PyPI identity is fresh: `docker-devkit` starts its own tag ledger at `0.1.0`; the terminal `stack-toolkit` distributions (≤0.1.1) are deprecation signposts pointing here, not this package's history.
|
|
8
8
|
|
|
9
|
-
Config surfaces org-wide follow one law (its home is release-devkit's `AGENTS.md`): config lives beside the unit whose facts it carries; consumption model and config location are independent axes. Every devkit configures via one root `<devkit>.yaml` per repo — except python-devkit (pyproject `[tool.python-devkit.*]` tables, its subject being the Python workspace) and unity-devkit (JSON, read by C# inside Unity, which ships no YAML parser). A docker-devkit consumer declares a root `docker-devkit.yaml` whose schema (`config.DockerDevkitConfig`, strictyaml-loaded, `extra="forbid"` on every model) carries a required `requires` version stamp plus optional `lifecycle` / `mirror` / `generate-score` sections; `config.load_config` self-checks the installed docker-devkit version against `requires` and refuses loudly outside the range (the `0.0.0.dev0` dev sentinel bypasses the check, not the field). Strictyaml preserves all scalars as strings (no implicit typing) and rejects duplicate keys and flow-style collections, so empty collections are expressed by omitting the key, not by `[]`/`{}`. This repo itself is published by root `release-devkit.
|
|
9
|
+
Config surfaces org-wide follow one law (its home is release-devkit's `AGENTS.md`): config lives beside the unit whose facts it carries; consumption model and config location are independent axes. Every devkit configures via one root `<devkit>.yaml` per repo — except python-devkit (pyproject `[tool.python-devkit.*]` tables, its subject being the Python workspace) and unity-devkit (JSON, read by C# inside Unity, which ships no YAML parser). A docker-devkit consumer declares a root `docker-devkit.yaml` whose schema (`config.DockerDevkitConfig`, strictyaml-loaded, `extra="forbid"` on every model) carries a required `requires` version stamp plus optional `lifecycle` / `mirror` / `generate-score` sections; `config.load_config` self-checks the installed docker-devkit version against `requires` and refuses loudly outside the range (the `0.0.0.dev0` dev sentinel bypasses the check, not the field). Strictyaml preserves all scalars as strings (no implicit typing) and rejects duplicate keys and flow-style collections, so empty collections are expressed by omitting the key, not by `[]`/`{}`. This repo itself is published by root `release-devkit.yaml`.
|
|
10
10
|
|
|
11
11
|
## Release flow
|
|
12
12
|
|
|
13
|
-
Publishing rides `release.yml`, triggered by a successful CI run on a `main` push: the machinery — release-devkit's `publish-stable` (an inlined, version-pinned `uvx` step in the publish job, keeping OIDC identity local), never a project dependency (docker-devkit sits inside its own dependency graph; a project-level release-devkit edge is a resolver cycle) — computes the plan from the tag ledger and path-diff, patches the version ephemerally, and publishes to PyPI under OIDC trusted publishing (publisher bound to `release.yml`, no environment). The committed `pyproject.toml` version is permanently the `0.0.0.dev0` sentinel; the `docker-devkit-v*` tags are the version ledger (declared `major_minor` line in `release-devkit.
|
|
13
|
+
Publishing rides `release.yml`, triggered by a successful CI run on a `main` push: the machinery — release-devkit's `publish-stable` (an inlined, version-pinned `uvx` step in the publish job, keeping OIDC identity local), never a project dependency (docker-devkit sits inside its own dependency graph; a project-level release-devkit edge is a resolver cycle) — computes the plan from the tag ledger and path-diff, patches the version ephemerally, and publishes to PyPI under OIDC trusted publishing (publisher bound to `release.yml`, no environment). The committed `pyproject.toml` version is permanently the `0.0.0.dev0` sentinel; the `docker-devkit-v*` tags are the version ledger (declared `major_minor` line in `release-devkit.yaml`, patch-auto within the line). While pre-1.0, breaking changes ride the normal patch flow without a bump; from 1.0 on, API-breaking changes ship with a manually bumped `major_minor` — patch-auto assumes additive changes.
|
|
14
14
|
|
|
15
15
|
## Shape
|
|
16
16
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|