-
Notifications
You must be signed in to change notification settings - Fork 0
Releases and versioning
This is a multi package repo, which is not fully supported by go. The guidelines here are meant to guide and organize releases and versioning. We mostly follow the go guidelines with minor changes.
Refers to the version of the root module, the go.mod
at the root of the repo.
There is technically only one package in this repo, the root package github.com/tcodes0/go
Root releases start at unstable major v0 and go up from there, but they should not go into v2.
A new major of the root package makes no sense, since it is only an aggregator for the packages living under src
, and we would need to prefix the module with v2
; and that would apply to all packages.
A root changelog will be maintained detailing the updates in each root version; a package omitted from a given version has not been updated in that version.
Non release commits should be tagged with -pre
, release commits should be semver tagged.
This might help alleviate common mistakes like installing a pseudo-version from the tip of the default branch instead of the latest semver version.
see #5 for context on this decision
Packages are versioned independently and follow standard semver. Packages will document their own versions; there will be a table on each package's documentation that translates a root version to a semver package version. Packages will maintain a changelog that details patches, minors and major changes. Packages will not use tags for their releases, due to lack of support from go and to avoid conflict with root tags, confusion.
- send a PR and update the package's code under
src
; iterate with code-reviewers - bump root version by a patch or minor
- update package version on documentation by a major, minor or patch
- update package documentation relating root version to package version
- If a release is desired, push a new main semver tag, else push a pre-release tag