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.
Files changed (40) hide show
  1. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/.github/workflows/ci.yml +4 -1
  2. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/.github/workflows/release.yml +3 -1
  3. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/AGENTS.md +2 -2
  4. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/PKG-INFO +1 -1
  5. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/pyproject.toml +1 -1
  6. docker_devkit-0.1.22/release-devkit.yaml +8 -0
  7. docker_devkit-0.1.20/release-devkit.json +0 -10
  8. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/.gitattributes +0 -0
  9. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/.gitignore +0 -0
  10. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/.python-version +0 -0
  11. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/CLAUDE.md +0 -0
  12. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/LICENSE +0 -0
  13. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/NOTICE +0 -0
  14. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/README.md +0 -0
  15. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/plan.md +0 -0
  16. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/ruff.base.toml +0 -0
  17. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/ruff.toml +0 -0
  18. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/__init__.py +0 -0
  19. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/build_docker.py +0 -0
  20. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/config.py +0 -0
  21. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/context_sha.py +0 -0
  22. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/detect_gpu.py +0 -0
  23. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/documents.py +0 -0
  24. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/down.py +0 -0
  25. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/image_refs.py +0 -0
  26. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/lifecycle.py +0 -0
  27. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/mirror.py +0 -0
  28. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/modes.py +0 -0
  29. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/py.typed +0 -0
  30. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/score_generate.py +0 -0
  31. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/src/docker_devkit/up.py +0 -0
  32. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_config.py +0 -0
  33. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_context_sha.py +0 -0
  34. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_default_targets.py +0 -0
  35. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_documents.py +0 -0
  36. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_image_refs.py +0 -0
  37. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_lifecycle.py +0 -0
  38. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_mirror.py +0 -0
  39. {docker_devkit-0.1.20 → docker_devkit-0.1.22}/tests/test_score_generate.py +0 -0
  40. {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==0.1.5 preflight-python
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==0.1.18 publish-stable --config release-devkit.json
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.json`.
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.json`, 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.
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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: docker-devkit
3
- Version: 0.1.20
3
+ Version: 0.1.22
4
4
  Summary: Docker-stack lifecycle commands (up/down/build) driven by a pyproject-declared compose assembly
5
5
  License-File: LICENSE
6
6
  License-File: NOTICE
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "docker-devkit"
3
- version = "0.1.20"
3
+ version = "0.1.22"
4
4
  description = "Docker-stack lifecycle commands (up/down/build) driven by a pyproject-declared compose assembly"
5
5
  requires-python = ">=3.13"
6
6
  dependencies = [
@@ -0,0 +1,8 @@
1
+ requires: ">=0.1"
2
+ ci_workflow: ci.yml
3
+ packages:
4
+ docker-devkit:
5
+ path: .
6
+ major_minor: "0.1"
7
+ registries:
8
+ pypi: docker-devkit
@@ -1,10 +0,0 @@
1
- {
2
- "packages": {
3
- "docker-devkit": {
4
- "path": ".",
5
- "major_minor": "0.1",
6
- "registries": { "pypi": "docker-devkit" }
7
- }
8
- },
9
- "ci_workflow": "ci.yml"
10
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes