Skip to content

pktvisor Branch Workflow and Release Process

Shannon Weyrick edited this page Nov 15, 2021 · 2 revisions

pktvisor uses a modified Gitflow workflow.

  1. The source of truth for the version is the root CMakeLists.txt, which is semantic versioning plus an optional suffix.
  2. There are three special branches: master, develop, and release. Note that release only exist during release candidate cycle.
  3. For in-repo development (not forks), development happens in ephemeral feature/* branches, for example feature/FEATURE-NAME or feature/ISSUE-ID, which should be branched from develop
  4. For extra-repo development (forks), development can happen directly in develop branch of the fork
  5. Upon feature completion, a PR is created against the develop branch; CI will integrate, test, and build packages. If CI is green and the PR is approved, the change lands into develop branch.
  6. Pushes to develop branch will build and push packages (containers + AppImage) with the -develop suffix on the version, and latest-develop tag on docker.
  7. When a new version is ready for release, a release branch is created from develop (or from master for a maintenance release). Once branched, develop may bunch its version and continue to receive new features for the next version.
  8. Pushes to release branch will build and push packages (containers + AppImage) with the -rc suffix on the version, and latest-rc tag on docker.
  9. Once release is fully prepared and tested, a PR is created against master, and the release is merged.
  10. Once release is merged, any changes from release are merged back into develop and the release branch is deleted.
  11. Once in master, the version should be updated to remove any version suffix, and the Build workflow is run manually to create the official artifacts with the final version number. The workflow will also officially push latest tags to docker hub.
  12. Once official artifact(s) are created (esp. AppImage), a new Github Release is manually created with these artifacts, the change log is written, and the Release is published.
  13. Update pktvisor.com/download alias to point to latest release link on GitHub, ensure metrics wildcard exists for major/minor version number.
Clone this wiki locally