3
3
> Documentation guide based on the releases of ` 4.0.5 ` and ` 4.1.0 ` on January 31, 2021.
4
4
>
5
5
> Updated for ` 4.5.0 ` on April 7, 2024.
6
+ > Updated for ` 4.6.0 ` on January 19, 2025.
6
7
>
7
8
> -MGatner, kenjis
8
9
@@ -33,10 +34,12 @@ git push upstream HEAD
33
34
34
35
If you release a new minor version.
35
36
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
37
40
* [ ] 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).
40
43
41
44
## Preparation
42
45
@@ -60,7 +63,7 @@ Work off direct clones of the repos so the release branches persist for a time.
60
63
61
64
## Changelog
62
65
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
64
67
the following [ labels] ( https://github.com/codeigniter4/CodeIgniter4/labels ) :
65
68
- ** bug** ... PRs that fix bugs
66
69
- ** enhancement** ... PRs to improve existing functionalities
@@ -72,11 +75,11 @@ PRs with breaking changes must have the following additional label:
72
75
73
76
### Generate Changelog
74
77
75
- To auto-generate, navigate to the
78
+ To auto-generate the changelog , navigate to the
76
79
[ Releases] ( https://github.com/codeigniter4/CodeIgniter4/releases ) page,
77
80
click the "Draft a new release" button.
78
81
79
- * Tag : ` v4.x.x ` (Create new tag)
82
+ * Choose a tag : ` v4.x.x ` (Create new tag: v4.x.x on publish )
80
83
* Target: ` develop `
81
84
82
85
Click the "Generate release notes" button.
@@ -85,7 +88,7 @@ Check the resulting content. If there are items in the *Others* section which
85
88
should be included in the changelog, add a label to the PR and regenerate
86
89
the changelog.
87
90
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
89
92
the existing content.
90
93
91
94
## Process
@@ -95,23 +98,27 @@ the existing content.
95
98
> been included with their PR, so this process assumes you will not be
96
99
> generating much new content.
97
100
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.
100
103
* [ ] Update ** user_guide_src/source/changelogs/v4.x.x.rst**
101
104
* Remove the section titles that have no items
102
105
* [ ] 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/`.
106
113
* [ ] 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.
109
116
* The above command does the following:
110
117
* Create a new branch `release-4.x.x`
111
118
* Update **system/CodeIgniter.php** with the new version number:
112
119
`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'`.
115
122
* Update **user_guide_src/source/changelogs/{version}.rst**
116
123
* Set the date to format `Release Date: January 31, 2021`
117
124
* Update **phpdoc.dist.xml** with the new `<title>CodeIgniter v4.x API</title>`
@@ -126,15 +133,17 @@ the existing content.
126
133
Previous version: #xxxx
127
134
Release Code: TODO
128
135
New Changelog: TODO
129
- ```
136
+
130
137
(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.
132
141
* [ ] Create a new PR from `develop` to `master`:
133
142
* Title: `4.x.x Ready code`
134
143
* Description: blank
135
144
* [ ] Merge the PR and wait for all tests.
136
145
* [ ] 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 )
138
147
* Target: `master`
139
148
* Title: `CodeIgniter 4.x.x`
140
149
* Description:
@@ -167,31 +176,31 @@ the existing content.
167
176
created when v4.3.8 was released.
168
177
* [ ] Fast-forward `develop` branch to catch the merge commit from `master`
169
178
```console
170
- git fetch origin
179
+ git fetch upstream
171
180
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
175
184
```
176
185
* [ ] Update the next minor version branch `4.y`:
177
186
```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
183
192
```
184
193
* [ ] [Minor version only] Create the new next minor version branch `4.z`:
185
194
```console
186
- git fetch origin
195
+ git fetch upstream
187
196
git switch develop
188
197
git switch -c 4.z
189
- git push origin HEAD
198
+ git push upstream HEAD
190
199
```
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).
193
202
* [ ] 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).
195
204
* Make a new topic in the "News & Discussion" forums:
196
205
https://forum.codeigniter.com/forum-2.html
197
206
* The content is somewhat organic, but should include any major features and
0 commit comments