Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/+release-creator-065.bugfix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Allow release jobs to use release-creator 0.6.5 under its reviewed upload cutoff.
25 changes: 13 additions & 12 deletions pylock.toml
Original file line number Diff line number Diff line change
Expand Up @@ -1703,7 +1703,7 @@ sha256 = "d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f"

[[packages]]
name = "release-creator"
version = "0.6.4"
version = "0.6.5"
marker = "\"release-hooks\" in dependency_groups or \"release-news\" in dependency_groups or \"release-notes\" in dependency_groups or \"release-prepare\" in dependency_groups or \"release-validate\" in dependency_groups"
requires-python = ">=3.15"
dependencies = [
Expand All @@ -1717,22 +1717,22 @@ dependencies = [
index = "https://pypi.org/simple/"

[packages.sdist]
name = "release_creator-0.6.4.tar.gz"
upload-time = 2026-10-23 16:52:05.496598+00:00
url = "https://files.pythonhosted.org/packages/97/91/9e1cac72d6bac1b0c5bce41a9231340c9d8640063102461c0fd33817ca50/release_creator-0.6.4.tar.gz"
size = 133464
name = "release_creator-0.6.5.tar.gz"
upload-time = 2026-10-23 19:54:49.281646+00:00
url = "https://files.pythonhosted.org/packages/a0/da/7195823b3d0ab066f518d8bd987f88a39e0e39da33f629e021346209a7cb/release_creator-0.6.5.tar.gz"
size = 135158

[packages.sdist.hashes]
sha256 = "801c15dfc79e862298037fe1f02b52f3b2c3035acc02bebff9fa916c3b3fdce0"
sha256 = "954247b06b7b9a8c196a782252e3d980d33a9e9b7f9e5aea7647ef6c758d4275"

[[packages.wheels]]
name = "release_creator-0.6.4-py3-none-any.whl"
upload-time = 2026-10-23 16:52:04.227467+00:00
url = "https://files.pythonhosted.org/packages/fb/86/fb3fb2b9b5cf3f6ea6d67b711c9d7915a2cec5ed1542bcf6bde51e85cd77/release_creator-0.6.4-py3-none-any.whl"
size = 46339
name = "release_creator-0.6.5-py3-none-any.whl"
upload-time = 2026-10-23 19:54:47.716775+00:00
url = "https://files.pythonhosted.org/packages/f1/4c/6215690fc2b48f3d927699bb16f5c8bcf26b8862e378df33a2581a45215b/release_creator-0.6.5-py3-none-any.whl"
size = 46723

[packages.wheels.hashes]
sha256 = "cf41e5d6d50b489fbc666a82790463f810caff4f91f18c9da02ec72dc96223a0"
sha256 = "dd109f7fb64808a83833c332b8563c56bd943c4a8de79b440eab475b5ca9a73e"

[[packages]]
name = "requests"
Expand Down Expand Up @@ -2483,10 +2483,11 @@ sha256 = "4e8b4e54979b26554c72a7e669009017a7fdd3fb00bbae0b26f82a86636c289f"

[tool.nab]
nab-version = "0.0.22"
created-at = 2026-10-23 16:58:48.863323+00:00
created-at = 2026-10-23 19:55:55.131127+00:00
command-line = [
"nab",
"lock",
"--no-cache",
"--groups",
"build",
"lock-tools",
Expand Down
12 changes: 6 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ license-files = [ "LICENSE" ]
[dependency-groups]
build = [ "Cython>=3.0", "setuptools>=80" ]
lock-tools = [ "nab==0.0.22", "tomlkit>=0.13" ]
release-notes = [ "release-creator>=0.6.4" ]
release-news = [ "release-creator>=0.6.4", "towncrier>=26.9" ]
release-prepare = [ "release-creator>=0.6.4", "towncrier>=26.9", "prek>=0.2" ]
release-validate = [ "release-creator>=0.6.4", "prek>=0.2" ]
release-notes = [ "release-creator>=0.6.5" ]
release-news = [ "release-creator>=0.6.5", "towncrier>=26.9" ]
release-prepare = [ "release-creator>=0.6.5", "towncrier>=26.9", "prek>=0.2" ]
release-validate = [ "release-creator>=0.6.5", "prek>=0.2" ]
release-check = [ "prek>=0.2" ]
release-attestations = [ "pypi-attestations>=0.0.30" ]
release-shell = [ "prek>=0.2", "yq>=4.4.5" ]
release-hooks = [ "release-creator>=0.6.4", "prek>=0.2" ]
release-hooks = [ "release-creator>=0.6.5", "prek>=0.2" ]
release-hook-check = [ "prek>=0.2", "yq>=4.4.5" ]
test = [
"certifi",
Expand Down Expand Up @@ -66,7 +66,7 @@ uploaded-prior-to = "2026-10-18T05:45:09Z"
uploaded-prior-to = "2026-10-18T05:45:09Z"

[tool.nab.packages.release-creator]
uploaded-prior-to = "2026-10-23T16:52:06Z"
uploaded-prior-to = "2026-10-23T19:54:50Z"

[tool.ruff]
line-length = 120
Expand Down
13 changes: 11 additions & 2 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def test_package_lock(tmp_path_factory: pytest.TempPathFactory, nab_executable:
'default-groups = []\n[tool.nab.matrix]\npython = ">=3.15,<3.16"\nplatforms = ["linux_x86_64"]\n'
)
subprocess.run(
[str(nab_executable), "lock", "--groups", "fixture", "--output", "pylock.toml"],
[str(nab_executable), "lock", "--no-cache", "--groups", "fixture", "--output", "pylock.toml"],
cwd=fixture,
check=True,
capture_output=True,
Expand Down Expand Up @@ -267,7 +267,16 @@ def build_repository(source_project: Path, nab_executable: Path, monkeypatch: py
+ f"\n[dependency-groups]\nrelease-notes = [{json.dumps(release_requirement)}]\n"
+ '\n[tool.nab]\nbase-group = "project-runtime"\nbuild-group = "build"\n'
)
run(source_project, str(nab_executable), "lock", "--groups", "release-notes", "--output", "pylock.toml")
run(
source_project,
str(nab_executable),
"lock",
"--no-cache",
"--groups",
"release-notes",
"--output",
"pylock.toml",
)
run(source_project, "git", "add", ".")
run(source_project, "git", "commit", "-m", "Add package source")
run(source_project, "git", "push", "origin", "main")
Expand Down
14 changes: 8 additions & 6 deletions tests/install_locked_tools/test_install.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,10 +173,12 @@ def test_install_locked_tools_checks_caller_release_creator(tmp_path: Path, loca

def test_local_tool_source_accepts_versionless_package(tmp_path: Path) -> None:
source = Path(__file__).resolve().parents[2]
project = tomllib.loads((source / "pylock.toml").read_text())
package = next(item for item in project["packages"] if item["name"] == "release-creator")
lock = (source / "pylock.toml").read_text().replace(f'version = "{package["version"]}"', "", 1)
(tmp_path / "pylock.toml").write_text(lock)
document = tomlkit.parse((source / "pylock.toml").read_text())
package = next(item for item in document["packages"] if item["name"] == "release-creator")
for field in ("version", "index", "sdist", "wheels"):
package.pop(field)
package["directory"] = {"path": "."}
(tmp_path / "pylock.toml").write_text(tomlkit.dumps(document))
result = subprocess.run(
[
"python",
Expand Down Expand Up @@ -341,8 +343,8 @@ def test_install_locked_tools_rejects_unreviewed_version_under_reviewed_floor(tm
package = next(package for package in document["packages"] if package["name"] == "release-creator")
package["version"] = "0.6.3"
for artifact in [package["sdist"], *package["wheels"]]:
artifact["name"] = artifact["name"].replace("0.6.4", "0.6.3")
artifact["url"] = artifact["url"].replace("0.6.4", "0.6.3")
artifact["name"] = artifact["name"].replace("0.6.5", "0.6.3")
artifact["url"] = artifact["url"].replace("0.6.5", "0.6.3")
lock = tmp_path / "pylock.toml"
lock.write_text(tomlkit.dumps(document))

Expand Down
4 changes: 3 additions & 1 deletion tests/refresh_release_lock/test_cutoffs.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ def test_check_nab_lock_rejects_forged_upload_time(
committed.write_bytes(lock.read_bytes())

regenerated = subprocess.run(
[str(nab_executable), "lock", "--groups", "release-notes", "--output", "pylock.toml"],
[str(nab_executable), "lock", "--no-cache", "--groups", "release-notes", "--output", "pylock.toml"],
cwd=build_repository,
text=True,
capture_output=True,
Expand All @@ -200,6 +200,8 @@ def test_check_nab_lock_rejects_forged_upload_time(
pytest.param("release-creator", "2026-10-23T02:44:40Z", True, id="reviewed-release-creator"),
pytest.param("release-creator", "2026-10-23T16:52:06Z", True, id="reviewed-release-creator-0.6.4"),
pytest.param("release-creator", "2026-10-23T16:52:07Z", False, id="extended-release-creator"),
pytest.param("release-creator", "2026-10-23T19:54:50Z", True, id="reviewed-release-creator-0.6.5"),
pytest.param("release-creator", "2026-10-23T19:54:51Z", False, id="extended-release-creator-0.6.5"),
pytest.param("unreviewed", "2026-10-22T00:00:00Z", False, id="new-package"),
],
)
Expand Down
1 change: 1 addition & 0 deletions tools/nab_cutoffs.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
},
("release-creator", "0.6.0"): datetime(2026, 10, 23, 2, 44, 40, tzinfo=UTC),
("release-creator", "0.6.4"): datetime(2026, 10, 23, 16, 52, 6, tzinfo=UTC),
("release-creator", "0.6.5"): datetime(2026, 10, 23, 19, 54, 50, tzinfo=UTC),
("uv-build", "0.13.4"): datetime(2026, 10, 21, tzinfo=UTC),
}
_REVIEWED_EXCEPTIONS: Final = {
Expand Down
Loading