BETA Release config and process #556
Closed
blackfalcon
started this conversation in
General Auro discussions
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
BETA Release config and process
Problem
The current build and release process, designed for environments supporting rapid continuous delivery and deployment, has become a challenge for Auro as it has matured. Instead of providing an advantage, it has turned into a distraction.
Teams have expressed concerns about the frequent release of updates that are incompatible with other component versions and insufficient regression testing. Additionally, there is feedback that rapid updates cause issues for development teams that typically review dependencies only quarterly.
To address these issues, the team created a Release Candidate (RC) process to bundle multiple updates into a single release. However, the constraints of this RC development process necessitated releasing updates before they were fully tested. Furthermore, updates in an RC were unusable until the entire feature set was officially released.
Recommendation
To resolve these issues, we recommend a two-part solution: revive the previous RC development process and implement a new BETA package release process.
Revive and Enhance the RC Process:
Implement a BETA Package Release Process:
beta
branch alongside themain
branch in the repository.beta
branch, the Semantic Release process will generate a new BETA versioned release.BETA releases will be clearly communicated to the organization as preliminary versions that may contain issues. These versions will be labeled as "use at your own risk" until fully tested and deemed ready for official release.
Development teams will be encouraged to use BETA versions with the understanding that there may be issues or compatibility concerns with other Auro components.
This proposed BETA process will include the following updates:
Auro Doc Site page
There is to be a new page added to the doc site for developer education about the BETA process. This document will explain the full process of BETA development, define timelines and testing processes for code going from BETA to Prod release, and provide information on how to install, test, and submit issues for BETA versions of code.
Repo config
Repo configuration for BETA releases requires the following steps:
beta
, from themain
branch. Publish the new branch.main
branch edit the./package.json
file, see Figure 1 below.main
branch edit the./.github/workflows/testPublish.yml
file, see Figure 2 below.main
branch edit the./.github/settings.yml
file, see Figure 3 below.main
branch with abuild
commit and publish code.beta
branch onmain
and--force
publish.Figure 1
Update the
./package.json
release
object so that Semantic Release knows there is a newbeta
branch and that it's allowed to pre-release updated versions.Figure 2
Update the
./.github/workflows/testPublish.yml
file to include thebeta
branch when evaluating releases.Also...
Figure 3
Update the
./.github/settings.yml
file to add branch protection forbeta
.Non SemVer process
While the BETA release process is widely supported, the BETA npm version type, e.g.
1.0.0-beta.4
is not officially supported by SemVer.This means that some automated tools MAY NOT easily support the installation or updating of these BETA releases. To some extent this is to be expected as using BETA releases should be a task that requires manual intervention as an acknowledgment of the scenario.
Updated repos
List of completed repos.
Script for commit:
build: add BETA release support
This commit updates the repo's build scripts to be compliant with
BETA releases described in this discussion:
https://github.com/orgs/AlaskaAirlines/discussions/556
Process
The BETA release process will resemble much of the well-known git flow, but only requires the
beta
branch in place of thedevelop
branch.The BETA process will mean that NO FEATURE branches are ever created from
main
, but always frombeta
.Conversely, bug fixes will require following the git flow hot fix process.
It should be noted that the BETA process SHOULD NOT be used as a way to release an incomplete concept quickly. All merges into BETA should be considered READY FOR PROD at any moment.
Expected outcomes
Implementing the proposed updates is expected to yield several key outcomes:
Improved Stability and Compatibility:
Enhanced Quality Assurance:
Increased Flexibility for Development Teams:
Better Risk Management:
More Efficient Release Management:
Enhanced Collaboration and Feedback Loops:
Reduced Disruption and Increased Productivity:
Clearer Communication and Documentation:
These outcomes collectively aim to enhance the efficiency, stability, and quality of the build and release process, ultimately supporting the organization's goals and development practices.
Beta Was this translation helpful? Give feedback.
All reactions