Set up PyPI publishing - #77
Merged
Merged
Conversation
- pyproject: ship only the ThermoScreening package (the previous exclude-list leaked docs/examples/benchmarks into the wheel as top-level dirs); add project URLs, keywords, and Science/Research + Chemistry classifiers. - .github/workflows/publish.yml: build sdist+wheel and publish on a GitHub Release via PyPI Trusted Publishing (OIDC, no API token). The release tag becomes the version through setuptools_scm.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #77 +/- ##
=======================================
Coverage 96.80% 96.80%
=======================================
Files 25 25
Lines 1629 1629
=======================================
Hits 1577 1577
Misses 52 52
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
galjos
added a commit
that referenced
this pull request
Jul 6, 2026
Follow-up to the PyPI setup (#77): keep the release trigger manual (deliberate cadence + version control) but remove the note-writing toil. - **`.github/release.yml`** — configures GitHub's auto-generated release notes: merged PRs are grouped by label (Features / Fixes / Documentation / Dependencies), unlabelled PRs fall under **Other Changes** (catch-all is last, as GitHub requires), and bot PRs are excluded. So `gh release create vX.Y.Z --generate-notes` produces clean categorised notes. - **`RELEASING.md`** — the one-command release flow (tag a GitHub Release → `publish.yml` builds + publishes to PyPI via Trusted Publishing), `setuptools_scm` versioning (dev versions are PyPI-rejected — a safety net), the trusted-publisher config values, and a pointer to the conda-forge prerequisite. Deliberately **not** adopting semantic-release/release-please — that would impose conventional commits and remove control over version/timing, which isn't the right default for an alpha scientific package.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sets up publishing to PyPI (the release step gated on the now-empty issue tracker).
What changed
pyproject.tomlpackages.findnowincludes onlyThermoScreening*. The previousexclude-list letdocs/,examples/, andbenchmarks/leak into the wheel as top-level namespace packages (they'd pollute users'site-packages). The wheel now contains onlyThermoScreening/.[project.urls](Homepage/Repository/Issues),keywords, andIntended Audience :: Science/Research+Topic :: Scientific/Engineering :: Chemistry+Development Status :: 3 - Alphaclassifiers for a proper PyPI page..github/workflows/publish.yml— builds sdist+wheel and publishes on a GitHub Release via PyPI Trusted Publishing (OIDC) — no API token/secret. The release tag becomes the version viasetuptools_scm.Verified locally:
python -m build→ clean sdist + wheel (onlyThermoScreening/),twine checkPASSED for both.To actually publish (your steps — I can't do these; they need PyPI access)
thermoscreeningproject → add a Trusted Publisher (or a "pending publisher" for the first upload): ownerMolarVerse, repoThermoScreening, workflowpublish.yml.v0.1.0— that triggers the workflow, which builds and publishes.thermoscreeningis available on PyPI. Note:pip install thermoscreeninggets the Python package; the compiled backends still come from conda (environment.yml) — documented in the README/docs.