release-devkit 0.1.2__tar.gz → 0.1.3__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 (31) hide show
  1. {release_devkit-0.1.2 → release_devkit-0.1.3}/.github/workflows/ci.yml +1 -1
  2. {release_devkit-0.1.2 → release_devkit-0.1.3}/PKG-INFO +1 -1
  3. {release_devkit-0.1.2 → release_devkit-0.1.3}/pyproject.toml +1 -1
  4. {release_devkit-0.1.2 → release_devkit-0.1.3}/ruff.base.toml +6 -0
  5. {release_devkit-0.1.2 → release_devkit-0.1.3}/src/release_devkit/create_release.py +1 -1
  6. {release_devkit-0.1.2 → release_devkit-0.1.3}/src/release_devkit/ensure_release_pr.py +1 -1
  7. {release_devkit-0.1.2 → release_devkit-0.1.3}/src/release_devkit/feeds.py +1 -1
  8. {release_devkit-0.1.2 → release_devkit-0.1.3}/src/release_devkit/fetch_ci_artifacts.py +1 -1
  9. {release_devkit-0.1.2 → release_devkit-0.1.3}/src/release_devkit/mirror_images.py +1 -1
  10. release_devkit-0.1.3/src/release_devkit/py.typed +0 -0
  11. {release_devkit-0.1.2 → release_devkit-0.1.3}/tests/test_config.py +3 -4
  12. {release_devkit-0.1.2 → release_devkit-0.1.3}/tests/test_feeds.py +1 -1
  13. {release_devkit-0.1.2 → release_devkit-0.1.3}/tests/test_plan.py +4 -4
  14. release_devkit-0.1.2/src/release_devkit/__init__.py +0 -35
  15. {release_devkit-0.1.2 → release_devkit-0.1.3}/.gitattributes +0 -0
  16. {release_devkit-0.1.2 → release_devkit-0.1.3}/.github/workflows/release.yml +0 -0
  17. {release_devkit-0.1.2 → release_devkit-0.1.3}/.gitignore +0 -0
  18. {release_devkit-0.1.2 → release_devkit-0.1.3}/AGENTS.md +0 -0
  19. {release_devkit-0.1.2 → release_devkit-0.1.3}/CLAUDE.md +0 -0
  20. {release_devkit-0.1.2 → release_devkit-0.1.3}/LICENSE +0 -0
  21. {release_devkit-0.1.2 → release_devkit-0.1.3}/NOTICE +0 -0
  22. {release_devkit-0.1.2 → release_devkit-0.1.3}/README.md +0 -0
  23. {release_devkit-0.1.2 → release_devkit-0.1.3}/publish-config.json +0 -0
  24. {release_devkit-0.1.2 → release_devkit-0.1.3}/ruff.toml +0 -0
  25. /release_devkit-0.1.2/src/release_devkit/py.typed → /release_devkit-0.1.3/src/release_devkit/__init__.py +0 -0
  26. {release_devkit-0.1.2 → release_devkit-0.1.3}/src/release_devkit/config.py +0 -0
  27. {release_devkit-0.1.2 → release_devkit-0.1.3}/src/release_devkit/ledger.py +0 -0
  28. {release_devkit-0.1.2 → release_devkit-0.1.3}/src/release_devkit/plan.py +0 -0
  29. {release_devkit-0.1.2 → release_devkit-0.1.3}/src/release_devkit/publish_dev.py +0 -0
  30. {release_devkit-0.1.2 → release_devkit-0.1.3}/src/release_devkit/publish_packages.py +0 -0
  31. {release_devkit-0.1.2 → release_devkit-0.1.3}/uv.lock +0 -0
@@ -33,4 +33,4 @@ jobs:
33
33
  run: uv run pytest
34
34
 
35
35
  - name: Ruff config drift
