From 4f63b93a59d3ad8c348c4c43f26dcaea01208592 Mon Sep 17 00:00:00 2001 From: Cary Hawkins Date: Sat, 21 Feb 2026 12:40:03 -0800 Subject: [PATCH 1/3] release Hatchling v1.29.0 --- backend/src/hatchling/__about__.py | 2 +- docs/history/hatchling.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/src/hatchling/__about__.py b/backend/src/hatchling/__about__.py index b3f408df1..c347ac29b 100644 --- a/backend/src/hatchling/__about__.py +++ b/backend/src/hatchling/__about__.py @@ -1 +1 @@ -__version__ = "1.28.0" +__version__ = "1.29.0" diff --git a/docs/history/hatchling.md b/docs/history/hatchling.md index bf971e749..d9f47a0fa 100644 --- a/docs/history/hatchling.md +++ b/docs/history/hatchling.md @@ -8,6 +8,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## Unreleased +## [1.29.0](https://github.com/pypa/hatch/releases/tag/hatchling-v1.29.0) - 2026-02-21 ## {: #hatchling-v1.29.0 } + ***Fixed:*** - Source Date Epoch no longer fails when set to date before 1980. From 0b321a52243b750393cd12f89f3a9bc53a61ff8a Mon Sep 17 00:00:00 2001 From: Cary Hawkins Date: Sat, 21 Feb 2026 13:30:38 -0800 Subject: [PATCH 2/3] Fix CI for immutable releases --- .github/workflows/build-hatch.yml | 2 +- .github/workflows/build-hatchling.yml | 6 ++++++ scripts/release_github.py | 22 ++++++++++++++++++---- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-hatch.yml b/.github/workflows/build-hatch.yml index 579c61b3d..825d9c619 100644 --- a/.github/workflows/build-hatch.yml +++ b/.github/workflows/build-hatch.yml @@ -582,7 +582,7 @@ jobs: path: installers merge-multiple: true - - name: Add assets to current release + - name: Add assets to draft release uses: softprops/action-gh-release@v2 with: files: |- diff --git a/.github/workflows/build-hatchling.yml b/.github/workflows/build-hatchling.yml index c7fa53059..c5d4a087f 100644 --- a/.github/workflows/build-hatchling.yml +++ b/.github/workflows/build-hatchling.yml @@ -43,6 +43,7 @@ jobs: runs-on: ubuntu-latest permissions: + contents: write id-token: write steps: @@ -55,3 +56,8 @@ jobs: uses: pypa/gh-action-pypi-publish@v1.12.3 with: skip-existing: true + + - name: Add assets to draft release + uses: softprops/action-gh-release@v2 + with: + files: dist/* diff --git a/scripts/release_github.py b/scripts/release_github.py index b22065dcc..cb6e2a491 100644 --- a/scripts/release_github.py +++ b/scripts/release_github.py @@ -1,4 +1,6 @@ import argparse +import subprocess +import sys import webbrowser from urllib.parse import urlencode @@ -11,17 +13,29 @@ def main(): args = parser.parse_args() version, notes = get_latest_release(args.project) - + tag = f"{args.project}-v{version}" + + # Create and push tag first + try: + subprocess.run(["git", "tag", tag], check=True) + subprocess.run(["git", "push", "origin", tag], check=True) + print(f"Created and pushed tag: {tag}") + except subprocess.CalledProcessError as e: + print(f"Error creating tag: {e}") + sys.exit(1) + + # Open GitHub UI to create draft release params = urlencode({ "title": f"{args.project.capitalize()} v{version}", - "tag": f"{args.project}-v{version}", + "tag": tag, "body": notes, - "prerelease": "true", + "draft": "true", }) url = f"https://github.com/pypa/hatch/releases/new?{params}" webbrowser.open_new_tab(url) + if __name__ == "__main__": - main() + main() \ No newline at end of file From 030e5c468e7e288553bbde62ce5b67332840f83e Mon Sep 17 00:00:00 2001 From: Cary Hawkins Date: Sat, 21 Feb 2026 13:35:52 -0800 Subject: [PATCH 3/3] Fix missing new line --- scripts/release_github.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/release_github.py b/scripts/release_github.py index cb6e2a491..52b3dac40 100644 --- a/scripts/release_github.py +++ b/scripts/release_github.py @@ -38,4 +38,4 @@ def main(): if __name__ == "__main__": - main() \ No newline at end of file + main()