Skip to content

Update release process #18342

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Apr 24, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 21 additions & 36 deletions docs/release-process.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ releases.
> When you are unsure about anything, ask a previous RM before proceeding.
> Ideally, make sure a previous RM is available to answer questions during
> the first few releases of your version. For the steps related to the
> `web-php`, `web-qa`, and `web-php-distributions` repositories, try to have
> `web-php` and `web-php-distributions` repositories, try to have
> someone from the webmaster team on hand.

5. Verify the tags to be extra sure everything was tagged properly.
Expand Down Expand Up @@ -325,7 +325,7 @@ slightly different steps. We'll call attention where the steps differ.
downloads.php.net.

```shell
scp php-X.Y.ZRCn.tar.* downloads.php.net:~/public_html/
scp php-X.Y.ZRCn.tar.* downloads.internal.php.net:~/public_html/
```

> 💬 **Hint** \
Expand Down Expand Up @@ -359,11 +359,10 @@ slightly different steps. We'll call attention where the steps differ.

## Announcing a non-stable release (alpha/beta/RC)

1. Switch to your local clone of the `web-qa` repository and update the
1. Switch to your local clone of the `web-php` repository and update the
information in the `$QA_RELEASES` array in `include/release-qa.php`.

Follow the documentation in the file for editing the QA release information.
See also [Announce 8.1.0RC3][] and [8.1.6RC1][] for examples.

Add, commit, and push your changes, when finished.

Expand Down Expand Up @@ -716,39 +715,28 @@ slightly different steps. We'll call attention where the steps differ.
```shell
./bin/news2html 'https://github.com/php/php-src/raw/php-X.Y.Z/NEWS' 'X.Y.Z' 'ChangeLog-X.php'
```

9. Review all the changes in `web-php`, commit, and push them.

```shell
git add -p
git add archive/entries/*.xml releases/*.php
git commit --gpg-sign=YOURKEYID -m "Announce PHP X.Y.Z"
git push upstream master
```

See [Announce PHP 8.1.6][] for an example commit.

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`.
8. Update the information in the `$QA_RELEASES` array in `include/release-qa.php`.

The array probably contains information about the RC released two weeks ago
in preparation for the current release. Since the current release is now GA,
it's time to remove the RC build from the QA website.

It is sufficient to set the `number` property for the release to `0` to
stop displaying the RC build on the QA website. You may also remove the
sha256 hashes for the RC tarballs, but it's not necessary. For an example,
see [PHP 8.1.6 released][].
sha256 hashes for the RC tarballs, but it's not necessary.

Add, commit, and push your changes, when finished.
9. Review all the changes in `web-php`, commit, and push them.

```shell
git add -p
git commit --gpg-sign=YOURKEYID -m "PHP X.Y.Z released"
git add archive/entries/*.xml releases/*.php
git commit --gpg-sign=YOURKEYID -m "Announce PHP X.Y.Z"
git push upstream master
```

11. 🚨 **Before sending announcement emails, check to make sure the websites have
See [Announce PHP 8.1.6][] for an example commit.

10. 🚨 **Before sending announcement emails, check to make sure the websites have
synced.**

* Make sure the tarballs are available from, e.g.,
Expand All @@ -760,8 +748,8 @@ slightly different steps. We'll call attention where the steps differ.
e.g., https://www.php.net/ChangeLog-8.php
* Is there a release page for the new version?
e.g., `https://www.php.net/releases/X_Y_Z.php`
* Does the RC for this version still appear on the QA home page?
https://qa.php.net
* Does the RC for this version still appear on the Release Candidate Builds page?
https://www.php.net/release-candidates.php

Keep in mind it may take up to an hour for the websites to sync.

Expand Down Expand Up @@ -986,21 +974,22 @@ volunteers to begin the selection process for the next release managers.

## New release manager checklist

1. Request membership to the
1. Fill out [the form](https://www.php.net/git-php.php)
to get a PHP account (if you don't already have one).

2. Request membership to the
[release managers group](https://github.com/orgs/php/teams/release-managers) on GitHub.

2. Subscribe to the [email protected] mailing list by emailing
3. Subscribe to the [email protected] mailing list by emailing
[email protected]

3. Email [email protected] to get setup for access to downloads.php.net, to be
4. Email [email protected] to get setup for access to downloads.php.net, to be
added to the [email protected] distribution list, and to be added to
the moderators for [email protected] so you are able to moderate
your release announcements.

Provide the following information in a single email:

- Preferred Unix username (will also become part of location to download RCs,
such as `https://downloads.php.net/~derick/`).
- An SSH public key, preferably a new unique one for PHP systems and
projects.
- Read [Machine Access](https://wiki.php.net/systems#machine_access) to set
Expand All @@ -1021,7 +1010,7 @@ volunteers to begin the selection process for the next release managers.
> "[Send emails from a different address or alias][]."


4. Create a [GPG key][] for your @php.net address.
5. Create a [GPG key][] for your @php.net address.

> 💡 **Tip** \
> If you're new to GPG, follow GitHub's instructions for
Expand Down Expand Up @@ -1086,11 +1075,10 @@ volunteers to begin the selection process for the next release managers.
git push
```

5. Make sure you have the following repositories cloned locally:
6. Make sure you have the following repositories cloned locally:

* https://github.com/php/php-src
* https://github.com/php/web-php
* https://github.com/php/web-qa
* https://github.com/php/web-php-distributions


Expand All @@ -1105,13 +1093,10 @@ volunteers to begin the selection process for the next release managers.
[Update NEWS for PHP 8.2.0RC6]: https://github.com/php/php-src/commit/4ccc414961a70200d638ca281a35f893226d74e2
[PHP 8.3 is now for PHP 8.3.21-dev]: https://github.com/php/php-src/commit/b57f425cfe20a11003253427424cc0517483550b
[GitHub command line tool]: https://cli.github.com
[Announce 8.1.0RC3]: https://github.com/php/web-qa/commit/f264b711fd3827803b79bbb342959eae57ea502b
[8.1.6RC1]: https://github.com/php/web-qa/commit/e6d61ad7a9d8be0b1cd159af29f3b9cbdde33384
[merged upwards as usual]: https://wiki.php.net/vcs/gitworkflow
[Update versions for PHP 8.1.7]: https://github.com/php/php-src/commit/d35e577a1bd0b35b9386cea97cddc73fd98eed6d
[Update NEWS for PHP 8.1.7]: https://github.com/php/php-src/commit/b241f07f52ca9f87bf52be81817f475e6e727439
[Announce PHP 8.1.6]: https://github.com/php/web-php/commit/9f796a96c65f07e45845ec248933bfb0010b94a9
[PHP 8.1.6 released]: https://github.com/php/web-qa/commit/bff725f8373cf6fd9d97ba62a8517b19721a4c2e
[feature freeze]: https://en.wikipedia.org/wiki/Freeze_(software_engineering)
[Prepare for PHP 8.2]: https://github.com/php/php-src/commit/1c33ddb5e5598c5385c4c965992c6e031fd00dd6
[Prepare for PHP 8.2 (bis)]: https://github.com/php/php-src/commit/a93e12f8a6dfc23e334339317c97aa35356db821
Expand Down