MagicAI separates its public release label from Python package metadata:
Public version: 0.1.1-beta
Git tag: v0.1.1-beta
Package version: 0.1.1b0
Codename: Force of Will
Python package versions follow PEP 440. Public tags use lowercase prerelease identifiers consistently.
-
Confirm the release identity in
magicai/versioning.pyandpyproject.toml. -
Update
README.md,docs/STATUS.md, anddocs/ROADMAP.md. -
Run the focused CI suite:
python scripts/ci_check.py
-
Run the release-specific regression and quality campaigns.
-
Confirm the working tree contains no databases, logs, backups, reports, large downloaded sources, or private files.
-
Build clean source and full packages from tracked files:
python scripts/package_release.py --source python scripts/package_release.py --full
-
Verify the generated SHA-256 files.
-
Open and merge the release pull request from
developtomain. -
Create the exact lowercase tag declared in
magicai/versioning.py. -
Publish release notes that include known limitations and validation performed.
Contains tracked repository files required for development and installation. It excludes downloaded Scryfall bulk data and local runtime artifacts.
Contains the same clean tracked repository snapshot and additionally includes the local Oracle and rulings bulk files when present.
Both packages include a generated INFO.txt and PACKAGE_MANIFEST.json.
Use consistent lowercase identifiers:
v0.1.0-alpha
v0.1.1-beta
v0.2.0-beta
v1.0.0
Do not create variants such as Alpha, Beta, or differently formatted tags for the same release.
Release notes should describe:
- user-visible changes;
- authority or source-boundary changes;
- migration steps;
- tests and campaigns executed;
- known limitations;
- package checksums;
- the release codename.