diff --git a/admin/RELEASE.md b/admin/RELEASE.md index 776c1f70a941..98089ae8181f 100644 --- a/admin/RELEASE.md +++ b/admin/RELEASE.md @@ -10,11 +10,11 @@ If you release a new minor version. -* Create PR to merge `4.x` into `develop` and merge it -* Rename the current minor version (e.g., `4.4`) in Setting > Branches > +* [ ] Create PR to merge `4.x` into `develop` and merge it +* [ ] Rename the current minor version (e.g., `4.4`) in Setting > Branches > "Branch protection rules" to the next minor version. E.g. `4.4` → `4.5` -* Delete the merged `4.x` branch (This closes all PRs to the branch) -* Do the regular release process. Go to the next "Changelog" section +* [ ] Delete the merged `4.x` branch (This closes all PRs to the branch) +* [ ] Do the regular release process. Go to the next "Changelog" section ## Changelog @@ -48,17 +48,18 @@ the existing content. ## Preparation -* Work off direct clones of the repos so the release branches persist for a time -* Clone both **codeigniter4/CodeIgniter4** and **codeigniter4/userguide** and +Work off direct clones of the repos so the release branches persist for a time. + +* [ ] Clone both **codeigniter4/CodeIgniter4** and **codeigniter4/userguide** and resolve any necessary PRs ```console git clone git@github.com:codeigniter4/CodeIgniter4.git git clone git@github.com:codeigniter4/userguide.git ``` -* Vet the **admin/** folders for any removed hidden files (Action deploy scripts +* [ ] Vet the **admin/** folders for any removed hidden files (Action deploy scripts *do not remove these*) * git diff --name-status origin/master admin/ -* Merge any Security Advisory PRs in private forks +* [ ] Merge any Security Advisory PRs in private forks ## Process @@ -66,29 +67,38 @@ the existing content. > been included with their PR, so this process assumes you will not be > generating much new content. -* Create a new branch `release-4.x.x` -* Update **system/CodeIgniter.php** with the new version number: +* [ ] Create a new branch `release-4.x.x` +* [ ] Update **system/CodeIgniter.php** with the new version number: `const CI_VERSION = '4.x.x';` -* Update **user_guide_src/source/conf.py** with the new `version = '4.x'` (if applicable) +* [ ] Update **user_guide_src/source/conf.py** with the new `version = '4.x'` (if applicable) and `release = '4.x.x'` -* Replace **CHANGELOG.md** with the new version generated above -* Update **user_guide_src/source/changelogs/{version}.rst** +* [ ] Replace **CHANGELOG.md** with the new version generated above +* [ ] Update **user_guide_src/source/changelogs/{version}.rst** * Set the date to format `Release Date: January 31, 2021` * Remove the section titles that have no items -* Update **user_guide_src/source/installation/upgrade_{ver}.rst** +* [ ] Update **user_guide_src/source/installation/upgrade_{ver}.rst** * fill in the "All Changes" section, and add it to **upgrading.rst** * git diff --name-status origin/master -- . ':!system' * Remove the section titles that have no items * [Minor version only] Update the "from" version in the title. E.g., `from 4.3.x` → `from 4.3.8` -* Commit the changes with `Prep for 4.x.x release` and push to origin -* Create a new PR from `release-4.x.x` to `develop`: +* [ ] Commit the changes with `Prep for 4.x.x release` and push to origin +* [ ] Create a new PR from `release-4.x.x` to `develop`: * Title: `Prep for 4.x.x release` - * Decription: `Updates changelog and version references for 4.x.x.` (plus checklist) -* Let all tests run, then review and merge the PR -* Create a new PR from `develop` to `master`: + * Description: + ``` + Updates changelog and version references for 4.x.x. + + Previous version: #xxxx + Release Code: TODO + New Changelog: TODO + ``` + (plus checklist) +* [ ] Let all tests run, then review and merge the PR +* [ ] Create a new PR from `develop` to `master`: * Title: `4.x.x Ready code` * Description: blank -* Merge the PR then create a new Release: +* [ ] Merge the PR and wait for all tests. +* [ ] Create a new Release: * Tag: `v4.x.x` (Create new tag) * Target: `master` * Title: `CodeIgniter 4.x.x` @@ -103,22 +113,23 @@ the existing content. **Full Changelog**: https://github.com/codeigniter4/CodeIgniter4/compare/v4.x.x...v4.x.x ``` -* Watch for the "Deploy Distributable Repos" action to make sure **framework**, + Click the "Generate release notes" button, and get the "New Contributors". +* [ ] Watch for the "Deploy Distributable Repos" action to make sure **framework**, **appstarter**, and **userguide** get updated -* Run the following commands to install and test `appstarter` and verify the new +* [ ] Run the following commands to install and test `appstarter` and verify the new version: ```console composer create-project codeigniter4/appstarter release-test cd release-test composer test && composer info codeigniter4/framework ``` -* Verify that the user guide actions succeeded: +* [ ] Verify that the user guide actions succeeded: * "[Deploy Distributable Repos](https://github.com/codeigniter4/CodeIgniter4/actions/workflows/deploy-distributables.yml)", the main repo * "[Deploy Production](https://github.com/codeigniter4/userguide/actions/workflows/deploy.yml)", UG repo * "[pages-build-deployment](https://github.com/codeigniter4/userguide/actions/workflows/pages/pages-build-deployment)", UG repo * Check if "CodeIgniter4.x.x.epub" is added to UG repo. "CodeIgniter.epub" was created when v4.3.8 was released. -* Fast-forward `develop` branch to catch the merge commit from `master` +* [ ] Fast-forward `develop` branch to catch the merge commit from `master` ```console git fetch origin git checkout develop @@ -126,7 +137,7 @@ the existing content. git merge origin/master git push origin HEAD ``` -* Update the next minor upgrade branch `4.x`: +* [ ] Update the next minor upgrade branch `4.x`: ```console git fetch origin git checkout 4.x @@ -134,22 +145,22 @@ the existing content. git merge origin/develop git push origin HEAD ``` -* [Minor version only] Create the next minor upgrade branch `4.x`: +* [ ] [Minor version only] Create the next minor upgrade branch `4.x`: ```console git fetch origin git switch develop git switch -c 4.x git push origin HEAD ``` -* Publish any Security Advisories that were resolved from private forks +* [ ] Publish any Security Advisories that were resolved from private forks (note: publishing is restricted to administrators): -* Announce the release on the forums and Slack channel +* [ ] Announce the release on the forums and Slack channel (note: this forum is restricted to administrators): * Make a new topic in the "News & Discussion" forums: https://forum.codeigniter.com/forum-2.html * The content is somewhat organic, but should include any major features and changes as well as a link to the User Guide's changelog -* Create a PR for new changelog and upgrade for the next version +* [ ] Create a PR for new changelog and upgrade for the next version * Create **user_guide_src/source/changelogs/{next_version}.rst** and add it to **index.rst** (See **next-changelog-*.rst**) * Create **user_guide_src/source/installation/upgrade_{next_version}.rst** and add it to