Skip to content

Latest commit

 

History

History
46 lines (28 loc) · 2.5 KB

README.md

File metadata and controls

46 lines (28 loc) · 2.5 KB

Building & Versioning

Release Tag Versioning

We follow Go's Module Version Numbering for software releases along with typical Software release life cycles.

For example, v0.0.1-alpha.pre.1 is the tag used for the first milestone merge and v0.0.1-alpha.1 can be used for the first official alpha release.

[WIP] Build Versioning

Automatic development / test / production builds are still a work in progress, but we plan to incorporate the following when we reach that point:

  • +dirty for uncommitted changes
  • -version flag that can be injected or defaults to UNKNOWN
  • branch_name and a shortened commit_hash should be included

For example, X.Y.Z[-<pre_release_tag][+branch_name][+short_hash][+dirty] is the name of a potential build we will release in the future.

Container Images

Our images are hosted on GitHub’s Container Registry (GHCR) and are available at ghcr.io/poktnetwork/pocket-v1. You can find the list of latest images here.

Tags

Code built from the default branch (i.e., main) is tagged as latest.

Code built from commits in Pull Requests, is tagged as pr-<number>, as well as sha-<7 digit sha>. You can optionally build an image from a Pull Request by attaching a push-image label to the pull request to force CI to upload a container image from a non-main branch.

Once releases are managed, they will be tagged with the version number (e.g., v0.0.1-alpha.pre.1).

Extended images with additional tooling

Extended images with additional tooling are built to aid in troubleshoot and debugging. The extended image is formatted as <tag>-dev. For example, latest-dev, or pr-123-dev.

[TODO] Magefile build system

Once the V1 implementation reaches the stage of testable binaries, we are looking to use Mage which is being tracked in pocket/issues/43 that'll inject a version with the -version flag.