VPP/BuildArtifactRetentionPolicy

From fd.io
< VPP
Jump to: navigation, search

2023-03-06: This is currently a draft proposal.

Background

VPP CI jobs build VPP debian packages for each OS / Architecture variant supported in a given VPP Release Cycle. These packages are uploaded by VPP CI jobs on jenkins.fd.io] to the respective artifact repositories on packagecloud.io/fdio.

VPP Source Code Repository Branch Support

The VPP git repository contains the source code history of all VPP releases. The VPP community supports the current release in progress contained in the branch, master, and the previous 2 releases which are contained on stable/<release> branches (e.g. master (v23.06-rc0), stable/23.02, stable/22.10). VPP CI jobs are deprecated for unsupported release branches, thus once a release is no longer supported, the associated CI jobs are removed from jenkins.fd.io and the ability of recreating old build artifacts or creating any new artifacts for them.

VPP Pre-Release Artifacts

The VPP branch, master, contains the source code for pre-release artifacts produced by 'master' branch CI jobs during the RC0 release phase. VPP pre-release build artifacts are consumed by CSIT CI jobs to verify VPP functionality on a per-patch basis and performance metrics on a periodic trending basis.

The VPP master branch is tagged to identify the packagecloud pre-release repository to which build artifacts are pushed by the CI jobs.

For example, at the beginning of the VPP 23.02 release cycle, the VPP master branch was tagged with v23.02-rc0 and the packagecloud artifact repository, packagecloud.io/fdio/2302, was created by the VPP Release Manager. All VPP 23.02 pre-release artifacts were pushed to packagecloud.io/fdio/2302 throughout the release cycle.

At the RC1 milestone, a stable/<release> branch is created on the VPP repo along with release specific CI jobs that continue to produce VPP pre-release artifacts using the stable/<release> VPP branch to the same packagecloud pre-release repository.

As in the previous example, VPP 23.02 pre-release artifacts built using the VPP branch, stable/2302, were pushed to packagecloud.io/fdio/2302.

The RC1 milestone also marks the beginning of the next release cycle and the VPP Release Manager applies a new rc0 tag to the master branch for the next release.

VPP Release Artifacts

The VPP release artifacts are used to produce more comprehensive test results which are published in a CSIT Release Report for each VPP release.

During the release process, release artifacts are named for the release, then after testing are moved to packagecloud.io/fdio/release. The release artifacts are used by the CSIT project to generate a report providing comprehensive test data / analysis of the VPP release packages. The release packages are also intended to provide newcombers to FD.io a painless means of installing VPP for evaluation.


VPP Build Artifact Retention Policy Statement

VPP build pre-release and release artifacts will only be retained in packagecloud.io/fdio pre-release and release repositories for those releases which are actively supported.

Once a stable release branch becomes unsupported, all of the build artifacts in the packagecloud pre-release artifact repository will be moved to the Packagecloud 'recycle bin' repository, packagecloud.io/fdio/attic, then subsequently deleted during the next post-release clean up process.