chore: update release process (#9421)
Some checks failed
Deploy User Guide (latest) / Deploy to gh-pages (push) Waiting to run
Check File Permissions / Check File Permission (push) Waiting to run
Deploy API Documentation / Deploy to api (push) Has been cancelled
AutoReview / Automatic Code Review (push) Has been cancelled
AutoReview / Check normalized composer.json (push) Has been cancelled
Coding Standards / PHP 8.1 Lint with PHP CS Fixer (push) Has been cancelled
Coding Standards / PHP 8.4 Lint with PHP CS Fixer (push) Has been cancelled
Deptrac / Architectural Inspection (push) Has been cancelled
PHPCPD / phpcpd (push) Has been cancelled
PHPStan / PHP ${{ matrix.php-versions }} Static Analysis (push) Has been cancelled
PHPUnit / Setup PHP Version for Code Coverage (push) Has been cancelled
PHPUnit / Others (8.1) (push) Has been cancelled
PHPUnit / Others (8.2) (push) Has been cancelled
PHPUnit / Others (8.3) (push) Has been cancelled
PHPUnit / Others (8.4) (push) Has been cancelled
PHPUnit / DatabaseLive (MySQLi, 5.7, 8.1) (push) Has been cancelled
PHPUnit / DatabaseLive (MySQLi, 8.0, 8.1) (push) Has been cancelled
PHPUnit / DatabaseLive (MySQLi, 8.0, 8.2) (push) Has been cancelled
PHPUnit / DatabaseLive (MySQLi, 8.0, 8.3) (push) Has been cancelled
PHPUnit / DatabaseLive (MySQLi, 8.0, 8.4) (push) Has been cancelled
PHPUnit / DatabaseLive (OCI8, 8.0, 8.1) (push) Has been cancelled
PHPUnit / DatabaseLive (OCI8, 8.0, 8.2) (push) Has been cancelled
PHPUnit / DatabaseLive (OCI8, 8.0, 8.3) (push) Has been cancelled
PHPUnit / DatabaseLive (OCI8, 8.0, 8.4) (push) Has been cancelled
PHPUnit / DatabaseLive (Postgre, 8.0, 8.1) (push) Has been cancelled
PHPUnit / DatabaseLive (Postgre, 8.0, 8.2) (push) Has been cancelled
PHPUnit / DatabaseLive (Postgre, 8.0, 8.3) (push) Has been cancelled
PHPUnit / DatabaseLive (Postgre, 8.0, 8.4) (push) Has been cancelled
PHPUnit / DatabaseLive (SQLSRV, 8.0, 8.1) (push) Has been cancelled
PHPUnit / DatabaseLive (SQLSRV, 8.0, 8.2) (push) Has been cancelled
PHPUnit / DatabaseLive (SQLSRV, 8.0, 8.3) (push) Has been cancelled
PHPUnit / DatabaseLive (SQLSRV, 8.0, 8.4) (push) Has been cancelled
PHPUnit / DatabaseLive (SQLite3, 8.0, 8.1) (push) Has been cancelled
PHPUnit / DatabaseLive (SQLite3, 8.0, 8.2) (push) Has been cancelled
PHPUnit / DatabaseLive (SQLite3, 8.0, 8.3) (push) Has been cancelled
PHPUnit / DatabaseLive (SQLite3, 8.0, 8.4) (push) Has been cancelled
PHPUnit / SeparateProcess (8.1) (push) Has been cancelled
PHPUnit / SeparateProcess (8.2) (push) Has been cancelled
PHPUnit / SeparateProcess (8.3) (push) Has been cancelled
PHPUnit / SeparateProcess (8.4) (push) Has been cancelled
PHPUnit / CacheLive (8.1) (push) Has been cancelled
PHPUnit / CacheLive (8.2) (push) Has been cancelled
PHPUnit / CacheLive (8.3) (push) Has been cancelled
PHPUnit / CacheLive (8.4) (push) Has been cancelled
PHPUnit / Upload coverage results to Coveralls (push) Has been cancelled
Psalm / Psalm Analysis (push) Has been cancelled
Rector / PHP 8.1 Analyze code (Rector) (push) Has been cancelled
Rector / PHP 8.4 Analyze code (Rector) (push) Has been cancelled
SCSS Compilation / Compilation of SCSS (Dart Sass) (push) Has been cancelled

This commit is contained in:
John Paul E. Balandan, CPA 2025-01-20 03:16:22 +08:00 committed by GitHub
parent 5f37fda626
commit 3a04112ba3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3,6 +3,7 @@
> Documentation guide based on the releases of `4.0.5` and `4.1.0` on January 31, 2021. > Documentation guide based on the releases of `4.0.5` and `4.1.0` on January 31, 2021.
> >
> Updated for `4.5.0` on April 7, 2024. > Updated for `4.5.0` on April 7, 2024.
> Updated for `4.6.0` on January 19, 2025.
> >
> -MGatner, kenjis > -MGatner, kenjis
@ -33,10 +34,12 @@ git push upstream HEAD
If you release a new minor version. If you release a new minor version.
* [ ] Create PR to merge `4.y` into `develop` and merge it * [ ] Create PR to merge `4.y` into `develop`:
* Title: `4.y.0 Merge code`
* Description: blank
* [ ] Rename the current minor version (e.g., `4.5`) in Setting > Branches > * [ ] Rename the current minor version (e.g., `4.5`) in Setting > Branches >
"Branch protection rules" to the next minor version. E.g. `4.5``4.6` "Branch protection rules" to the next minor version (e.g. `4.5``4.6`).
* [ ] Delete the merged `4.y` branch (This closes all PRs to the branch) * [ ] Delete the merged `4.y` branch (this closes all PRs to the branch).
## Preparation ## Preparation
@ -60,7 +63,7 @@ Work off direct clones of the repos so the release branches persist for a time.
## Changelog ## Changelog
When generating the changelog each Pull Request to be included must have one of When generating the changelog, each pull request to be included must have one of
the following [labels](https://github.com/codeigniter4/CodeIgniter4/labels): the following [labels](https://github.com/codeigniter4/CodeIgniter4/labels):
- **bug** ... PRs that fix bugs - **bug** ... PRs that fix bugs
- **enhancement** ... PRs to improve existing functionalities - **enhancement** ... PRs to improve existing functionalities
@ -72,11 +75,11 @@ PRs with breaking changes must have the following additional label:
### Generate Changelog ### Generate Changelog
To auto-generate, navigate to the To auto-generate the changelog, navigate to the
[Releases](https://github.com/codeigniter4/CodeIgniter4/releases) page, [Releases](https://github.com/codeigniter4/CodeIgniter4/releases) page,
click the "Draft a new release" button. click the "Draft a new release" button.
* Tag: `v4.x.x` (Create new tag) * Choose a tag: `v4.x.x` (Create new tag: v4.x.x on publish)
* Target: `develop` * Target: `develop`
Click the "Generate release notes" button. Click the "Generate release notes" button.
@ -85,7 +88,7 @@ Check the resulting content. If there are items in the *Others* section which
should be included in the changelog, add a label to the PR and regenerate should be included in the changelog, add a label to the PR and regenerate
the changelog. the changelog.
Copy the resulting content into **CHANGELOG.md** and adjust the format to match Copy the resulting contents into **CHANGELOG.md** and adjust the format to match
the existing content. the existing content.
## Process ## Process
@ -95,23 +98,27 @@ the existing content.
> been included with their PR, so this process assumes you will not be > been included with their PR, so this process assumes you will not be
> generating much new content. > generating much new content.
* [ ] Merge any Security Advisory PRs in private forks * [ ] Merge any security advisory PRs in private forks.
* [ ] Replace **CHANGELOG.md** with the new version generated above * [ ] Add the current version to **CHANGELOG.md** with the contents generated above.
* [ ] Update **user_guide_src/source/changelogs/v4.x.x.rst** * [ ] Update **user_guide_src/source/changelogs/v4.x.x.rst**
* Remove the section titles that have no items * Remove the section titles that have no items
* [ ] Update **user_guide_src/source/installation/upgrade_4xx.rst** * [ ] Update **user_guide_src/source/installation/upgrade_4xx.rst**
* [ ] fill in the "All Changes" section, and add it to **upgrade_4xx.rst** * [ ] fill in the "All Changes" section using the following command, and add it to **upgrade_4xx.rst**:
* git diff --name-status origin/master -- . ':!system' ':!tests' ':!user_guide_src' ```
* Note: `tests/` is not used for distribution repos. See `admin/starter/tests/` git diff --name-status origin/master -- . ':!.github/' ':!admin/' ':!system/' ':!tests/' \
':!user_guide_src/' ':!utils/' ':!*.json' ':!*.xml' ':!*.dist' ':!rector.php' \
':!phpstan*' ':!psalm*' ':!.php-cs-fixer.*' ':!LICENSE' ':!CHANGELOG.md'
```
* Note: `tests/` is not used for distribution repos. See `admin/starter/tests/`.
* [ ] Remove the section titles that have no items * [ ] 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` * [ ] [Minor version only] Update the "from" version in the title, (e.g., `from 4.3.x``from 4.3.8`).
* [ ] Run `php admin/prepare-release.php 4.x.x` and push to origin * [ ] Run `php admin/prepare-release.php 4.x.x` and push to origin.
* The above command does the following: * The above command does the following:
* Create a new branch `release-4.x.x` * Create a new branch `release-4.x.x`
* Update **system/CodeIgniter.php** with the new version number: * Update **system/CodeIgniter.php** with the new version number:
`const CI_VERSION = '4.x.x';` `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 releasing
and `release = '4.x.x'` the minor version) and `release = '4.x.x'`.
* Update **user_guide_src/source/changelogs/{version}.rst** * Update **user_guide_src/source/changelogs/{version}.rst**
* Set the date to format `Release Date: January 31, 2021` * Set the date to format `Release Date: January 31, 2021`
* Update **phpdoc.dist.xml** with the new `<title>CodeIgniter v4.x API</title>` * Update **phpdoc.dist.xml** with the new `<title>CodeIgniter v4.x API</title>`
@ -126,15 +133,17 @@ the existing content.
Previous version: #xxxx Previous version: #xxxx
Release Code: TODO Release Code: TODO
New Changelog: TODO New Changelog: TODO
```
(plus checklist) (plus checklist)
* [ ] Let all tests run, then review and merge the PR ```
* [ ] Let all tests run, then review and merge the PR.
* [ ] Create a new PR from `develop` to `master`: * [ ] Create a new PR from `develop` to `master`:
* Title: `4.x.x Ready code` * Title: `4.x.x Ready code`
* Description: blank * Description: blank
* [ ] Merge the PR and wait for all tests. * [ ] Merge the PR and wait for all tests.
* [ ] Create a new Release: * [ ] Create a new Release:
* Tag: `v4.x.x` (Create new tag) * Choose a tag: `v4.x.x` (Create new tag: v4.x.x on publish)
* Target: `master` * Target: `master`
* Title: `CodeIgniter 4.x.x` * Title: `CodeIgniter 4.x.x`
* Description: * Description:
@ -167,31 +176,31 @@ the existing content.
created when v4.3.8 was released. 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 ```console
git fetch origin git fetch upstream
git checkout develop git checkout develop
git merge origin/develop git merge upstream/develop
git merge origin/master git merge upstream/master
git push origin HEAD git push upstream HEAD
``` ```
* [ ] Update the next minor version branch `4.y`: * [ ] Update the next minor version branch `4.y`:
```console ```console
git fetch origin git fetch upstream
git checkout 4.y git switch 4.y
git merge origin/4.y git merge upstream/4.y
git merge origin/develop git merge upstream/develop
git push origin HEAD git push upstream HEAD
``` ```
* [ ] [Minor version only] Create the new next minor version branch `4.z`: * [ ] [Minor version only] Create the new next minor version branch `4.z`:
```console ```console
git fetch origin git fetch upstream
git switch develop git switch develop
git switch -c 4.z git switch -c 4.z
git push origin HEAD git push upstream HEAD
``` ```
* [ ] Request CVEs and Publish any Security Advisories that were resolved from private forks * [ ] Request CVEs and publish any security advisories that were resolved from private forks
(note: publishing is restricted to administrators): (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): (note: this forum is restricted to administrators).
* Make a new topic in the "News & Discussion" forums: * Make a new topic in the "News & Discussion" forums:
https://forum.codeigniter.com/forum-2.html https://forum.codeigniter.com/forum-2.html
* The content is somewhat organic, but should include any major features and * The content is somewhat organic, but should include any major features and