Conversation
There was a problem hiding this comment.
🟡 Not ready to approve
The new release workflow currently allows the TestPyPI publish job to run on pull_request events, which risks unintended publish attempts from PRs.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.
Pull request overview
This PR updates QCManyBody’s packaging/release automation and dependency/runtime baselines, including adding a GitHub Actions release workflow to build and publish distributions and aligning docs/CI metadata with the new minimum supported Python.
Changes:
- Add a new GitHub Actions
Releaseworkflow to build distributions, publish to TestPyPI/PyPI, and create a signed GitHub Release. - Bump the minimum supported Python version to 3.10 and update dependency pins from RC/dev labels to stable versions.
- Adjust CI workflow to remove the QCSchema-next matrix job and dev-label conda channels; small warning-call and README badge updates.
File summaries
| File | Description |
|---|---|
| README.md | Updates the Python version badge to 3.10+. |
| qcmanybody/models/v1/generalized_optimization.py | Fixes warnings.warn invocation to use category=FutureWarning. |
| pyproject.toml | Raises requires-python to 3.10 and updates qcelemental/qcengine version constraints. |
| docs/changelog.rst | Adds an unreleased v0.7.2 changelog section referencing recent PRs. |
| .github/workflows/release.yml | Introduces automated build/publish/sign/release workflow for PyPI/TestPyPI and GitHub Releases. |
| .github/workflows/ci.yml | Removes QCSk-next matrix/dev channels and updates CI dependency versions accordingly. |
Review details
- Files reviewed: 6/6 changed files
- Comments generated: 2
- Review effort level: Lite
We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.
There was a problem hiding this comment.
🟡 Not ready to approve
The new release workflow’s version-validation script will fail at runtime because it treats parsed distribution versions as strings but accesses version.local (needs conversion to packaging.version.Version).
Once you've addressed the issues Copilot identified, you can request another Copilot review.
This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.
Review details
Suppressed comments (1)
.github/workflows/release.yml:78
- In the version-validation script,
parse_wheel_filename/parse_sdist_filenamereturn the distribution version as a string. The current code assigns that string toversionand then accessesversion.local, which will raise an AttributeError (and the subsequent comparison totag_versionwill never succeed). Convert the parsed string topackaging.version.Version(with error handling) before checking.localor comparing to the tag.
version = versions.pop()
if version.local is not None:
raise SystemExit(f"Public indexes reject local version {version}")
if os.environ["GITHUB_REF_TYPE"] == "tag":
- Files reviewed: 6/6 changed files
- Comments generated: 0 new
- Review effort level: Lite
We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.
|
Claude's review (Sonnet 5.6) I'll start by looking at the diff between this branch and main to understand what's being added. Reviewed the branch diff against Real issue — the wheel bundles ~1MB of test fixtures (84% of package content) I ran That's driven by [pyproject.toml:59](pyproject.toml:59) ( Copilot's flagged "bug" is a false positive The PR's automated review claims [release.yml:66](.github/workflows/release.yml:66) ( Good patterns worth keeping for the rollout to other repos
One thing to confirm outside the code The PR's CI history shows TestPyPI has published successfully at least once, so that Trusted Publisher/Environment is presumably wired up. No tag has been pushed yet in this branch, so I'd do a dry-run tag (e.g. an Unrelated but bundled, both fine: the |
No description provided.