36
- run: uvx --from python-devkit==0.1.2 sync-ruff --check
36
+ run: uvx --from python-devkit==0.1.3 sync-ruff --check
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: release-devkit
3
- Version: 0.1.2
3
+ Version: 0.1.3
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "release-devkit"
3
- version = "0.1.2"
3
+ version = "0.1.3"
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 = [
@@ -194,5 +194,11 @@ ignore = [
194
194
  # that pytest consumes implicitly; pytest-style test classes need no self use
195
195
  "**/tests/**" = ["S101", "ARG001", "ARG002", "PLR6301"]
196
196
 
197
+ [lint.ruff]
198
+ # RUF067 in strict mode: __init__.py files must be empty — no re-exports, no
199
+ # side effects. Consumers import submodule paths (from pkg.mod import thing);
200
+ # the package layout is the public surface.
201
+ strictly-empty-init-modules = true
202
+
197
203
  [lint.flake8-builtins]
198
204
  ignorelist = ["id", "map"]
@@ -7,7 +7,7 @@ from tempfile import NamedTemporaryFile
7
7
  from typing import Annotated
8
8
 
9
9
  import typer
10
- from bashrun import bash, bash_output
10
+ from bashrun.bash import bash, bash_output
11
11
  from pydantic_settings import BaseSettings
12
12
  from docker_devkit.context_sha import compute_service_shas
13
13
  from ci_devkit.ci_step import ci_step
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import typer
4
- from bashrun import bash_output
4
+ from bashrun.bash import bash_output
5
5
 
6
6
  app = typer.Typer(add_completion=False, pretty_exceptions_show_locals=False)
7
7
 
@@ -7,7 +7,7 @@ from pathlib import Path
7
7
  from subprocess import CalledProcessError
8
8
  from typing import Protocol
9
9
 
10
- from bashrun import bash, bash_output
10
+ from bashrun.bash import bash, bash_output
11
11
 
12
12
  NUGET_SOURCE = "https://api.nuget.org/v3/index.json"
13
13
  PYPI_SIMPLE_INDEX = "https://pypi.org/simple/"
@@ -5,7 +5,7 @@ from shutil import rmtree
5
5
  from typing import Annotated
6
6
 
7
7
  import typer
8
- from bashrun import bash, bash_output
8
+ from bashrun.bash import bash, bash_output
9
9
  from pydantic_settings import BaseSettings
10
10
  from ci_devkit.ci_step import ci_step
11
11
 
@@ -5,7 +5,7 @@ from pathlib import Path
5
5
  from typing import Annotated
6
6
 
7
7
  import typer
8
- from bashrun import bash
8
+ from bashrun.bash import bash
9
9
  from docker_devkit.image_refs import collect_repo_references
10
10
  from ci_devkit.ci_step import ci_step
11
11
 
File without changes
@@ -4,8 +4,7 @@ from pathlib import Path
4
4
  import pytest
5
5
  from pydantic import ValidationError
6
6
 
7
- import release_devkit
8
- from release_devkit import load_config, select_packages
7
+ from release_devkit.config import PackageConfig, load_config, select_packages
9
8
 
10
9
 
11
10
  def write_config(tmp_path: Path, payload: dict[str, object]) -> Path:
@@ -126,11 +125,11 @@ def test_load_config_rejects_unknown_dependency_pin(tmp_path: Path):
126
125
  load_config(write_config(tmp_path, payload_with_unknown_pin()))
127
126
 
128
127
 
129
- def package_names(packages: list[release_devkit.PackageConfig]) -> list[str]:
128
+ def package_names(packages: list[PackageConfig]) -> list[str]:
130
129
  return [package.name for package in packages]
131
130
 
132
131
 
133
- def loaded_packages(tmp_path: Path) -> list[release_devkit.PackageConfig]:
132
+ def loaded_packages(tmp_path: Path) -> list[PackageConfig]:
134
133
  return load_config(write_config(tmp_path, base_payload())).packages
135
134
 
136
135
 
@@ -3,7 +3,7 @@ from pathlib import Path
3
3
 
4
4
  import pytest
5
5
 
6
- from release_devkit import NpmFeed, PublishRequest
6
+ from release_devkit.feeds import NpmFeed, PublishRequest
7
7
  from release_devkit.feeds import (
8
8
  DEV_VERSION_FORMATS,
9
9
  KNOWN_FEEDS,
@@ -1,15 +1,15 @@
1
1
  from pathlib import Path
2
2
 
3
- from release_devkit import (
4
- PackageConfig,
3
+ from release_devkit.config import PackageConfig
4
+ from release_devkit.ledger import is_stable_version
5
+ from release_devkit.plan import (
6
+ TagLedger,
5
7
  compute_plan,
6
8
  next_version,
7
9
  render_dev_summary,
8
10
  render_summary,
9
11
  resolved_dependency_versions,
10
12
  )
11
- from release_devkit.ledger import is_stable_version
12
- from release_devkit.plan import TagLedger
13
13
 
14
14
 
15
15
  def test_is_stable_version_rejects_prerelease_suffixes():
@@ -1,35 +0,0 @@
1
- from .config import AppConfig, PackageConfig, PublishConfig, load_config, select_packages
2
- from .feeds import Feed, NuGetFeed, NpmFeed, PublishRequest, build_feeds, pep440_dev_version, semver_dev_version
3
- from .ledger import GitLedger
4
- from .plan import (
5
- PackagePlan,
6
- TagLedger,
7
- compute_plan,
8
- next_version,
9
- render_dev_summary,
10
- render_summary,
11
- resolved_dependency_versions,
12
- )
13
-
14
- __all__ = [
15
- "AppConfig",
16
- "Feed",
17
- "GitLedger",
18
- "NpmFeed",
19
- "NuGetFeed",
20
- "PackageConfig",
21
- "PackagePlan",
22
- "PublishConfig",
23
- "PublishRequest",
24
- "TagLedger",
25
- "build_feeds",
26
- "compute_plan",
27
- "load_config",
28
- "next_version",
29
- "pep440_dev_version",
30
- "render_dev_summary",
31
- "render_summary",
32
- "resolved_dependency_versions",
33
- "select_packages",
34
- "semver_dev_version",
35
- ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes