-
Notifications
You must be signed in to change notification settings - Fork 33
pktvisor Branch Workflow and Release Process
Shannon Weyrick edited this page Nov 15, 2021
·
2 revisions
pktvisor uses a modified Gitflow workflow.
- The source of truth for the version is the root CMakeLists.txt, which is semantic versioning plus an optional suffix.
- There are three special branches:
master
,develop
, andrelease
. Note thatrelease
only exist during release candidate cycle. - For in-repo development (not forks), development happens in ephemeral
feature/*
branches, for examplefeature/FEATURE-NAME
orfeature/ISSUE-ID
, which should be branched fromdevelop
- For extra-repo development (forks), development can happen directly in
develop
branch of the fork - 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 intodevelop
branch. - Pushes to
develop
branch will build and push packages (containers + AppImage) with the-develop
suffix on the version, andlatest-develop
tag on docker. - When a new version is ready for release, a
release
branch is created fromdevelop
(or frommaster
for a maintenance release). Once branched,develop
may bunch its version and continue to receive new features for the next version. - Pushes to
release
branch will build and push packages (containers + AppImage) with the-rc
suffix on the version, andlatest-rc
tag on docker. - Once
release
is fully prepared and tested, a PR is created againstmaster
, and the release is merged. - Once
release
is merged, any changes fromrelease
are merged back intodevelop
and therelease
branch is deleted. - 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 pushlatest
tags to docker hub. - 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.
- Update pktvisor.com/download alias to point to latest release link on GitHub, ensure metrics wildcard exists for major/minor version number.