release-devkit 0.1.0__tar.gz → 0.1.1__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.
- {release_devkit-0.1.0 → release_devkit-0.1.1}/AGENTS.md +1 -1
- {release_devkit-0.1.0 → release_devkit-0.1.1}/PKG-INFO +2 -2
- {release_devkit-0.1.0 → release_devkit-0.1.1}/pyproject.toml +2 -2
- {release_devkit-0.1.0 → release_devkit-0.1.1}/src/release_devkit/create_release.py +1 -1
- {release_devkit-0.1.0 → release_devkit-0.1.1}/src/release_devkit/fetch_ci_artifacts.py +1 -1
- {release_devkit-0.1.0 → release_devkit-0.1.1}/src/release_devkit/ledger.py +8 -11
- {release_devkit-0.1.0 → release_devkit-0.1.1}/src/release_devkit/mirror_images.py +1 -1
- {release_devkit-0.1.0 → release_devkit-0.1.1}/src/release_devkit/publish_dev.py +2 -2
- {release_devkit-0.1.0 → release_devkit-0.1.1}/src/release_devkit/publish_packages.py +2 -2
- {release_devkit-0.1.0 → release_devkit-0.1.1}/uv.lock +16 -17
- {release_devkit-0.1.0 → release_devkit-0.1.1}/.github/workflows/ci.yml +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/.github/workflows/release.yml +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/.gitignore +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/CLAUDE.md +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/LICENSE +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/NOTICE +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/README.md +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/publish-config.json +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/ruff.toml +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/src/release_devkit/__init__.py +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/src/release_devkit/config.py +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/src/release_devkit/ensure_release_pr.py +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/src/release_devkit/feeds.py +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/src/release_devkit/plan.py +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/src/release_devkit/py.typed +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/tests/test_config.py +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/tests/test_feeds.py +0 -0
- {release_devkit-0.1.0 → release_devkit-0.1.1}/tests/test_plan.py +0 -0
|
@@ -6,7 +6,7 @@ The publication machinery for outernet-foundation repos: the publish pipeline, t
|
|
|
6
6
|
|
|
7
7
|
The consumer owns everything declarative: package identities, paths, tag prefixes, registry mappings, compose files, and the CI workflow name live in a consumer-authored `publish-config.json`; every command here reads that file. Per-repo copies of this machinery are refused, as are per-ecosystem splits — the seam is internal: one `Feed` adapter per registry over the shared ledger/diff/versioning core.
|
|
8
8
|
|
|
9
|
-
The package is `release-devkit` (src-layout under `src/release_devkit/`; import `release_devkit`). Name history: `pubpkg` was unclaimable (PyPI's registrar rejects names merely similar to existing ones; nothing ever carried it), so `release-kit` was the first live PyPI identity — then the repo renamed to `release-devkit` (2026-09-21, member of the `-devkit` family): fresh tag ledger starting at `0.1.0`, with a terminal `release-kit` ≤0.1.0 deprecation release pointing here. Runtime dependencies: `bashrun` (all shell-outs), `docker-devkit` (`compute_service_shas`, `collect_repo_references`), `
|
|
9
|
+
The package is `release-devkit` (src-layout under `src/release_devkit/`; import `release_devkit`). Name history: `pubpkg` was unclaimable (PyPI's registrar rejects names merely similar to existing ones; nothing ever carried it), so `release-kit` was the first live PyPI identity — then the repo renamed to `release-devkit` (2026-09-21, member of the `-devkit` family): fresh tag ledger starting at `0.1.0`, with a terminal `release-kit` ≤0.1.0 deprecation release pointing here. Runtime dependencies: `bashrun` (all shell-outs), `docker-devkit` (`compute_service_shas`, `collect_repo_references`), `ci-devkit` (`ci_step`, runner setup, git-tag ledger), `pydantic`/`pydantic-settings` (config + CI env), `typer` (CLIs) — all from PyPI.
|
|
10
10
|
|
|
11
11
|
## Self-publication
|
|
12
12
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: release-devkit
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Publication machinery: per-package tag ledger, path-diff change detection, ephemeral version patching, and per-registry feed adapters (nuget, npm/UPM) driven by a declarative consumer-owned config
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
License-File: NOTICE
|
|
7
7
|
Requires-Python: >=3.13
|
|
8
8
|
Requires-Dist: bashrun>=0.1.0
|
|
9
|
+
Requires-Dist: ci-devkit>=0.1.0
|
|
9
10
|
Requires-Dist: docker-devkit>=0.1.0
|
|
10
11
|
Requires-Dist: pydantic-settings>=2.9.1
|
|
11
12
|
Requires-Dist: pydantic>=2.11.7
|
|
12
13
|
Requires-Dist: typer>=0.17.4
|
|
13
|
-
Requires-Dist: unity-devkit>=0.1.0
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "release-devkit"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.1"
|
|
4
4
|
description = "Publication machinery: per-package tag ledger, path-diff change detection, ephemeral version patching, and per-registry feed adapters (nuget, npm/UPM) driven by a declarative consumer-owned config"
|
|
5
5
|
requires-python = ">=3.13"
|
|
6
6
|
dependencies = [
|
|
7
7
|
"bashrun>=0.1.0",
|
|
8
8
|
"docker-devkit>=0.1.0",
|
|
9
|
-
"
|
|
9
|
+
"ci-devkit>=0.1.0",
|
|
10
10
|
"pydantic>=2.11.7",
|
|
11
11
|
"pydantic-settings>=2.9.1",
|
|
12
12
|
"typer>=0.17.4",
|
|
@@ -10,7 +10,7 @@ import typer
|
|
|
10
10
|
from bashrun import bash, bash_output
|
|
11
11
|
from pydantic_settings import BaseSettings
|
|
12
12
|
from docker_devkit.context_sha import compute_service_shas
|
|
13
|
-
from
|
|
13
|
+
from ci_devkit.ci_step import ci_step
|
|
14
14
|
|
|
15
15
|
from .config import PublishConfig, load_config
|
|
16
16
|
from .ledger import GitLedger
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import re
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
|
|
4
|
-
from
|
|
4
|
+
from ci_devkit.git_tags import (
|
|
5
|
+
create_and_push_tag as push_tag,
|
|
6
|
+
has_changes_since_tag,
|
|
7
|
+
list_tag_versions,
|
|
8
|
+
)
|
|
5
9
|
|
|
6
10
|
# Prerelease-suffixed tags (e.g. 1.0.6-preview) are not stable-ledger versions: the stable flow
|
|
7
11
|
# must never compute a next version from one. Dev-channel versions never enter the tag space.
|
|
@@ -14,20 +18,13 @@ def is_stable_version(version: str) -> bool:
|
|
|
14
18
|
|
|
15
19
|
class GitLedger:
|
|
16
20
|
def latest_version(self, prefix: str) -> str | None:
|
|
17
|
-
|
|
18
|
-
if not output:
|
|
19
|
-
return None
|
|
20
|
-
for tag in output.splitlines():
|
|
21
|
-
version = tag[len(prefix) :]
|
|
21
|
+
for version in list_tag_versions(prefix):
|
|
22
22
|
if is_stable_version(version):
|
|
23
23
|
return version
|
|
24
24
|
return None
|
|
25
25
|
|
|
26
26
|
def has_changes_since(self, tag: str | None, path: Path) -> bool:
|
|
27
|
-
|
|
28
|
-
return True
|
|
29
|
-
return not bash_check(f"git diff --quiet {tag} HEAD -- {path}")
|
|
27
|
+
return has_changes_since_tag(tag, path)
|
|
30
28
|
|
|
31
29
|
def create_and_push_tag(self, tag: str) -> None:
|
|
32
|
-
|
|
33
|
-
bash(f"git push origin {tag}")
|
|
30
|
+
push_tag(tag)
|
|
@@ -5,8 +5,8 @@ from typing import Annotated
|
|
|
5
5
|
|
|
6
6
|
import typer
|
|
7
7
|
from pydantic_settings import BaseSettings
|
|
8
|
-
from
|
|
9
|
-
from
|
|
8
|
+
from ci_devkit.ci_step import ci_step
|
|
9
|
+
from ci_devkit.setup import configure_git, free_disk_space, install_dotnet, install_node
|
|
10
10
|
|
|
11
11
|
from .config import load_config, select_packages
|
|
12
12
|
from .feeds import DEV_VERSION_FORMATS, NPM_DEV_DIST_TAG, PublishRequest, build_feeds
|
|
@@ -5,8 +5,8 @@ from typing import Annotated
|
|
|
5
5
|
|
|
6
6
|
import typer
|
|
7
7
|
from pydantic_settings import BaseSettings
|
|
8
|
-
from
|
|
9
|
-
from
|
|
8
|
+
from ci_devkit.ci_step import ci_step
|
|
9
|
+
from ci_devkit.setup import configure_git, free_disk_space, install_dotnet, install_node
|
|
10
10
|
|
|
11
11
|
from .config import load_config, select_packages
|
|
12
12
|
from .feeds import PublishRequest, build_feeds
|
|
@@ -41,6 +41,20 @@ wheels = [
|
|
|
41
41
|
{ url = "https://files.pythonhosted.org/packages/be/9a/749dd28f3defde3690e0280131f9461e4100c43c117f9363798f6dedbb91/bashrun-0.1.0-py3-none-any.whl", hash = "sha256:80f87924f88336460890d669aa1abb6fb8c389b675fdb41ac8d2b6861d4ebddb", size = 7634, upload-time = "2026-09-21T01:47:56.233Z" },
|
|
42
42
|
]
|
|
43
43
|
|
|
44
|
+
[[package]]
|
|
45
|
+
name = "ci-devkit"
|
|
46
|
+
version = "0.1.0"
|
|
47
|
+
source = { registry = "https://pypi.org/simple" }
|
|
48
|
+
dependencies = [
|
|
49
|
+
{ name = "bashrun" },
|
|
50
|
+
{ name = "pydantic" },
|
|
51
|
+
{ name = "pydantic-settings" },
|
|
52
|
+
]
|
|
53
|
+
sdist = { url = "https://files.pythonhosted.org/packages/9c/58/e0c1f17fbcf6e7adcc4192d5d0a4300be2b0d0ffd055ff746f0116ad587a/ci_devkit-0.1.0.tar.gz", hash = "sha256:ac1a463effe9a2760ea6d18301d6938c6a47d07cee9d8e14bae0c2d20ab0f377", size = 38920, upload-time = "2026-09-21T22:54:14.99Z" }
|
|
54
|
+
wheels = [
|
|
55
|
+
{ url = "https://files.pythonhosted.org/packages/c3/b3/ee5474174a4d8e9626eb0cbac234ea99908ed3988cc8b807fc8f4a2680a6/ci_devkit-0.1.0-py3-none-any.whl", hash = "sha256:3df3faf0821ffc1c32403f0af5b6b1ceb312d4912cae5b58aaf97b20c251874d", size = 26289, upload-time = "2026-09-21T22:54:13.759Z" },
|
|
56
|
+
]
|
|
57
|
+
|
|
44
58
|
[[package]]
|
|
45
59
|
name = "colorama"
|
|
46
60
|
version = "0.4.6"
|
|
@@ -301,11 +315,11 @@ version = "0.0.0.dev0"
|
|
|
301
315
|
source = { editable = "." }
|
|
302
316
|
dependencies = [
|
|
303
317
|
{ name = "bashrun" },
|
|
318
|
+
{ name = "ci-devkit" },
|
|
304
319
|
{ name = "docker-devkit" },
|
|
305
320
|
{ name = "pydantic" },
|
|
306
321
|
{ name = "pydantic-settings" },
|
|
307
322
|
{ name = "typer" },
|
|
308
|
-
{ name = "unity-devkit" },
|
|
309
323
|
]
|
|
310
324
|
|
|
311
325
|
[package.dev-dependencies]
|
|
@@ -318,11 +332,11 @@ dev = [
|
|
|
318
332
|
[package.metadata]
|
|
319
333
|
requires-dist = [
|
|
320
334
|
{ name = "bashrun", specifier = ">=0.1.0" },
|
|
335
|
+
{ name = "ci-devkit", specifier = ">=0.1.0" },
|
|
321
336
|
{ name = "docker-devkit", specifier = ">=0.1.0" },
|
|
322
337
|
{ name = "pydantic", specifier = ">=2.11.7" },
|
|
323
338
|
{ name = "pydantic-settings", specifier = ">=2.9.1" },
|
|
324
339
|
{ name = "typer", specifier = ">=0.17.4" },
|
|
325
|
-
{ name = "unity-devkit", specifier = ">=0.1.0" },
|
|
326
340
|
]
|
|
327
341
|
|
|
328
342
|
[package.metadata.requires-dev]
|
|
@@ -414,18 +428,3 @@ sdist = { url = "https://files.pythonhosted.org/packages/a3/26/b09b8010994eccc3c
|
|
|
414
428
|
wheels = [
|
|
415
429
|
{ url = "https://files.pythonhosted.org/packages/67/81/4add07e5172b7ac40d8ed5ff580409a7801a4fe26d529bdd915401dabfbe/typing_inspection-0.4.4-py3-none-any.whl", hash = "sha256:65b8397ba37ccbce054456aaccddfc91e6e3083c92824df348d96ca832f3f147", size = 14750, upload-time = "2026-08-12T12:37:24.648Z" },
|
|
416
430
|
]
|
|
417
|
-
|
|
418
|
-
[[package]]
|
|
419
|
-
name = "unity-devkit"
|
|
420
|
-
version = "0.1.0"
|
|
421
|
-
source = { registry = "https://pypi.org/simple" }
|
|
422
|
-
dependencies = [
|
|
423
|
-
{ name = "bashrun" },
|
|
424
|
-
{ name = "pydantic" },
|
|
425
|
-
{ name = "pydantic-settings" },
|
|
426
|
-
{ name = "typer" },
|
|
427
|
-
]
|
|
428
|
-
sdist = { url = "https://files.pythonhosted.org/packages/6d/04/0a44e72ea2d4d9ecfacdaaadc45e3bf287c9b77232ff5a6a3f97d73a65f0/unity_devkit-0.1.0.tar.gz", hash = "sha256:5c0d607d7ff66216f037bf0276683cbda4d6b2553480761fbd175c9029fc8de0", size = 50144, upload-time = "2026-09-21T22:17:36.414Z" }
|
|
429
|
-
wheels = [
|
|
430
|
-
{ url = "https://files.pythonhosted.org/packages/e4/f9/75c751b4a5e6ef485c912b456da3685ec80a47a08a69082d2912cda166db/unity_devkit-0.1.0-py3-none-any.whl", hash = "sha256:72f84a3560bf795f335634b8c67420d648c6df3fd2432d954dbb0c7104546a21", size = 38841, upload-time = "2026-09-21T22:17:35.41Z" },
|
|
431
|
-
]
|
|
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
|