juzhiyuan commented on a change in pull request #143: URL: https://github.com/apache/apisix-website/pull/143#discussion_r558897344
########## File path: docs/release-guide.md ########## @@ -3,6 +3,43 @@ id: release-guide title: Release Guide --- +## Release Flow + +The release flow of Apache APISIX follows [GitLab flow](https://docs.gitlab.com/ee/topics/gitlab_flow.html), instead of Git flow or Github flow. Furthermore, [Release branches with GitLab flow](https://docs.gitlab.com/ee/topics/gitlab_flow.html#release-branches-with-gitlab-flow) is the preferred way. The chart below will take the release `v2.3` of [apache/apisix-dashboard](https://github.com/apache/apisix-dashboard) as an example to illustrate the details. + + + +The entire flow is comprised of the following four phases. + +### Planning Phase + +This phase will decide if a feature is ready to be released as well as the release time. + +- A new target milestone will be created in Github. (e.g. [`2.3`](https://github.com/apache/apisix-dashboard/milestone/6)) +- A discussion will be started on devel mailing list [[email protected]]([email protected]) for gathering ideas for the next release +- Maintainer team will then mark the issues and pull requests with the target milestone + +### Development Phase + +This phase is for deveoping new features and fix bugs. + +- Maintainer team and contributors will work for the issues targeted to release milestone +- Every single new issue is required to be recognized if should be included in the next release. If yes, the milestone needs to be set for the issue + +### Release Phase + +This phase will be throughout the entire Release Time Window. + +- A new branch (e.g. [`v2.3`](https://github.com/apache/apisix-dashboard/tree/v2.3)) for release is created from `master` branch, which is also considered as the start of Release Time Window +- Set corresponding configurations for the new release branch, please see the chart above for details +- As complying with **Upstream first**, each commit needs to be merged into `master` branch first. Afterwards, it will be backported to the new release branch if the relevant pull request is with `need backport` label attached +- At the end of Release Time Window, the `CHANGELOG` for the new release will be added +- Tag the last commit and release the assets via the following section [GPG Settings](#gpg-settings) + +### Maintenance Phase + +Once a version is released, it will enter the maintenance mode and will only accpet security and critical bug patches backported from `master` branch. A new version will be release soon after significant bugs got fixed, with patch version increment (e.g. `2.3.1`). In this case, all users are recommended to upgrade to the latest release to avoid potential risk to the stability. Review comment:  You could safely use commit suggestion if it's ok :) ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
