33> Documentation guide based on the releases of ` 4.0.5 ` and ` 4.1.0 ` on January 31, 2021.
44>
55> Updated for ` 4.5.0 ` on April 7, 2024.
6+ > Updated for ` 4.6.0 ` on January 19, 2025.
67>
78> -MGatner, kenjis
89
@@ -33,10 +34,12 @@ git push upstream HEAD
3334
3435If you release a new minor version.
3536
36- * [ ] Create PR to merge ` 4.y ` into ` develop ` and merge it
37+ * [ ] Create PR to merge ` 4.y ` into ` develop ` :
38+ * Title: ` 4.y.0 Merge code `
39+ * Description: blank
3740* [ ] Rename the current minor version (e.g., ` 4.5 ` ) in Setting > Branches >
38- "Branch protection rules" to the next minor version. E .g. ` 4.5 ` → ` 4.6 `
39- * [ ] Delete the merged ` 4.y ` branch (This closes all PRs to the branch)
41+ "Branch protection rules" to the next minor version (e .g. ` 4.5 ` → ` 4.6 ` ).
42+ * [ ] Delete the merged ` 4.y ` branch (this closes all PRs to the branch).
4043
4144## Preparation
4245
@@ -60,7 +63,7 @@ Work off direct clones of the repos so the release branches persist for a time.
6063
6164## Changelog
6265
63- When generating the changelog each Pull Request to be included must have one of
66+ When generating the changelog, each pull request to be included must have one of
6467the following [ labels] ( https://github.com/codeigniter4/CodeIgniter4/labels ) :
6568- ** bug** ... PRs that fix bugs
6669- ** enhancement** ... PRs to improve existing functionalities
@@ -72,11 +75,11 @@ PRs with breaking changes must have the following additional label:
7275
7376### Generate Changelog
7477
75- To auto-generate, navigate to the
78+ To auto-generate the changelog , navigate to the
7679[ Releases] ( https://github.com/codeigniter4/CodeIgniter4/releases ) page,
7780click the "Draft a new release" button.
7881
79- * Tag : ` v4.x.x ` (Create new tag)
82+ * Choose a tag : ` v4.x.x ` (Create new tag: v4.x.x on publish )
8083* Target: ` develop `
8184
8285Click the "Generate release notes" button.
@@ -85,7 +88,7 @@ Check the resulting content. If there are items in the *Others* section which
8588should be included in the changelog, add a label to the PR and regenerate
8689the changelog.
8790
88- Copy the resulting content into ** CHANGELOG.md** and adjust the format to match
91+ Copy the resulting contents into ** CHANGELOG.md** and adjust the format to match
8992the existing content.
9093
9194## Process
@@ -95,23 +98,27 @@ the existing content.
9598> been included with their PR, so this process assumes you will not be
9699> generating much new content.
97100
98- * [ ] Merge any Security Advisory PRs in private forks
99- * [ ] Replace ** CHANGELOG.md** with the new version generated above
101+ * [ ] Merge any security advisory PRs in private forks.
102+ * [ ] Add the current version to ** CHANGELOG.md** with the contents generated above.
100103* [ ] Update ** user_guide_src/source/changelogs/v4.x.x.rst**
101104 * Remove the section titles that have no items
102105* [ ] Update ** user_guide_src/source/installation/upgrade_4xx.rst**
103- * [ ] fill in the "All Changes" section, and add it to ** upgrade_4xx.rst**
104- * git diff --name-status origin/master -- . ':!system' ':!tests' ':!user_guide_src'
105- * Note: ` tests/ ` is not used for distribution repos. See ` admin/starter/tests/ `
106+ * [ ] fill in the "All Changes" section using the following command, and add it to ** upgrade_4xx.rst** :
107+ ```
108+ git diff --name-status origin/master -- . ':!.github/' ':!admin/' ':!system/' ':!tests/' \
109+ ':!user_guide_src/' ':!utils/' ':!*.json' ':!*.xml' ':!*.dist' ':!rector.php' \
110+ ':!phpstan*' ':!psalm*' ':!.php-cs-fixer.*' ':!LICENSE' ':!CHANGELOG.md'
111+ ```
112+ * Note: `tests/` is not used for distribution repos. See `admin/starter/tests/`.
106113 * [ ] Remove the section titles that have no items
107- * [ ] [ Minor version only] Update the "from" version in the title. E .g., ` from 4.3.x ` → ` from 4.3.8 `
108- * [ ] Run ` php admin/prepare-release.php 4.x.x ` and push to origin
114+ * [ ] [Minor version only] Update the "from" version in the title, (e .g., `from 4.3.x` → `from 4.3.8`).
115+ * [ ] Run `php admin/prepare-release.php 4.x.x` and push to origin.
109116 * The above command does the following:
110117 * Create a new branch `release-4.x.x`
111118 * Update **system/CodeIgniter.php** with the new version number:
112119 `const CI_VERSION = '4.x.x';`
113- * Update ** user_guide_src/source/conf.py** with the new ` version = '4.x' ` (if applicable)
114- and ` release = '4.x.x' `
120+ * Update **user_guide_src/source/conf.py** with the new `version = '4.x'` (if releasing
121+ the minor version) and `release = '4.x.x'`.
115122 * Update **user_guide_src/source/changelogs/{version}.rst**
116123 * Set the date to format `Release Date: January 31, 2021`
117124 * Update **phpdoc.dist.xml** with the new `<title>CodeIgniter v4.x API</title>`
@@ -126,15 +133,17 @@ the existing content.
126133 Previous version: #xxxx
127134 Release Code: TODO
128135 New Changelog: TODO
129- ```
136+
130137 (plus checklist)
131- * [ ] Let all tests run, then review and merge the PR
138+ ```
139+
140+ * [ ] Let all tests run, then review and merge the PR.
132141* [ ] Create a new PR from `develop` to `master`:
133142 * Title: `4.x.x Ready code`
134143 * Description: blank
135144* [ ] Merge the PR and wait for all tests.
136145* [ ] Create a new Release:
137- * Tag : `v4.x.x` (Create new tag)
146+ * Choose a tag : `v4.x.x` (Create new tag: v4.x.x on publish )
138147 * Target: `master`
139148 * Title: `CodeIgniter 4.x.x`
140149 * Description:
@@ -167,31 +176,31 @@ the existing content.
167176 created when v4.3.8 was released.
168177* [ ] Fast-forward `develop` branch to catch the merge commit from `master`
169178 ```console
170- git fetch origin
179+ git fetch upstream
171180 git checkout develop
172- git merge origin /develop
173- git merge origin /master
174- git push origin HEAD
181+ git merge upstream /develop
182+ git merge upstream /master
183+ git push upstream HEAD
175184 ```
176185* [ ] Update the next minor version branch `4.y`:
177186 ```console
178- git fetch origin
179- git checkout 4.y
180- git merge origin /4.y
181- git merge origin /develop
182- git push origin HEAD
187+ git fetch upstream
188+ git switch 4.y
189+ git merge upstream /4.y
190+ git merge upstream /develop
191+ git push upstream HEAD
183192 ```
184193* [ ] [Minor version only] Create the new next minor version branch `4.z`:
185194 ```console
186- git fetch origin
195+ git fetch upstream
187196 git switch develop
188197 git switch -c 4.z
189- git push origin HEAD
198+ git push upstream HEAD
190199 ```
191- * [ ] Request CVEs and Publish any Security Advisories that were resolved from private forks
192- (note: publishing is restricted to administrators):
200+ * [ ] Request CVEs and publish any security advisories that were resolved from private forks
201+ (note: publishing is restricted to administrators).
193202* [ ] Announce the release on the forums and Slack channel
194- (note: this forum is restricted to administrators):
203+ (note: this forum is restricted to administrators).
195204 * Make a new topic in the "News & Discussion" forums:
196205 https://forum.codeigniter.com/forum-2.html
197206 * The content is somewhat organic, but should include any major features and
0 commit comments