Release php-v8

GitHub release

  1. Make sure current state is ready for release:

    • All relevant PR merged and issues closed.
    • Build passed.
  2. Prepare release notes by creating release draft on github.

  3. Update PHP_V8_VERSION to have desired version and set PHP_V8_REVISION to release in php_v8.h.

  4. Run ./scripts/refresh-package-xml.php -f to update package.xml with proper php-v8 version and update directories and files tree.

  5. Update package.xml <notes> with release notes. Keep eye on special characters to properly escape them, e.g. > should be written as &gt; instead.

  6. Commit all changes with Prepare X.Y.Z release commit message.

  7. Push this commit and make sure it will pass the build.

  8. Tag it with vX.Y.Z tag and push. Create github release from a draft prepared in step above.

  9. Close relevant milestone, if any.

  10. Run ./scripts/ to update php-v8-stubs which are available in a separate read-only repository to match

    packagist and composer expectations.

PECL release

  1. Run pecl package in your build machine (it’s normally vagrant box used for php-v8 development). It should create v8-X.Y.Z.tgz file.
  2. Log in to PECL and upload file from previous step at Verify that release info is accurate and confirm release.

Docker image release

  1. Go into pinepain/dockerfiles php-v8 folder.
  2. Make sure you have valid stable and latest versions in Makefile.
  3. To avoid caching, run make clean-stable to remove any image for the current stable version and make clean-latest to do the same for the current latest version.
  4. Run make stable to build and upload current stable version and make latest to build and upload the latest version.

After all

  1. Update js-sandbox dependencies, if required, to use latest php-v8 and other dependencies, if any.
  2. Update PHP_V8_VERSION to the next version and set PHP_V8_REVISION to dev in php_v8.h.
  3. Commit changes with Back to dev [skip ci] message and push them to master.