mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Update release-process docs with info about first version release
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
This commit is contained in:
parent
a80b6d7b99
commit
d17dea8556
1 changed files with 37 additions and 14 deletions
|
@ -462,7 +462,8 @@ slightly different steps. We'll call attention where the steps differ.
|
||||||
|
|
||||||
> 💬 **Hint** \
|
> 💬 **Hint** \
|
||||||
> You should have created this branch when packaging the non-stable release
|
> You should have created this branch when packaging the non-stable release
|
||||||
> candidate for this version.
|
> candidate for this version. If it is for a PHP-X.Y.0 version, then just
|
||||||
|
> create and push this branch.
|
||||||
|
|
||||||
2. If a CVE commit needs to be merged to the release, have it committed to
|
2. If a CVE commit needs to be merged to the release, have it committed to
|
||||||
the base branches and [merged upwards as usual][] (e.g. commit the CVE fix
|
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.
|
||||||
|
|
||||||
## Announcing a stable release
|
## Announcing a stable release
|
||||||
|
|
||||||
1. Switch to your local clone of `web-php` and add the information for the
|
1. This steps applies only for releases after PHP-X.Y.0.
|
||||||
|
|
||||||
|
Switch to your local clone of `web-php` and add the information for the
|
||||||
previous release to `include/releases.inc`.
|
previous release to `include/releases.inc`.
|
||||||
|
|
||||||
For example, if you are preparing to announce version 8.2.2, then the
|
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.
|
||||||
> for the previous release from `include/version.inc` into
|
> for the previous release from `include/version.inc` into
|
||||||
> `include/releases.inc`.
|
> `include/releases.inc`.
|
||||||
|
|
||||||
2. Update the version information for the new release in `include/version.inc`.
|
3. Update the version information for the new release in `include/version.inc`.
|
||||||
|
|
||||||
Find the part of the `$data` array that is related to your version (e.g.,
|
Find the part of the `$data` array that is related to your version (e.g.,
|
||||||
`$data['8.2']` for 8.2.x releases), and make the following edits:
|
`$data['8.2']` for 8.2.x releases) or create a new section if releasing
|
||||||
|
PHP-X.Y.0 version, and make the following edits / additions:
|
||||||
|
|
||||||
* Set `version` to the full version number (e.g. '8.2.1')
|
* Set `version` to the full version number (e.g. '8.2.1')
|
||||||
* Set `date` to the release date in `j M Y` format (e.g. '5 Jan 2021')
|
* Set `date` to the release date in `j M Y` format (e.g. '5 Jan 2021')
|
||||||
* Update the `tags` array to include `'security'` if this is a security release
|
* Update the `tags` array to include `'security'` if this is a security release
|
||||||
* Update the `sha256` array with the hashes for each of the release tarballs
|
* Set the `sha256` array with the hashes for each of the release tarballs
|
||||||
|
|
||||||
3. Create the release file and news entry for the new version.
|
5. Create the release file and news entry for the new version.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
./bin/createReleaseEntry -v X.Y.Z -r # --security for security releases
|
./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.
|
||||||
Within these files, it will generate standard messages for the new version.
|
Within these files, it will generate standard messages for the new version.
|
||||||
You may edit the generated files to expand on the base message, if needed.
|
You may edit the generated files to expand on the base message, if needed.
|
||||||
|
|
||||||
4. Update the ChangeLog file for the given major version (e.g., `ChangeLog-8.php`).
|
The edits are necessary for PHP-X.Y.0 version where the format is different.
|
||||||
|
See for example [PHP-8.2 announcement](https://github.com/php/web-php/commit/c966868202caafa880213055f4e3e97c0483119b)
|
||||||
|
|
||||||
|
7. Update the ChangeLog file for the given major version (e.g., `ChangeLog-8.php`).
|
||||||
|
|
||||||
|
If PHP-X.Y.0 is released, modify the `ChangeLog-X.php` (where `X` is the major
|
||||||
|
version) file manually first. The `$MINOR_VERSIONS` field needs to be extended
|
||||||
|
with the new version and initial anchor (e.g. `<a id="PHP_8_4"></a>` if added
|
||||||
|
for PHP 8.4) added above the first anchor of the previous version.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
./bin/news2html 'https://github.com/php/php-src/raw/php-X.Y.Z/NEWS' 'X.Y.Z' 'ChangeLog-X.php'
|
./bin/news2html 'https://github.com/php/php-src/raw/php-X.Y.Z/NEWS' 'X.Y.Z' 'ChangeLog-X.php'
|
||||||
```
|
```
|
||||||
|
|
||||||
5. Review all the changes in `web-php`, commit, and push them.
|
9. Review all the changes in `web-php`, commit, and push them.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
git add -p
|
git add -p
|
||||||
|
@ -702,7 +714,7 @@ slightly different steps. We'll call attention where the steps differ.
|
||||||
|
|
||||||
See [Announce PHP 8.1.6][] for an example commit.
|
See [Announce PHP 8.1.6][] for an example commit.
|
||||||
|
|
||||||
6. Switch to your local clone of the `web-qa` repository and update the
|
10. Switch to your local clone of the `web-qa` repository and update the
|
||||||
information in the `$QA_RELEASES` array in `include/release-qa.php`.
|
information in the `$QA_RELEASES` array in `include/release-qa.php`.
|
||||||
|
|
||||||
The array probably contains information about the RC released two weeks ago
|
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.
|
||||||
git push upstream master
|
git push upstream master
|
||||||
```
|
```
|
||||||
|
|
||||||
7. 🚨 **Before sending announcement emails, check to make sure the websites have
|
11. 🚨 **Before sending announcement emails, check to make sure the websites have
|
||||||
synced.**
|
synced.**
|
||||||
|
|
||||||
* Make sure the tarballs are available from, e.g.,
|
* Make sure the tarballs are available from, e.g.,
|
||||||
|
@ -739,10 +751,10 @@ slightly different steps. We'll call attention where the steps differ.
|
||||||
|
|
||||||
Keep in mind it may take up to an hour for the websites to sync.
|
Keep in mind it may take up to an hour for the websites to sync.
|
||||||
|
|
||||||
8. Please note down the sha256 and the PGP signature (.asc). These *must* be
|
11. Please note down the sha256 and the PGP signature (.asc). These *must* be
|
||||||
included in the release mail.
|
included in the release mail.
|
||||||
|
|
||||||
9. Send *separate* announcement emails to:
|
12. Send *separate* announcement emails to:
|
||||||
|
|
||||||
* `php-announce@lists.php.net`
|
* `php-announce@lists.php.net`
|
||||||
* `php-general@lists.php.net`
|
* `php-general@lists.php.net`
|
||||||
|
@ -766,7 +778,7 @@ slightly different steps. We'll call attention where the steps differ.
|
||||||
> want their email client to automatically send the reply to each list, as
|
> want their email client to automatically send the reply to each list, as
|
||||||
> often occurs.
|
> often occurs.
|
||||||
|
|
||||||
10. Coordinate with the social media team (i.e., Derick) to post a tweet with
|
11. Coordinate with the social media team (i.e., Derick) to post a tweet with
|
||||||
the release announcement and link to the news entry on php.net.
|
the release announcement and link to the news entry on php.net.
|
||||||
([@official_php](https://twitter.com/official_php))
|
([@official_php](https://twitter.com/official_php))
|
||||||
|
|
||||||
|
@ -904,7 +916,18 @@ feature development that cannot go into the new version.
|
||||||
there is only a single section about PHP X.Y.0, instead of individual
|
there is only a single section about PHP X.Y.0, instead of individual
|
||||||
sections for each pre-release.
|
sections for each pre-release.
|
||||||
|
|
||||||
4. On the announcement day for the initial stable version (or shortly before),
|
All the changes that are already present in the previous version NEWS should be
|
||||||
|
removed. It means all bug fixes that went to the previous version as well should
|
||||||
|
have their entries removed. It is possible to use `grep` to compare the changes.
|
||||||
|
For exampe if `82/NEWS` is NEWS for PHP 8.2 and `83/NEWS` is NEWS file for PHP 8.3,
|
||||||
|
then following command will show changes present in both files:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
grep -Fxf 82/NEWS 83/NEWS
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
5. On the announcement day for the initial stable version (or shortly before),
|
||||||
update the `Expires` field in the <https://www.php.net/.well-known/security.txt>
|
update the `Expires` field in the <https://www.php.net/.well-known/security.txt>
|
||||||
file. The `Expires` field should be set to the expected date of the next X.Y.0
|
file. The `Expires` field should be set to the expected date of the next X.Y.0
|
||||||
release (following the one currently being prepared), which is usually the
|
release (following the one currently being prepared), which is usually the
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue