- 
                Notifications
    You must be signed in to change notification settings 
- Fork 34
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 thatreleaseonly exist during release candidate cycle.
- For in-repo development (not forks), development happens in ephemeral feature/*branches, for examplefeature/FEATURE-NAMEorfeature/ISSUE-ID, which should be branched fromdevelop
- For extra-repo development (forks), development can happen directly in developbranch of the fork
- Upon feature completion, a PR is created against the developbranch; CI will integrate, test, and build packages. If CI is green and the PR is approved, the change lands intodevelopbranch.
- Pushes to developbranch will build and push packages (containers + AppImage) with the-developsuffix on the version, andlatest-developtag on docker.
- When a new version is ready for release, a releasebranch is created fromdevelop(or frommasterfor a maintenance release). Once branched,developmay bunch its version and continue to receive new features for the next version.
- Pushes to releasebranch will build and push packages (containers + AppImage) with the-rcsuffix on the version, andlatest-rctag on docker.
- Once releaseis fully prepared and tested, a PR is created againstmaster, and the release is merged.
- Once releaseis merged, any changes fromreleaseare merged back intodevelopand thereleasebranch 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 pushlatesttags 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.