Skip to content

Commit 230c7c2

Browse files
committed
Update release checklist and document branch management
Document some additional insights from releasing 4.0, as well as update for changed reality (like the wiki being maintained via PRs to the docs repo).
1 parent 3acd7ee commit 230c7c2

File tree

2 files changed

+47
-8
lines changed

2 files changed

+47
-8
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Checklists for branch management of majors
2+
3+
Note: these lists may be incomplete and should be regarded as a starting point to be updated/enhanced each time new insights present themselves.
4+
5+
6+
## Stop support for old major
7+
8+
- [ ] Remove "old major" from workflows in the **oldest major still supported**.
9+
I.e. when support for 3.x will be stopped, `3.x` should be removed from the workflows in the `4.x` branch (not from the 3.x branch).
10+
- [ ] Update target branch in the `.github/dependabot.yml` file in the **oldest major still supported** to be that oldest major.
11+
- [ ] Update target branch (`BASE`) in the `.github/workflows/happy-new-year.yml` file in the **oldest major still supported** to be that oldest major.
12+
13+
14+
## Start branch for next major
15+
16+
- [ ] Add "next major" to workflows in the **oldest major still supported**.
17+
I.e. when a new 5.x branch will be created while 3.x still has minimal support, this change should be made in the `3.x` branch (otherwise in the 4.x branch).
18+
- [ ] Create x.x branch.
19+
20+
In the new branch:
21+
- [ ] Change `Config::VERSION` to next major version number.
22+
- [ ] Change `Config::STABILITY` to `alpha`.
23+
- [ ] Create CHANGELOG-x.x.md file for the new major.
24+
- [ ] Add CHANGELOG for the _major before last_ to the `.gitattributes` `export-ignore`s.
25+
- [ ] Update branch references for the badges in the README.
26+
- [ ] Update installation instructions (`^4.0`) in the README.
27+
- [ ] Update branch reference/instructions in the issue and PR templates.
28+
- [ ] Update branch reference in the `bug_report.md` issue template.
29+
- [ ] Update branch reference in the `CONTRIBUTING` file ("Getting Started" section).
30+
=> For the previous four items, see 1433a86bd4bd3480048d485983e7f16f8e8ec981 as an example.
31+
- [ ] If the next major includes a PHP version drop, that should be the one of the first commits
32+
Example: a7a27b9413106cf4bf10514d6ce93658899ec279
33+
Also update relevant files from 19724954edc7997125040fbf84eddffca99d674f

.github/release-checklist.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
# Release checklist
22

3+
**Important**: If releases for multiple branches are to be tagged, always tag the 3.x release first, 4.x second etc!
4+
35
## Before Release
46

57
### General
68

7-
- [ ] Verify, and if necessary, update the version constraints for dependencies in the `composer.json` - PR #xxx
8-
- [ ] Verify that any new functions have type declarations (ClassName/array/callable) whenever possible.
9-
- [ ] Verify that the license tags all refer to the _new_ organisation and no longer to Squizlabs. (easily overlooked in new files)
9+
- [ ] Verify, and if necessary, update the version constraints for dependencies in the `composer.json`.
10+
- [ ] Verify that any new functions have type declarations whenever possible.
11+
- [ ] Verify that the license tags all refer to the _new_ organisation and no longer to Squizlabs.
1012
- [ ] Verify that `@copyright` tags in new files use `@copyright 20xx PHPCSStandards and contributors`.
1113
- [ ] Check if the GPG key is still valid (not expired).
1214
If it has expired, create a new key before starting the release process.
@@ -27,13 +29,17 @@
2729
- [ ] Verify that any new sniffs which have `public` properties are listed on the Customizable Properties page in the Wiki.
2830
- [ ] Verify that any new CLI options are listed in the Wiki.
2931
- [ ] Verify that any new Reports have a section in the Reports page in the Wiki.
32+
- [ ] Whenever relevant, but definitely for a new major, update the output examples which cannot currently be automatically updated.
33+
Search for "Regenerate the below output snippet by running the following command" comments to find the relevant sections in the wiki.
3034

3135
### Majors only
3236

33-
- [ ] Move old changelog entries to `CHANGELOG_OLD.md` file.
3437
- [ ] Verify that everything deprecated during the previous major was removed.
35-
- [ ] Update the wiki for any references to anything deprecated/removed.
36-
- [ ] Change `Config::STABILITY` from "dev" to "stable" for the branch for the new major. - PR #xxx
38+
- Submit PRs to the documentation repository to update the wiki/website:
39+
- [ ] Remove notes from the wiki which refer to features removed in the _previous_ major.
40+
I.e. When releasing 4.0, notes about features removed/changed in or before 3.0 can be removed.
41+
- [ ] Update sections related to anything deprecated/removed features to mention the deprecation/removal.
42+
- [ ] Change `Config::STABILITY` from "dev" to "stable" for the branch for the new major.
3743

3844
### Prepare changelog
3945

@@ -76,9 +82,9 @@ Please consider [funding the PHP_CodeSniffer project](https://opencollective.com
7682
## Release
7783

7884
- [ ] Merge the changelog PR.
79-
For now, cherrypick the changelog to the 4.0 branch.
8085
- [ ] Make sure all CI builds for the release branch are green.
8186
- [ ] Create a tag for the release & push it.
87+
- [ ] Merge any open PRs in the documentation repository which relate to the current release.
8288
- [ ] Make sure all CI builds are green.
8389
- [ ] Download the PHAR files from the GH Actions test build page.
8490
- [ ] Sign the PHAR files using:
@@ -110,7 +116,7 @@ Please consider [funding the PHP_CodeSniffer project](https://opencollective.com
110116
gh attestation verify phars/phpcbf-x.x.x.phar -o PHPCSStandards
111117
```
112118
- [ ] Commit & push the changes.
113-
- [ ] Verify that the website regenerated correctly and that the phars can be downloaded.
119+
- [ ] Verify that the [website](https://phars.phpcodesniffer.com/) regenerated correctly.
114120
- [ ] Create a release & copy & paste the changelog to it.
115121
- [ ] Upload the unversioned PHAR files + asc files to the release.
116122
- [ ] Announce the release in the discussions forum by checking the checkbox at the bottom of the release page.

0 commit comments

Comments
 (0)