@@ -462,7 +462,8 @@ slightly different steps. We'll call attention where the steps differ.
462
462
463
463
> 💬 **Hint** \
464
464
> 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.
466
467
467
468
2. If a CVE commit needs to be merged to the release, have it committed to
468
469
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.
642
643
643
644
# # Announcing a stable release
644
645
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
646
649
previous release to ` include/releases.inc` .
647
650
648
651
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.
662
665
> for the previous release from `include/version.inc` into
663
666
> `include/releases.inc`.
664
667
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`.
666
669
667
670
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:
669
673
670
674
* Set `version` to the full version number (e.g. ' 8.2.1' )
671
675
* Set `date` to the release date in `j M Y` format (e.g. ' 5 Jan 2021' )
672
676
* 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
674
678
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.
676
680
677
681
```shell
678
682
./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.
685
689
Within these files, it will generate standard messages for the new version.
686
690
You may edit the generated files to expand on the base message, if needed.
687
691
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.
689
701
690
702
```shell
691
703
./bin/news2html ' https://github.com/php/php-src/raw/php-X.Y.Z/NEWS' ' X.Y.Z' ' ChangeLog-X.php'
692
704
```
693
705
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.
695
707
696
708
```shell
697
709
git add -p
@@ -702,7 +714,7 @@ slightly different steps. We'll call attention where the steps differ.
702
714
703
715
See [Announce PHP 8.1.6][] for an example commit.
704
716
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
706
718
information in the `$QA_RELEASES` array in `include/release-qa.php`.
707
719
708
720
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.
722
734
git push upstream master
723
735
```
724
736
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
726
738
synced.**
727
739
728
740
* Make sure the tarballs are available from, e.g.,
@@ -739,10 +751,10 @@ slightly different steps. We'll call attention where the steps differ.
739
751
740
752
Keep in mind it may take up to an hour for the websites to sync.
741
753
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
743
755
included in the release mail.
744
756
745
- 9 . Send *separate* announcement emails to:
757
+ 12 . Send *separate* announcement emails to:
746
758
747
759
* `php-announce@lists.php.net`
748
760
* `php-general@lists.php.net`
@@ -766,7 +778,7 @@ slightly different steps. We'll call attention where the steps differ.
766
778
> want their email client to automatically send the reply to each list, as
767
779
> often occurs.
768
780
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
770
782
the release announcement and link to the news entry on php.net.
771
783
([@official_php](https://twitter.com/official_php))
772
784
@@ -904,7 +916,18 @@ feature development that cannot go into the new version.
904
916
there is only a single section about PHP X.Y.0, instead of individual
905
917
sections for each pre-release.
906
918
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),
908
931
update the ` Expires` field in the < https://www.php.net/.well-known/security.txt>
909
932
file. The ` Expires` field should be set to the expected date of the next X.Y.0
910
933
release (following the one currently being prepared), which is usually the
0 commit comments