From 6eace58f4ad7c6b6508314f199389ebac47b2eab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bern=C3=A1t=20G=C3=A1bor?= Date: Sun, 25 Oct 2026 00:17:26 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20build:=20lock=20release-creator?= =?UTF-8?q?=202.0.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- changelog.d/+release-creator-2.change.md | 3 + pylock.toml | 150 ++++++++++----------- pyproject.toml | 12 +- tests/install_locked_tools/test_install.py | 2 - tests/prepare_towncrier/test_prepare.py | 4 +- tests/render_release_notes/test_notes.py | 2 +- tools/nab_cutoffs.py | 1 + 8 files changed, 88 insertions(+), 90 deletions(-) create mode 100644 changelog.d/+release-creator-2.change.md diff --git a/README.md b/README.md index a817ebd..5e15200 100644 --- a/README.md +++ b/README.md @@ -451,8 +451,8 @@ formatting must all succeed. bump: ${{ inputs.bump }} ``` -- `bump`: `auto` (default), `major`, `minor`, `patch`, or `calver`. Passed to `release-creator tags --next`; `auto` uses - the pending fragments. The caller's dispatch form decides which choices to expose. +- `bump`: `auto` (default), `major`, `minor`, or `patch`. Passed to `release-creator tags --next`; `auto` uses the + pending fragments. The caller's dispatch form decides which choices to expose. - `tag-prefix`: Empty by default. Use `v` when release tags are spelled `v1.2.3`; version comparison still includes unprefixed numeric tags in the repository's history. This does not set the changelog heading prefix. - `changelog-prefix`: Empty by default, so Towncrier writes `1.2.3` even if the tag is `v1.2.3`. Set `v` for a changelog diff --git a/changelog.d/+release-creator-2.change.md b/changelog.d/+release-creator-2.change.md new file mode 100644 index 0000000..57686a8 --- /dev/null +++ b/changelog.d/+release-creator-2.change.md @@ -0,0 +1,3 @@ +Lock release-creator 2.0.0 for the shared release tools during its seven-day review window. Caller locks must be +regenerated with `release-creator locks` 2.0.0, because its `--check` compares the recorded uv version and no longer +writes the `[tool.nab]` stamp. The `calver` bump is gone from release-creator, so it is no longer documented here. diff --git a/pylock.toml b/pylock.toml index 81ac6a5..7d05603 100644 --- a/pylock.toml +++ b/pylock.toml @@ -112,25 +112,25 @@ sha256 = "ecd351a4be9d35a9eaaba244a7687143c9c7d4aea6ac964e7e7ddab20cbcf4e7" [[packages]] name = "cachetools" -version = "7.2.2" +version = "7.2.3" marker = "\"test\" in dependency_groups" index = "https://pypi.org/simple/" [packages.sdist] -url = "https://files.pythonhosted.org/packages/85/e0/27b467a38de29583a68973edbf99eeeee5b105567bdbd7d208e5b07525a7/cachetools-7.2.2.tar.gz" -upload-time = 2026-10-15 20:46:15+00:00 -size = 42916 +url = "https://files.pythonhosted.org/packages/09/88/27fe0785c7a9aa285c753db0b4ea967adbf76128fede66379c35a4b8d054/cachetools-7.2.3.tar.gz" +upload-time = 2026-10-17 11:41:25+00:00 +size = 43727 [packages.sdist.hashes] -sha256 = "d521dc98d501ba9efd8d2b1663bbf88163509c0c0a090eea6dc154b421ec5410" +sha256 = "e6fafd06de4a5bd915ff7d247588ea497e28c9a568c62db8678d9a5f11515a9a" [[packages.wheels]] -url = "https://files.pythonhosted.org/packages/eb/d1/15cc3b3c07cfe11bf6fbe81a4a92ebb9d202d7d903aaa36b713c8f6eabda/cachetools-7.2.2-py3-none-any.whl" -upload-time = 2026-10-15 20:46:14+00:00 -size = 17819 +url = "https://files.pythonhosted.org/packages/fb/dd/044062b61d94c59c29ad0da6918e6a21106f5b115096e9c87081cdd96167/cachetools-7.2.3-py3-none-any.whl" +upload-time = 2026-10-17 11:41:24+00:00 +size = 18352 [packages.wheels.hashes] -sha256 = "39b6c9291adde28c5de6622d25329375fadf3e8a678226e7872e2e72854e4549" +sha256 = "85ef9d2703918bedf7f88caa0b06bb3bb7a71360eb0b05c20796b89fede6e30c" [[packages]] name = "certifi" @@ -1658,25 +1658,25 @@ sha256 = "67fba928dd5a544b783f6056f449e5e3931a5c378b128bc18501f7ea79e296ec" [[packages]] name = "filelock" -version = "4.2.0" +version = "4.2.1" marker = "\"test\" in dependency_groups" index = "https://pypi.org/simple/" [packages.sdist] -url = "https://files.pythonhosted.org/packages/f4/a9/1af41b37c3279712b22cdc63aac78a52432202b6fe1f9666a2a3d2831fb4/filelock-4.2.0.tar.gz" -upload-time = 2026-10-14 20:57:13+00:00 -size = 569667 +url = "https://files.pythonhosted.org/packages/d5/98/771d8ca889f220d7d7e352addf500666368f0fd081c6080a83767580c6e4/filelock-4.2.1.tar.gz" +upload-time = 2026-10-17 16:48:14+00:00 +size = 650997 [packages.sdist.hashes] -sha256 = "7a60906c75227cf04d0c273afadc8219400f11aeb13cc69591d4f6cdc6c8036e" +sha256 = "c4c937ccac2a813cee448e662a56366cfb374c0f8702e75f295c412cc1c5d5a3" [[packages.wheels]] -url = "https://files.pythonhosted.org/packages/8e/a3/9bc26acff301fe1aaea1cc3d82a1d57e0a34df3e1cadbfa91ac2dbcdde5c/filelock-4.2.0-py3-none-any.whl" -upload-time = 2026-10-14 20:57:11+00:00 -size = 135032 +url = "https://files.pythonhosted.org/packages/28/00/db89d339bc4ecdc8087fa7b8607ba22ffc27bf96286f340c9620bea428b3/filelock-4.2.1-py3-none-any.whl" +upload-time = 2026-10-17 16:48:12+00:00 +size = 162455 [packages.wheels.hashes] -sha256 = "2ff5690882e8cdb00ef31fb3d01a3094c29f30985426c59495afb1733f3b7238" +sha256 = "7be2662e9e826b9bba28afc0f843a123280d799a2ea44bb5d35ccec67905ae44" [[packages]] name = "hatchling" @@ -2666,25 +2666,25 @@ sha256 = "a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189" [[packages]] name = "platformdirs" -version = "4.13.3" +version = "4.13.4" marker = "\"release-attestations\" in dependency_groups or \"test\" in dependency_groups" index = "https://pypi.org/simple/" [packages.sdist] -url = "https://files.pythonhosted.org/packages/da/91/4a03cfdb03314cfca262921797fff04ff4054bd86a160aed76eddf8aa12b/platformdirs-4.13.3.tar.gz" -upload-time = 2026-10-16 01:16:16+00:00 -size = 61559 +url = "https://files.pythonhosted.org/packages/b7/89/dfd269de936e76319cf27787d9eaaca513491f635d49b0fbe7cdb6d3bf6f/platformdirs-4.13.4.tar.gz" +upload-time = 2026-10-17 19:31:53+00:00 +size = 62364 [packages.sdist.hashes] -sha256 = "5e567f664eb087ab8521c0179cd8d1bd60857d271136567a39719e28e2d383ce" +sha256 = "dd96496961684a7f42041923f842ec7494e09f5e87aded99117e1109cd40570e" [[packages.wheels]] -url = "https://files.pythonhosted.org/packages/45/b8/fd1af06b079af236f5423f7c1821264419cc8f6b4803f79353acbb8bfa53/platformdirs-4.13.3-py3-none-any.whl" -upload-time = 2026-10-16 01:16:15+00:00 -size = 32762 +url = "https://files.pythonhosted.org/packages/58/51/5614d0537dd830ca64d95a2f254bd66bdf3ac61d41cffcccaec62121fcfd/platformdirs-4.13.4-py3-none-any.whl" +upload-time = 2026-10-17 19:31:52+00:00 +size = 32782 [packages.wheels.hashes] -sha256 = "f6ad7f447f24f8a3b82cce5976387428bff894a0eca6c3488f4a17f153c130c4" +sha256 = "502ce08e9d36cf90579ee44e1e764838842fa658e4975ef47344fd053011d2c8" [[packages]] name = "pluggy" @@ -3204,25 +3204,25 @@ sha256 = "b3a9c53f6cb89e5e7b5b70e6cfca97cfc66008c1ed54087355e06e40071cef21" [[packages]] name = "pyproject-api" -version = "1.11.7" +version = "1.12.0" marker = "\"test\" in dependency_groups" index = "https://pypi.org/simple/" [packages.sdist] -url = "https://files.pythonhosted.org/packages/ce/04/15a06959a6a40d62b5aa001f6df5d26bba3961a84563f745ac337a79e979/pyproject_api-1.11.7.tar.gz" -upload-time = 2026-10-15 21:59:41+00:00 -size = 26054 +url = "https://files.pythonhosted.org/packages/9a/c6/04bb77bccfa36aabc783a31e335b5441829f5ec9ff16e313b5b7022d81a8/pyproject_api-1.12.0.tar.gz" +upload-time = 2026-10-18 07:00:59+00:00 +size = 28058 [packages.sdist.hashes] -sha256 = "408e31b80e054e70d26f11b0ae3f60210ae6d54cd050e904aac63462b56404e9" +sha256 = "2e83226079dc446a8e2357def7622c01c733284e39afc8e332d9f722fe0c2beb" [[packages.wheels]] -url = "https://files.pythonhosted.org/packages/c0/ab/ed567ad9253b3528e8b16d124944ca646cc8737578c6aa0838b21155e461/pyproject_api-1.11.7-py3-none-any.whl" -upload-time = 2026-10-15 21:59:40+00:00 -size = 13594 +url = "https://files.pythonhosted.org/packages/b9/b6/ce66a85089985da9b15b0e0e0d668c4b26c994f619e28a11d609454f3d70/pyproject_api-1.12.0-py3-none-any.whl" +upload-time = 2026-10-18 07:00:58+00:00 +size = 14055 [packages.wheels.hashes] -sha256 = "e90ddef94bd3027c652e11b04537d269788b6c5d75311c139ffb372e4fcb562c" +sha256 = "1d3cbf37ac4c3a40940e09cbd4374608d25cdd89e6019f7e06fc285afd3ab467" [[packages]] name = "pyproject-hooks" @@ -3292,25 +3292,25 @@ sha256 = "749937892dbf909c8b703503b491be66fc24073e7988bf9b4d783af4f33da942" [[packages]] name = "pytest-mock" -version = "3.16.0" +version = "3.17.0" marker = "\"test\" in dependency_groups" index = "https://pypi.org/simple/" [packages.sdist] -url = "https://files.pythonhosted.org/packages/7a/7f/6ed29931d5c8cd396e7c0a55412e6cc88020373365c8685985dea53d26d7/pytest_mock-3.16.0.tar.gz" -upload-time = 2026-09-27 14:57:55+00:00 -size = 35362 +url = "https://files.pythonhosted.org/packages/97/c2/28b9f5b955ff2bcd4727a6f768e2ca9b586cd7c37b95ea5f7b9b873ac7b3/pytest_mock-3.17.0.tar.gz" +upload-time = 2026-10-17 16:21:42+00:00 +size = 43064 [packages.sdist.hashes] -sha256 = "5a8395528b8f498205f3718f575228d0edaed7425fff638f87d1a6c3e0383636" +sha256 = "e36576e0985e01027e999891e7a966c67822d40c89ef1b4c8b6e22737e3590b4" [[packages.wheels]] -url = "https://files.pythonhosted.org/packages/db/5b/b83a9bf1a3b4ec222f9fa083147ff6816245223da0ab92370e7e056f113f/pytest_mock-3.16.0-py3-none-any.whl" -upload-time = 2026-09-27 14:57:54+00:00 -size = 10016 +url = "https://files.pythonhosted.org/packages/e8/ea/47fbdc8f37410956fd445720e927589b1e2a47772c5f28109f0ce2fa26d9/pytest_mock-3.17.0-py3-none-any.whl" +upload-time = 2026-10-17 16:21:41+00:00 +size = 11248 [packages.wheels.hashes] -sha256 = "007cfeb257801d88d9c0b2a7b5a15a15e73b71968dfd72e7bf8c4a2f8393aec8" +sha256 = "1b82aa4b37137248bd687055e109723debeb07b489de1565297dc9589c5f2d6b" [[packages]] name = "pytest-xdist" @@ -3416,25 +3416,25 @@ sha256 = "d0dae1f74bb273b534770cb4cccb6bb78735540afdb03c2146f4e19dcd412560" [[packages]] name = "release-creator" -version = "1.1.0" +version = "2.0.0" 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" index = "https://pypi.org/simple/" [packages.sdist] -url = "https://files.pythonhosted.org/packages/cf/b2/ce67bd2fb46af74ddc5a96dcea9d04c2efa6eaa818a16aad956dd8bafce1/release_creator-1.1.0.tar.gz" -upload-time = 2026-10-24 09:08:39+00:00 -size = 195730 +url = "https://files.pythonhosted.org/packages/5d/40/55f7a22a3cda929f9efdf09dbb825e888487e658ce14892f2340218335c1/release_creator-2.0.0.tar.gz" +upload-time = 2026-10-25 07:08:31+00:00 +size = 209257 [packages.sdist.hashes] -sha256 = "26acad6c9885c148a9c0cb4fbec052c2b87ba1516ac3a337f3483c6fc606f749" +sha256 = "f7ccec9787327a7e12f4a79c15dff470e894d3a88c9bb60eac9c6f1984ee63bf" [[packages.wheels]] -url = "https://files.pythonhosted.org/packages/f9/b3/cab1d422780fd4077192b1aaba70558554c4844f04d5046e06034c593cf0/release_creator-1.1.0-py3-none-any.whl" -upload-time = 2026-10-24 09:08:38+00:00 -size = 62323 +url = "https://files.pythonhosted.org/packages/88/f1/d7103a5c410019207015fc8229f976e8906da90409eddd5e00066bb360ca/release_creator-2.0.0-py3-none-any.whl" +upload-time = 2026-10-25 07:08:29+00:00 +size = 66805 [packages.wheels.hashes] -sha256 = "fe3b60e46781b9bf5bddb6499727f3f14c73f12b9232382bffdb1817fa93c721" +sha256 = "cf93c2395f4a9ba80bd503792c16189fc238c5d82bb90535250de2968d8d2e92" [[packages]] name = "requests" @@ -4022,25 +4022,25 @@ sha256 = "ae4d223e6aadaff98d29b7f09e58d9c9ccf4cd3b455a2d2e0486d432cd8bf660" [[packages]] name = "tox" -version = "4.66.0" +version = "4.67.0" marker = "\"test\" in dependency_groups" index = "https://pypi.org/simple/" [packages.sdist] -url = "https://files.pythonhosted.org/packages/65/17/183426a492c45f113fb73e26d7e17de63222338222a887b1da055356d0bc/tox-4.66.0.tar.gz" -upload-time = 2026-10-16 08:09:14+00:00 -size = 344679 +url = "https://files.pythonhosted.org/packages/4a/79/ce1ce8c98a1ff8ff318191ed1b4f113a3a8626fccfcedc687f7a485b5d7f/tox-4.67.0.tar.gz" +upload-time = 2026-10-17 19:15:47+00:00 +size = 346271 [packages.sdist.hashes] -sha256 = "f9dc2cec9310a3ab5a560669cf860cf6ffad7d04733a0845c7ad7ac00d6b2808" +sha256 = "d3e48816bebbd7bad0f6942a36fa7bcd14fe4ccbf4b3a5d54040ca0294dafd1f" [[packages.wheels]] -url = "https://files.pythonhosted.org/packages/b9/e4/929ad087f3f4c6c8dadf64251d7215da77c0b2b6628b8e55c9b2fbcb5d72/tox-4.66.0-py3-none-any.whl" -upload-time = 2026-10-16 08:09:12+00:00 -size = 237594 +url = "https://files.pythonhosted.org/packages/18/f5/13f35b631325801434ba2609fe9225d1733006003519b093a233c55ebb73/tox-4.67.0-py3-none-any.whl" +upload-time = 2026-10-17 19:15:46+00:00 +size = 237718 [packages.wheels.hashes] -sha256 = "f12458756246e8be78934f011024dc952c25631008c7a935683fe5843408add4" +sha256 = "8fbe14416ba59543d3df3b9376537e5132fd2dd44176591285ecefb40b179533" [[packages]] name = "tox-uv" @@ -4564,25 +4564,25 @@ sha256 = "0548460d46c8667488b1f089e936f29f0edfb1cc753f9152ffbd8bc84a46aa20" [[packages]] name = "virtualenv" -version = "21.14.8" +version = "21.14.11" marker = "\"test\" in dependency_groups" index = "https://pypi.org/simple/" [packages.sdist] -url = "https://files.pythonhosted.org/packages/0b/6a/fbdeea5c07d5674139639d42a97a41d26e9b9b8cb2a1265fa936f655ee20/virtualenv-21.14.8.tar.gz" -upload-time = 2026-10-16 00:09:09+00:00 -size = 5474561 +url = "https://files.pythonhosted.org/packages/7f/be/4d1d59d309db76b5808fcfd78bd5996f4e7241366691c38fc331a3136398/virtualenv-21.14.11.tar.gz" +upload-time = 2026-10-18 07:06:34+00:00 +size = 5503091 [packages.sdist.hashes] -sha256 = "394e45ed610ceffb5018e1a179e3a8012c02fd87fe792ab4aae67ce5e7e3afbd" +sha256 = "593052d8477ea8c55a842387ce111bd08c72618f0c1133c302cafe335e570a57" [[packages.wheels]] -url = "https://files.pythonhosted.org/packages/14/01/cd63b97dd556293e1c74d76053936d9cef11a28eac605c735ae9f0ee324f/virtualenv-21.14.8-py3-none-any.whl" -upload-time = 2026-10-16 00:09:07+00:00 -size = 5487606 +url = "https://files.pythonhosted.org/packages/ce/6b/d85da8982b41190eafcb9df91dff9d83fc6989e98af4b5be4c8f85510c95/virtualenv-21.14.11-py3-none-any.whl" +upload-time = 2026-10-18 07:06:32+00:00 +size = 5495268 [packages.wheels.hashes] -sha256 = "d2a347fdbc1a65e33c2c5e84dc767b4a3538a25749536a752744d4fe1f71c37a" +sha256 = "b319f8590a84e5de5f8f2c803ecd2237e9bc0ffa7c1e875e3169c107cecb7454" [[packages]] name = "wcwidth" @@ -4847,7 +4847,5 @@ size = 30255 sha256 = "4e8b4e54979b26554c72a7e669009017a7fdd3fb00bbae0b26f82a86636c289f" [tool.release-creator] -created-at = 2026-10-24 11:11:49.304279+00:00 - -[tool.nab] -created-at = 2026-10-24 11:11:49.304279+00:00 +created-at = 2026-10-25 07:10:27.737557+00:00 +uv-version = "0.13.5" diff --git a/pyproject.toml b/pyproject.toml index a25099e..479adbd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,16 +11,16 @@ license-files = [ "LICENSE" ] build = [ "Cython>=3.0", "setuptools>=80" ] lock-tools = [ "nab==0.0.22", "tomlkit>=0.13" ] lock-reader = [ "certifi>=2026.7.22", "packaging>=26.3" ] -release-notes = [ "release-creator>=1.1.0" ] +release-notes = [ "release-creator>=2.0.0" ] release-resolver = [ "uv==0.13.5" ] release-mise-editor = [ "pyyaml>=6" ] -release-news = [ "release-creator>=1.1.0", "towncrier>=26.9" ] -release-prepare = [ "release-creator>=1.1.0", "towncrier>=26.9", "prek>=0.2" ] -release-validate = [ "release-creator>=1.1.0", "prek>=0.2" ] +release-news = [ "release-creator>=2.0.0", "towncrier>=26.9" ] +release-prepare = [ "release-creator>=2.0.0", "towncrier>=26.9", "prek>=0.2" ] +release-validate = [ "release-creator>=2.0.0", "prek>=0.2" ] release-check = [ "prek>=0.2" ] release-attestations = [ "certifi>=2026.7.22", "pypi-attestations>=0.0.30" ] release-shell = [ "prek>=0.2", "yq>=4.4.5" ] -release-hooks = [ "release-creator>=1.1.0", "prek>=0.2" ] +release-hooks = [ "release-creator>=2.0.0", "prek>=0.2" ] release-hook-check = [ "prek>=0.2", "yq>=4.4.5" ] test = [ "certifi", @@ -47,7 +47,7 @@ nab-markersets = "2026-10-18T05:45:09Z" nab-project = "2026-10-18T05:45:09Z" nab-provider = "2026-10-18T05:45:09Z" nab-resolver = "2026-10-18T05:45:09Z" -release-creator = "2026-10-24T09:08:40Z" +release-creator = "2026-10-25T07:08:32Z" uv = "2026-10-22T01:32:34Z" [tool.ruff] diff --git a/tests/install_locked_tools/test_install.py b/tests/install_locked_tools/test_install.py index 25afe66..79bb775 100644 --- a/tests/install_locked_tools/test_install.py +++ b/tests/install_locked_tools/test_install.py @@ -377,8 +377,6 @@ def test_install_locked_tools_uses_full_lock_provenance_and_selected_groups( ) -> None: source = Path(__file__).resolve().parents[2] document = tomlkit.parse((source / "pylock.toml").read_text()) - document["tool"]["nab"]["created-at"] = datetime(2099, 1, 1, tzinfo=UTC) - document["tool"]["release-creator"] = {"created-at": datetime(2026, 10, 24, tzinfo=UTC)} document["dependency-groups"].append("test") package = next(package for package in document["packages"] if package["name"] == "release-creator") package["marker"] = '"test" in dependency_groups' diff --git a/tests/prepare_towncrier/test_prepare.py b/tests/prepare_towncrier/test_prepare.py index fa15c53..cccde66 100644 --- a/tests/prepare_towncrier/test_prepare.py +++ b/tests/prepare_towncrier/test_prepare.py @@ -1,6 +1,5 @@ from __future__ import annotations -from datetime import date from pathlib import Path from textwrap import dedent @@ -135,7 +134,7 @@ def test_prepare_renders_github_notes( ### Features - - Add a new feature ([#2](https://github.com/tox-dev/github-workflows/pull/2)) by @gaborbernat. + - Add a new feature ([#2](https://github.com/tox-dev/github-workflows/pull/2)) by [@gaborbernat](https://github.com/gaborbernat). [Full Changelog](https://github.com/tox-dev/github-workflows/compare/0.1.0...0.2.0) """, @@ -176,7 +175,6 @@ def test_prepare_rejects_invalid_option( pytest.param("major", "1.0.0", id="major"), pytest.param("minor", "0.2.0", id="minor"), pytest.param("patch", "0.1.1", id="patch"), - pytest.param("calver", f"{date.today().year}.{date.today().month}.0", id="calver"), ], ) def test_prepare_selects_version( diff --git a/tests/render_release_notes/test_notes.py b/tests/render_release_notes/test_notes.py index 8304e44..dac8b70 100644 --- a/tests/render_release_notes/test_notes.py +++ b/tests/render_release_notes/test_notes.py @@ -54,7 +54,7 @@ def test_render_release_notes_uses_tagged_changelog( ### Features - - Add a new feature ([#2](https://github.com/tox-dev/fixture/pull/2)) by @gaborbernat. + - Add a new feature ([#2](https://github.com/tox-dev/fixture/pull/2)) by [@gaborbernat](https://github.com/gaborbernat). [PyPI release](https://pypi.org/project/fixture/0.2.0/) diff --git a/tools/nab_cutoffs.py b/tools/nab_cutoffs.py index 3da0280..6ca548e 100644 --- a/tools/nab_cutoffs.py +++ b/tools/nab_cutoffs.py @@ -24,6 +24,7 @@ ("release-creator", "0.6.7"): datetime(2026, 10, 23, 21, 40, 6, tzinfo=UTC), ("release-creator", "1.0.0"): datetime(2026, 10, 24, 6, 7, 46, tzinfo=UTC), ("release-creator", "1.1.0"): datetime(2026, 10, 24, 9, 8, 40, tzinfo=UTC), + ("release-creator", "2.0.0"): datetime(2026, 10, 25, 7, 8, 32, tzinfo=UTC), ("uv", "0.13.5"): datetime(2026, 10, 22, 1, 32, 34, tzinfo=UTC), ("uv-build", "0.13.4"): datetime(2026, 10, 21, tzinfo=UTC), }