Skip to content

Experimental native CLI package for PR #3837 – macOS – 9a437319

Pre-release
Pre-release

Choose a tag to compare

@adamziel adamziel released this 18 Jul 22:21
Immutable release. Only release title and notes can be modified.

Warning

This is a one-off experimental build from draft PR #3837. It is not an npm
release, is not marked latest, and is not intended for production use.

Source commit: 9a437319d6c5ac47d92cb8f0f265e6ed1b36914b

The private npm tarball contains the portable PHP 7.4–8.5 WASIp2 components,
SQLite/WAL integration, JavaScript API, declarations, and CLI launcher. The
native macOS hosts remain separate release assets. The packaged manifest picks
the correct Intel or Apple Silicon host and verifies both its compressed and
executable SHA-256 digest before running it.

Assets

  • wp-playground-cli-native-3.1.45.tgz
  • wp-playground-native-darwin-x64.gz
  • wp-playground-native-darwin-arm64.gz
  • native-host-manifest.json
  • prerelease-provenance.json
  • SHA256SUMS

Both hosts and the exact final tarball were installed and exercised with PHP
8.2 on fresh macOS Intel and Apple Silicon GitHub runners before publication.

Try the CLI directly

TAG=native-cli-pr-3837-9a437319-macos-v1
BASE="https://github.com/WordPress/wordpress-playground/releases/download/$TAG"

mkdir -p /tmp/wp-playground-cli-native-test
cd /tmp/wp-playground-cli-native-test
npm init -y
npm install "$BASE/wp-playground-cli-native-3.1.45.tgz"

export WP_PLAYGROUND_NATIVE_HOST_BASE_URL="$BASE/"
export WP_PLAYGROUND_NATIVE_CACHE_DIR="$HOME/.wordpress-playground/native-pr3837-9a437319"
npx wp-playground-cli runtime install
npx wp-playground-cli start --php=8.2 --skip-browser

The trailing slash in WP_PLAYGROUND_NATIVE_HOST_BASE_URL is required.

Try it in a local Studio checkout

Start from a Studio checkout whose dependencies are already installed, then
replace only the local @wp-playground/cli installation. This changes neither
Studio's package manifest nor its lockfile:

TAG=native-cli-pr-3837-9a437319-macos-v1
BASE="https://github.com/WordPress/wordpress-playground/releases/download/$TAG"

npm install --ignore-scripts --no-save --package-lock=false \
  "@wp-playground/cli@$BASE/wp-playground-cli-native-3.1.45.tgz"

export WP_PLAYGROUND_NATIVE_HOST_BASE_URL="$BASE/"
export WP_PLAYGROUND_NATIVE_CACHE_DIR="$HOME/.wordpress-playground/native-pr3837-9a437319"
npm run cli:build

Run the resulting Studio CLI or your custom Studio build normally while those
two environment variables remain exported.

Verify downloads

curl -fL -O "$BASE/SHA256SUMS"
curl -fL -O "$BASE/wp-playground-cli-native-3.1.45.tgz"
curl -fL -O "$BASE/wp-playground-native-darwin-x64.gz"
curl -fL -O "$BASE/wp-playground-native-darwin-arm64.gz"
curl -fL -O "$BASE/native-host-manifest.json"
curl -fL -O "$BASE/prerelease-provenance.json"
shasum -a 256 -c SHA256SUMS