Release Status
The release status of the policy framework is stored in the policy/parent repository in the pf_release_data.csv file. Look at that file under each branch to find details of the current release artifacts for each branch. The table below is a shortcut to that file for each release.
Release | Release Data |
---|---|
master | pf_release_data.csv |
kohn | not branched yet |
jakarta | pf_release_data.csv |
istanbul (security updates only) | pf_release_data.csv |
honolulu (security updates only) | pf_release_data.csv |
previous releases (unsupported) | Policy Framework Project: Old Releases |
Repository Dependencies and Docker Images
The diagram below shows the repositories and Docker images produced by the Policy Framework. The repositories (released as maven artifacts) are shown as rectangles, and the Docker images are shown as ovals. The dependencies between the repositories are shown as are the Docker images produced by each repository.
The Policy Framework Release Process
The Policy Framework release process is complex, time-consuming, and tedious. In the release process, the maven repositories and docker images must be released in the order shown in the diagram above: Blue-->Green-->Pink-->Yellow→Purple. In addition, the references for the repository layering and the parent Docker image file references must be set to release references before staging and back to snapshot references after staging.
Release Scripts
A set of scripts have been developed to make the release process somewhat less tedious. The scripts are located in the policy/parent repo here.
The scripts:
- Operate on a cloned copy of all 13 Policy Framework repositories
- Breaks the release process into a set of phases, which are executed one after another to perform a release
- Can release on the Master branch or any other branch
- Act on the POM files, Docker files, the maven and docker release files, the version.properties files, and the pf_release_data.csv file in the repos, updating the references in those files as required for each phase
The scripts do NOT:
- Fully automate the release process, manual checking and submission of commits is still required
- Capture every possible permutation and corner case of releasing, manual intervention in the process is often required
bumpSnapshots.sh | |
generateCommit.sh | |
getReleaseData.sh | |
mkart.sh | |
mkdock.sh | |
newReleaseSnapshots.sh | |
releasePhase.sh | |
releaseRepo.sh | |
releaseRepoImages.sh | |
updateOomImages.sh | |
updateParentRef.sh | |
updateRefs.sh |