Skip to content

Commit 0c29d5e

Browse files
authoredDec 1, 2023
Update release-process docs with info about first version release (#12765)
This is some additional info that might help to future RM's - those are the bits that are stumbled and felt they need to be clarified when releasing PHP-8.3.0
1 parent dc1fbe4 commit 0c29d5e

File tree

1 file changed

+37
-14
lines changed

1 file changed

+37
-14
lines changed
 

‎docs/release-process.md

+37-14
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,8 @@ slightly different steps. We'll call attention where the steps differ.
462462
463463
> 💬 **Hint** \
464464
> You should have created this branch when packaging the non-stable release
465-
> candidate for this version.
465+
> candidate for this version. If it is for a PHP-X.Y.0 version, then just
466+
> create and push this branch.
466467
467468
2. If a CVE commit needs to be merged to the release, have it committed to
468469
the base branches and [merged upwards as usual][] (e.g. commit the CVE fix
@@ -642,7 +643,9 @@ slightly different steps. We'll call attention where the steps differ.
642643
643644
## Announcing a stable release
644645
645-
1. Switch to your local clone of `web-php` and add the information for the
646+
1. This steps applies only for releases after PHP-X.Y.0.
647+
648+
Switch to your local clone of `web-php` and add the information for the
646649
previous release to `include/releases.inc`.
647650
648651
For example, if you are preparing to announce version 8.2.2, then the
@@ -662,17 +665,18 @@ slightly different steps. We'll call attention where the steps differ.
662665
> for the previous release from `include/version.inc` into
663666
> `include/releases.inc`.
664667
665-
2. Update the version information for the new release in `include/version.inc`.
668+
3. Update the version information for the new release in `include/version.inc`.
666669
667670
Find the part of the `$data` array that is related to your version (e.g.,
668-
`$data['8.2']` for 8.2.x releases), and make the following edits:
671+
`$data['8.2']` for 8.2.x releases) or create a new section if releasing
672+
PHP-X.Y.0 version, and make the following edits / additions:
669673
670674
* Set `version` to the full version number (e.g. '8.2.1')
671675
* Set `date` to the release date in `j M Y` format (e.g. '5 Jan 2021')
672676
* Update the `tags` array to include `'security'` if this is a security release
673-
* Update the `sha256` array with the hashes for each of the release tarballs
677+
* Set the `sha256` array with the hashes for each of the release tarballs
674678
675-
3. Create the release file and news entry for the new version.
679+
5. Create the release file and news entry for the new version.
676680
677681
```shell
678682
./bin/createReleaseEntry -v X.Y.Z -r # --security for security releases
@@ -685,13 +689,21 @@ slightly different steps. We'll call attention where the steps differ.
685689
Within these files, it will generate standard messages for the new version.
686690
You may edit the generated files to expand on the base message, if needed.
687691
688-
4. Update the ChangeLog file for the given major version (e.g., `ChangeLog-8.php`).
692+
The edits are necessary for PHP-X.Y.0 version where the format is different.
693+
See for example [PHP-8.2 announcement](https://github.com/php/web-php/commit/c966868202caafa880213055f4e3e97c0483119b)
694+
695+
7. Update the ChangeLog file for the given major version (e.g., `ChangeLog-8.php`).
696+
697+
If PHP-X.Y.0 is released, modify the `ChangeLog-X.php` (where `X` is the major
698+
version) file manually first. The `$MINOR_VERSIONS` field needs to be extended
699+
with the new version and initial anchor (e.g. `<a id="PHP_8_4"></a>` if added
700+
for PHP 8.4) added above the first anchor of the previous version.
689701
690702
```shell
691703
./bin/news2html 'https://github.com/php/php-src/raw/php-X.Y.Z/NEWS' 'X.Y.Z' 'ChangeLog-X.php'
692704
```
693705
694-
5. Review all the changes in `web-php`, commit, and push them.
706+
9. Review all the changes in `web-php`, commit, and push them.
695707
696708
```shell
697709
git add -p
@@ -702,7 +714,7 @@ slightly different steps. We'll call attention where the steps differ.
702714
703715
See [Announce PHP 8.1.6][] for an example commit.
704716
705-
6. Switch to your local clone of the `web-qa` repository and update the
717+
10. Switch to your local clone of the `web-qa` repository and update the
706718
information in the `$QA_RELEASES` array in `include/release-qa.php`.
707719
708720
The array probably contains information about the RC released two weeks ago
@@ -722,7 +734,7 @@ slightly different steps. We'll call attention where the steps differ.
722734
git push upstream master
723735
```
724736
725-
7. 🚨 **Before sending announcement emails, check to make sure the websites have
737+
11. 🚨 **Before sending announcement emails, check to make sure the websites have
726738
synced.**
727739
728740
* Make sure the tarballs are available from, e.g.,
@@ -739,10 +751,10 @@ slightly different steps. We'll call attention where the steps differ.
739751
740752
Keep in mind it may take up to an hour for the websites to sync.
741753
742-
8. Please note down the sha256 and the PGP signature (.asc). These *must* be
754+
11. Please note down the sha256 and the PGP signature (.asc). These *must* be
743755
included in the release mail.
744756
745-
9. Send *separate* announcement emails to:
757+
12. Send *separate* announcement emails to:
746758
747759
* `php-announce@lists.php.net`
748760
* `php-general@lists.php.net`
@@ -766,7 +778,7 @@ slightly different steps. We'll call attention where the steps differ.
766778
> want their email client to automatically send the reply to each list, as
767779
> often occurs.
768780
769-
10. Coordinate with the social media team (i.e., Derick) to post a tweet with
781+
11. Coordinate with the social media team (i.e., Derick) to post a tweet with
770782
the release announcement and link to the news entry on php.net.
771783
([@official_php](https://twitter.com/official_php))
772784
@@ -904,7 +916,18 @@ feature development that cannot go into the new version.
904916
there is only a single section about PHP X.Y.0, instead of individual
905917
sections for each pre-release.
906918
907-
4. On the announcement day for the initial stable version (or shortly before),
919+
All the changes that are already present in the previous version NEWS should be
920+
removed. It means all bug fixes that went to the previous version as well should
921+
have their entries removed. It is possible to use `grep` to compare the changes.
922+
For exampe if `82/NEWS` is NEWS for PHP 8.2 and `83/NEWS` is NEWS file for PHP 8.3,
923+
then following command will show changes present in both files:
924+
925+
```sh
926+
grep -Fxf 82/NEWS 83/NEWS
927+
```
928+
929+
930+
5. On the announcement day for the initial stable version (or shortly before),
908931
update the `Expires` field in the <https://www.php.net/.well-known/security.txt>
909932
file. The `Expires` field should be set to the expected date of the next X.Y.0
910933
release (following the one currently being prepared), which is usually the

0 commit comments

Comments
 (0)
Failed to load comments.