Tyrannosaurus is licensed under the Apache License, version 2.0. New issues and pull requests are welcome. Feel free to direct a question to the authors by creating an issue with the question tag. Contributors are asked to abide by both the GitHub community guidelines and the Contributor Code of Conduct, version 2.0.
Don’t worry about this too much. Follows Conventional Commits and the Angular commit guidelines, along with Semantic Versioning and Keep a Changelog.
Angular-style commit messages should get mapped to changelog sections and issue labels.
In this table, Breaking refers to the BREAKING CHANGE
prefix in the commit body (2nd section).
Refactor can get mapped differently depending on whether any public API is changed or removed.
Some commits can trigger multiple changelog items (e.g. under both Changed and Removed).
We deviate slightly from semantic versioning by allowing some essentially non-breaking bug fixes to
trigger minor version bumps. This could be, for example, a thrown exception or incorrect return
value a caller could reasonably depend on the incorrect behavior.
Commit prefix | Section | semver | issue label(s) |
---|---|---|---|
Breaking (body) | N/A | major | breaking |
feat: |
Added |
minor | new feature or enhancement |
docs: |
Fixed |
patch | documentation |
fix: (1) |
Fixed |
patch | bug |
fix: (2) |
Fixed |
minor | bug |
refactor: (1) |
Changed |
major | cleanup and/or enhancement |
refactor: (2) |
Removed |
major | cleanup and/or enhancement |
refactor: (3) |
ignored | patch | cleanup |
build: |
Fixed |
patch | infrastructure |
test: |
ignored | patch | tests |
ci: |
ignored | never | infrastructure |
style: |
ignored | never | cleanup |
Please update CHANGELOG.md
and add your name to the contributors in pyproject.toml
so that you’re credited. Run poetry lock
and tyrannosaurus sync
to sync metadata.
Feel free to make a draft pull request and solicit feedback from the authors.
- Bump the version in
tool.poetry.version
inpyproject.toml
, following the rules described below. - Run
tyrannosaurus sync
so that the Poetry lock file is up-to-date and metadata are synced to pyproject.toml. - Create a new release
with both the name and tag set to something like
v1.4.13
(keep the v). - An hour later, check that the publish on release creation workflow passes and that the PyPi, Docker Hub, and GitHub Package versions are updated as shown in the shields on the readme.
- Check for a pull request from regro-cf-autotick-bot on the
feedstock.
If you have not changed the dependencies or version ranges, go ahead and merge it.
Otherwise, update the recipe
with those changes under
run:
, also updating{% set version
andsha256
with the changes from regro-cf-autotick-bot. You can alternatively re-runtyrannosaurus recipe
to generate a new recipe and copy it to the feedstock. - Twenty minutes later, verify that the Conda-Forge shield is updated.
Versioning is a subset of Semantic Versioning.
Git tags and GitHub releases use this notation, prefixed with v
(e.g. v0.1.1
).
- Stable releases MUST use:
major "." minor "." patch ["+" platform]
. - Pre-alpha releases MUST use:
major "." minor "." patch "-" build "+" [platform "."]
, wherebuild
increments per tag starting at 0. - Alpha, beta, and RC releases, if used, increment per tag starting at 1 (e.g.
alpha1
). Alpha/beta/RC MUST NOT be used out of order (e.g. NOTalpha1
,beta1
,alpha2
). If major version > 0, releases lacking a build tag SHOULD be preceded by at least one alpha, beta, or RC release. - If major version = 0, unstable releases MAY include a build tag.
In EBNF:
version = major , "." , minor , "." , patch , ["-" , build] , ["+" , platform] ;
major = number ;
minor = number ;
patch = number ;
build = number | (("alpha" | "beta" | "rc") , positive) ;
platform = os | arch | (os , "." , arch) ;
os = tag ;
arch = tag ;
-- where (with regex):
tag = [a-z]+ [a-z0-9]+
positive = [1-9] [0-9]+
number = [0-9]+
Illustration – example release history:
0.1.0
0.1.1
0.2.0-0 +1ca8da40
0.2.0-1 +f1c045ae
0.2.0
1.0.0-0 +10f011ca
0.2.1
1.0.0-rc1+aa40c1cf
1.0.0 +win11.1ca8da40