-
Notifications
You must be signed in to change notification settings - Fork 4
Description
We need a versioning strategy and release process so that we can generate Python packages that can be referenced by OpenTitan and any other project that wants to make use of the DVSim tool.
Automated Semantic Versioning
Probably the easiest solution is to use something like: https://python-semantic-release.readthedocs.io/en/latest/
This avoids questions of when and who should be responsible for doing a release. Instead, releases would be automatically be generated in CI for every PR merged.
This tool will automatically determine the package version based on the format of the commit messages since the last release. There are different commit parsers that support different commit conventions.
The basic idea is that PRs that merge a set of commits with fix: ... or perf: ... would be a patch release. While if the commit set contained a feat: ... then this would be a minor version bump. For commits that contain an exclamation mark feat!: ... or an explicit footer line BREAKING CHANGE: ...reason, this would denote a major release.