Skip to content

Commit c28f00b

Browse files
committed
chore: update release process
1 parent 190f720 commit c28f00b

File tree

1 file changed

+40
-31
lines changed

1 file changed

+40
-31
lines changed

admin/RELEASE.md

Lines changed: 40 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
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

3435
If 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
6467
the 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,
7780
click 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

8285
Click the "Generate release notes" button.
@@ -85,7 +88,7 @@ Check the resulting content. If there are items in the *Others* section which
8588
should be included in the changelog, add a label to the PR and regenerate
8689
the 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
8992
the 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
181+
git merge upstream/develop
182+
git merge upstream/master
174183
git push origin 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
187+
git fetch upstream
188+
git switch 4.y
189+
git merge upstream/4.y
190+
git merge upstream/develop
182191
git push origin 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

Comments
 (0)