Changelog¶
The authoritative changelog is CHANGELOG.md in the repository, auto-generated by python-semantic-release on every merge to main.
How releases work¶
Every commit to main is scanned by python-semantic-release. The commit message determines whether a release fires and how the version bumps:
| Commit prefix | Version bump | Triggers a release? |
|---|---|---|
fix: |
patch | yes |
feat: |
minor | yes |
feat!: or BREAKING CHANGE: footer |
major | yes |
chore:, docs:, style:, refactor:, test:, ci:, build: |
none | no |
A release that fires:
- Bumps the version in
pyproject.toml. - Appends a section to
CHANGELOG.md. - Creates a Git tag and a GitHub Release.
- Builds and uploads wheels to PyPI via OIDC (no PyPI tokens stored).
Migrating between versions¶
For breaking changes, the CHANGELOG entry includes a "Breaking changes" subsection that lists the deltas with before/after examples. Pin your dependency to a major version (gpgraph-v2 >= 1.0, < 2.0) if you want to opt out of automatic upgrades to a future v2.
v1 to v2¶
Migrating from the legacy harmslab/gpgraph package is documented in Graph model: migration from v1. The headlines:
- New distribution name
gpgraph-v2on PyPI. Import path is stillgpgraph. - Construction goes through
GenotypePhenotypeGraph.from_gpm(gpm, ...)(no constructor argument). - Node attribute
fitnessesis renamed tophenotypesto match gpmap-v2. __repr__is silent (v1 rendered a matplotlib figure as a side effect).- Matplotlib is an optional extra (
gpgraph-v2[plot]). gpgraph.neighbor_functionsis renamed togpgraph.neighbors. Pairwiseget_neighborsreturnsnp.ndarray[int64]of shape(E, 2)instead of a list of tuples.- Python 3.11+.