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).
Versioning policy¶
The schema document at the repo root is versioned with the package:
- Breaking changes to the schema bump the major version.
- Additive-only changes bump the minor version.
See Schema contract for the full policy.
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 (gpmap-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/gpmap package is documented in Schema contract: migration from v1. The headlines:
- New distribution name
gpmap-v2on PyPI. Import path is stillgpmap. encoding_table.genotype_indexis renamed tosite_index; old name still readable with aDeprecationWarning.read_dataframeis renamed tofrom_dataframe.binary_packed(uint8 2D) is exposed alongside the string-formbinary.- JSON files require
schema_version; legacy files read with a warning. - Several v1 bugs fixed (
upper_transform/lower_transform,stats.unbiased_var,simulate.random_mutation_set,MultiPeakMountFujiSimulationretry cap).