release(deepagents-talon): 0.0.4 - #5605
Conversation
1b86b09 to
43da465
Compare
38c30c2 to
9c93107
Compare
Release PRs now fail before merge when their built wheel needs dependency metadata that has not reached PyPI, or when the wheel cannot be installed from the public index the way `release.yml` installs it. --- Source CI installs sibling packages from local editable paths, which can hide a required release order: a sibling package's source may declare a new Python floor or dependency floor that PyPI's latest published wheel does not yet have. Merging in that state would break the post-merge release install. The `📦 Check Dependency Freshness` workflow now, for release PRs only: 1. Builds the release wheel and checks every `Requires-Dist` constraint against PyPI. For repo-managed dependencies it also verifies the newest eligible PyPI files satisfy the sibling's current Python metadata. Direct URL dependencies fail, since this path verifies PyPI. 2. Installs the wheel into a clean environment on the package's release Python with `--index-url https://pypi.org/simple`, with Talon getting the same `--prerelease allow` exception as the release workflow. Non-release PRs get a passing no-op, so the job is safe to require globally. ## Demonstration The check passes on this normal (non-release) PR: [workflow run 32184070069](https://github.com/langchain-ai/deepagents/actions/runs/32184070069). A live GitHub-hosted failure run is not feasible before merge: pull-request workflows execute from the head branch, so the failing Talon 0.0.4 release PR (#5605) does not contain this code, and a new `workflow_dispatch` trigger is not recognized until it exists on the default branch. Locally, the same check against the built Talon wheel and live PyPI JSON fails with: > `deepagents-code 0.1.57 (latest on PyPI) declares requires-python<4.0,>=3.11, but the current deepagents-code metadata requires >=3.12,<4.0. Constraint: <1.0.0,>=0.1.30. Release deepagents-code first, then re-run this check.` The clean Python 3.12 install step was exercised separately and resolved 138 packages from PyPI, including `deepagents-code==0.1.57` — expected, since the install step proves the public graph resolves while the metadata check catches the unpublished sibling change. ## Required status After this lands, a maintainer must add the literal `validate release dependencies against PyPI` job name to the `main` ruleset's required status checks (currently only `✅ CI Success` is required). The job passes on non-release PRs, so requiring it will not block unrelated PRs.
02b2714 to
177d754
Compare
38eb7dc to
5398886
Compare
|
Review and edit the release notes between the content markers below as needed. Keep the version heading intact. To regenerate with steering instead of editing by hand, run 0.0.4 (2026-08-24)Features
When the release changes are finalized, run: Merge only after the curated release-notes check passes. If new relevant entries appear after applying, draft again and then re-apply: To ship without curated notes, add the |
|
release-bot apply |
|
Curated release notes were applied to the package changelog and release PR body. Do not add more |
|
The package release workflow has started: Follow the linked run for build, test, and publish status. |
|
All dispatched package releases published successfully:
|
Caution
Merging this PR will automatically publish to PyPI and create a GitHub release.
For the full release process, see
.github/RELEASING.md.Release notes preview: keep this section in sync with the package
CHANGELOG.md. Publish reads the merged CHANGELOG viarelease.yml, not this PR description — keep them aligned anyway so the PR stays an accurate historical record for reviewers and anyone returning later.0.0.4 (2026-08-24)
Features
End release notes preview.
Note
A community contributors list and a Special thanks section (crediting the users who filed the issues this release's PRs closed) are appended to the GitHub release notes automatically at publish time (see Release Pipeline, step 3).