From 0116a9a04b7b0555f710bbe903bb4c951d15da29 Mon Sep 17 00:00:00 2001 From: Joe Fusco Date: Thu, 22 Oct 2026 15:54:39 -0400 Subject: [PATCH 1/5] ci: switch plugin releases from changesets to release-please Closes #668 --- .changeset/config.json | 19 - .github/scripts/sync_plugin_release_files.sh | 39 ++ .github/workflows/create-release-branch.yml | 159 ------- .github/workflows/lint-pr.yml | 2 + .github/workflows/pre-release-tag.yml | 164 ------- .github/workflows/release-please.yml | 79 ++++ .github/workflows/release-plugin.yml | 109 +++++ .release-please-manifest.json | 6 + package.json | 4 - pnpm-lock.yaml | 448 ------------------- release-please-config.json | 41 ++ 11 files changed, 276 insertions(+), 794 deletions(-) delete mode 100644 .changeset/config.json create mode 100755 .github/scripts/sync_plugin_release_files.sh delete mode 100644 .github/workflows/create-release-branch.yml delete mode 100644 .github/workflows/pre-release-tag.yml create mode 100644 .github/workflows/release-please.yml create mode 100644 .github/workflows/release-plugin.yml create mode 100644 .release-please-manifest.json create mode 100644 release-please-config.json diff --git a/.changeset/config.json b/.changeset/config.json deleted file mode 100644 index 30239469..00000000 --- a/.changeset/config.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "https://unpkg.com/@changesets/config@2.4.0/schema.json", - "changelog": [ - "@changesets/changelog-github", - { "repo": "wpengine/hwptoolkit" } - ], - "commit": false, - "linked": [], - "access": "restricted", - "baseBranch": "main", - "updateInternalDependencies": "patch", - "ignore": [], - "packages": [ - "plugins/*" - ], - "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { - "onlyUpdatePeerDependentsWhenOutOfRange": true - } -} \ No newline at end of file diff --git a/.github/scripts/sync_plugin_release_files.sh b/.github/scripts/sync_plugin_release_files.sh new file mode 100755 index 00000000..1862f2d1 --- /dev/null +++ b/.github/scripts/sync_plugin_release_files.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +# Syncs a plugin's version from its package.json into the files release-please doesn't know about: +# the plugin header, readme.txt Stable tag, composer.json, and plugins/composer-packages.json. +# Usage: .github/scripts/sync_plugin_release_files.sh + +set -e + +SLUG="$1" +PLUGIN_DIR="plugins/$SLUG" + +if [ -z "$SLUG" ] || [ ! -f "$PLUGIN_DIR/package.json" ] || [ ! -f "$PLUGIN_DIR/composer.json" ]; then + echo "Usage: $0 (plugin needs both package.json and composer.json)" + exit 1 +fi + +# Update the plugin header, readme.txt, and composer.json via the plugin's own version script +(cd "$PLUGIN_DIR" && npm run version) + +NEW_VERSION=$(jq -r '.version' "$PLUGIN_DIR/package.json") + +# Build the download URL +# Format is [github-repository]/releases/download/[encoded-package-name]-[version]/[plugin-slug].zip +PKG_NAME=$(jq -r '.name' "$PLUGIN_DIR/package.json") +ENCODED_PKG_NAME=$(python3 -c "import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1], safe=''))" "$PKG_NAME") +RELEASE_URL="https://github.com/wpengine/hwptoolkit/releases/download/${ENCODED_PKG_NAME}-${NEW_VERSION}/${SLUG}.zip" + +COMPOSER_NAME=$(jq -r '.name' "$PLUGIN_DIR/composer.json") +DESCRIPTION=$(jq -r '.description // empty' "$PLUGIN_DIR/composer.json") + +if [ -z "$NEW_VERSION" ] || [ -z "$COMPOSER_NAME" ] || [ -z "$DESCRIPTION" ]; then + echo "Error: Missing required values for update_composer_package.sh" + echo "NEW_VERSION: $NEW_VERSION" + echo "COMPOSER_NAME: $COMPOSER_NAME" + echo "DESCRIPTION: $DESCRIPTION" + exit 1 +fi + +.github/scripts/update_composer_package.sh "$NEW_VERSION" "$RELEASE_URL" "$COMPOSER_NAME" "$DESCRIPTION" diff --git a/.github/workflows/create-release-branch.yml b/.github/workflows/create-release-branch.yml deleted file mode 100644 index e6eb68a9..00000000 --- a/.github/workflows/create-release-branch.yml +++ /dev/null @@ -1,159 +0,0 @@ - -# This creates a release branch for a plugin when changes are pushed to the main branch. -# We cannot commit to a protected branch directly, so we create a new branch to make these changes. -name: Create Release Branch - -on: - push: - branches: - - main - paths: - - "plugins/*/**" - -permissions: - contents: write # Allow actions to read and write repository contents - pull-requests: write # Allow actions to create and manage pull requests - actions: read # Allow actions to read repository metadata but not write to it - -jobs: - create-release-branch: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Set up PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.2' # Note all plugins are compatible with PHP 8.2 - extensions: mbstring, json, zip - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 24.x - - - name: Setup pnpm - uses: pnpm/action-setup@v3 - with: - version: 10 # Min version required by the repo - - - name: Get changed plugin directory - id: plugin - run: | - bash .github/scripts/get_plugin_slug.sh release - - - - name: Validate plugin detection - continue-on-error: false - run: | - if [ ! -d "plugins/${{ steps.plugin.outputs.slug }}" ]; then - echo "Plugin directory does not exist" - exit 1 - fi - - - name: Install dependencies - run: pnpm install - - - name: Create release branch and apply changesets - run: | - # Create a unique branch name with timestamp - BRANCH_NAME="release/${{ steps.plugin.outputs.slug }}-$(date +%Y%m%d-%H%M%S)" - echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV - - # Create and switch to release branch - git checkout -b "$BRANCH_NAME" - - # Apply version bumps from changesets - pnpm changeset version - - # Only run if both package.json and composer.json exist for the plugin - if [ -f "plugins/${{ steps.plugin.outputs.slug }}/package.json" ] && [ -f "plugins/${{ steps.plugin.outputs.slug }}/composer.json" ]; then - echo "Both package.json and composer.json found for ${{ steps.plugin.outputs.slug }}" - - # Run version script for the plugin if it exists - if cat "plugins/${{ steps.plugin.outputs.slug }}/package.json" | grep -q '"version".*:'; then - echo "Running version script for ${{ steps.plugin.outputs.slug }}" - cd "plugins/${{ steps.plugin.outputs.slug }}" - npm run version - cd ../.. - else - echo "No version script found for ${{ steps.plugin.outputs.slug }}" - fi - - # Get new version from plugin's package.json - NEW_VERSION=$(jq -r '.version' "plugins/${{ steps.plugin.outputs.slug }}/package.json") - - # Build the download URL - # e.g. https://github.com/wpengine/hwptoolkit/releases/download/%40wpengine%2Fhwp-previews-wordpress-plugin-0.0.5/hwp-previews.zip - # Get the "name" field from plugin's package.json and URL encode it - PKG_NAME=$(jq -r '.name' "plugins/${{ steps.plugin.outputs.slug }}/package.json") - ENCODED_PKG_NAME=$(python3 -c "import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1], safe=''))" "$PKG_NAME") - - # Format is [github-repository]/releases/download/[encoded-package-name]-[version]/[plugin-slug].zip - RELEASE_URL="https://github.com/wpengine/hwptoolkit/releases/download/${ENCODED_PKG_NAME}-${NEW_VERSION}/${{ steps.plugin.outputs.slug }}.zip" - - # Get plugin description from plugin's composer.json - DESCRIPTION=$(jq -r '.description // empty' "plugins/${{ steps.plugin.outputs.slug }}/composer.json") - - # Run the composer package update script - # Get the "name" field from plugin's composer.json - COMPOSER_NAME=$(jq -r '.name' "plugins/${{ steps.plugin.outputs.slug }}/composer.json") - if [ -n "$NEW_VERSION" ] && [ -n "$RELEASE_URL" ] && [ -n "$COMPOSER_NAME" ] && [ -n "$DESCRIPTION" ]; then - .github/scripts/update_composer_package.sh "$NEW_VERSION" "$RELEASE_URL" "$COMPOSER_NAME" "$DESCRIPTION" - else - echo "Error: Missing required values for update_composer_package.sh" - echo "NEW_VERSION: $NEW_VERSION" - echo "RELEASE_URL: $RELEASE_URL" - echo "COMPOSER_NAME: $COMPOSER_NAME" - echo "DESCRIPTION: $DESCRIPTION" - exit 1 - fi - - else - echo "package.json and/or composer.json not found for plugin ${{ steps.plugin.outputs.slug }}. Skipping version and composer update steps." - fi - - # Configure git - git config user.name "github-actions" - git config user.email "github-actions@github.com" - - # Commit changes - git add . - if git diff --staged --quiet; then - echo "No changes to commit" - else - git commit -m "chore: apply version bump from changesets for ${{ steps.plugin.outputs.slug }}" - git push origin "$BRANCH_NAME" - - # Create PR and capture URL for auto-merge steps - RELEASE_PR_URL=$(gh pr create \ - --title "Release: ${{ steps.plugin.outputs.slug }} version bump" \ - --body "Automated release PR for ${{ steps.plugin.outputs.slug }} plugin. - - This PR applies version bumps from changesets. Once merged, it will trigger the pre-release creation workflow. - - Plugin: ${{ steps.plugin.outputs.slug }}" \ - --base main \ - --head "$BRANCH_NAME") - echo "RELEASE_PR_URL=$RELEASE_PR_URL" >> $GITHUB_ENV - fi - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Approve release PR - if: env.RELEASE_PR_URL != '' - env: - GH_TOKEN: ${{ secrets.RELEASE_PAT }} - run: gh pr review --approve "$RELEASE_PR_URL" - - - name: Enable auto-merge on release PR - if: env.RELEASE_PR_URL != '' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh pr merge --auto --squash "$RELEASE_PR_URL" diff --git a/.github/workflows/lint-pr.yml b/.github/workflows/lint-pr.yml index 4a3a00d5..3a8cc8fd 100644 --- a/.github/workflows/lint-pr.yml +++ b/.github/workflows/lint-pr.yml @@ -21,6 +21,7 @@ jobs: # build: Changes that affect the build system or external dependencies # chore: Routine tasks, maintenance, or refactors that don't change functionality # ci: Changes to CI configuration files and scripts + # deps: Dependency updates (listed under Dependencies in release notes) # docs: Documentation only changes # feat: A new feature for the user or a significant enhancement # fix: A bug fix @@ -34,6 +35,7 @@ jobs: build chore ci + deps docs feat fix diff --git a/.github/workflows/pre-release-tag.yml b/.github/workflows/pre-release-tag.yml deleted file mode 100644 index 3e73bff7..00000000 --- a/.github/workflows/pre-release-tag.yml +++ /dev/null @@ -1,164 +0,0 @@ -# Part of create-release-branch.yml -# Changesets are applied to the release branch instead of main as this is a production branch -# Once merged, the PR should create the pre-release tag - -name: Create Pre-release Tag - -on: - pull_request: - types: [closed] - branches: - - main - paths: - - "plugins/*/**" - -permissions: - contents: write - actions: read - -jobs: - tag-pre-release: - # Only run if PR was merged and branch name starts with 'release/' - if: github.event.pull_request.merged == true && startsWith(github.head_ref, 'release/') - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.2' # Note: All plugins are compatible with PHP 8.2 - extensions: mbstring, json, zip - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 24.x - - - name: Setup pnpm - uses: pnpm/action-setup@v3 - with: - version: 10 # Min version required by the repo - - - name: Get changed plugin directory - id: plugin - run: | - # Get files changed in the merged PR, only match plugins//... - plugin=$(git diff --name-only HEAD~1 HEAD | grep '^plugins/[^/]\+/' | grep -v '^plugins/composer-packages.json' | head -1 | cut -d/ -f2) - if [ -z "$plugin" ]; then - # Fallback: extract from branch name if no plugin changes detected - branch_name="${{ github.head_ref }}" - plugin=$(echo "$branch_name" | sed 's/release\/\([^-]*\)-.*/\1/') - fi - echo "plugin_slug=$plugin" >> $GITHUB_OUTPUT - - - name: Validate plugin detection - run: | - if [ ! -d "plugins/${{ steps.plugin.outputs.plugin_slug }}" ]; then - echo "Plugin directory does not exist: plugins/${{ steps.plugin.outputs.plugin_slug }}" - exit 1 - fi - - - name: Read package metadata - id: metadata - run: | - PLUGIN_DIR="plugins/${{ steps.plugin.outputs.plugin_slug }}" - - if [ ! -f "$PLUGIN_DIR/package.json" ]; then - echo "package.json not found in $PLUGIN_DIR" - exit 1 - fi - - package_name=$(jq -r '.name // empty' "$PLUGIN_DIR/package.json") - package_version=$(jq -r '.version // empty' "$PLUGIN_DIR/package.json") - - if [ -z "$package_name" ] || [ "$package_name" = "null" ] || [ "$package_name" = "empty" ]; then - echo "Missing or invalid name in $PLUGIN_DIR/package.json" - exit 1 - fi - - if [ -z "$package_version" ] || [ "$package_version" = "null" ] || [ "$package_version" = "empty" ]; then - echo "Missing or invalid version in $PLUGIN_DIR/package.json" - exit 1 - fi - - echo "package_name=$package_name" >> $GITHUB_OUTPUT - echo "package_version=$package_version" >> $GITHUB_OUTPUT - echo "PLUGIN_DIR=$PLUGIN_DIR" >> $GITHUB_OUTPUT - - - name: Determine release type - id: release_type - run: | - VERSION="${{ steps.metadata.outputs.package_version }}" - IS_PRERELEASE=true - RELEASE_TITLE_PREFIX="Pre-release" - - if [[ ! "$VERSION" =~ ^0\. ]]; then - IS_PRERELEASE=false - RELEASE_TITLE_PREFIX="Release" - fi - - echo "is_prerelease=$IS_PRERELEASE" >> $GITHUB_OUTPUT - echo "release_title_prefix=$RELEASE_TITLE_PREFIX" >> $GITHUB_OUTPUT - - - name: Create Git tag - continue-on-error: false - run: | - TAG_NAME="${{ steps.metadata.outputs.package_name }}-${{ steps.metadata.outputs.package_version }}" - - # Check if tag already exists - if git rev-parse "$TAG_NAME" >/dev/null 2>&1; then - echo "Tag $TAG_NAME already exists. Skipping tag creation." - echo "tag_exists=true" >> $GITHUB_ENV - exit 1 - fi - - git config user.name "github-actions" - git config user.email "github-actions@github.com" - git tag "$TAG_NAME" - git push origin "$TAG_NAME" - echo "tag_exists=false" >> $GITHUB_ENV - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Install dependencies - run: pnpm install - - - name: Run composer install - working-directory: ${{ steps.metadata.outputs.PLUGIN_DIR }} - run: composer install --no-dev --optimize-autoloader - - - name: Validate composer setup - working-directory: ${{ steps.metadata.outputs.PLUGIN_DIR }} - run: | - composer validate --no-check-publish --no-check-lock - - - name: Create plugin archive - working-directory: ${{ steps.metadata.outputs.PLUGIN_DIR }} - run: | - rm -f plugin-build/${{ steps.plugin.outputs.plugin_slug }}.-*.zip - composer archive -vvv --format=zip --file="plugin-build/${{ steps.plugin.outputs.plugin_slug }}" --dir="." - - # Verify archive was created - if [ ! -f "plugin-build/${{ steps.plugin.outputs.plugin_slug }}.zip" ]; then - echo "Failed to create plugin archive" - exit 1 - fi - - echo "Archive created successfully: $(ls -lh plugin-build/${{ steps.plugin.outputs.plugin_slug }}.zip)" - - - name: Upload archive to GitHub Release - uses: softprops/action-gh-release@v2 - with: - tag_name: ${{ env.TAG_NAME }} - name: "${{ steps.release_type.outputs.release_title_prefix }} ${{ steps.metadata.outputs.package_version }} for ${{ steps.metadata.outputs.package_name }}" - prerelease: ${{ steps.release_type.outputs.is_prerelease }} - files: | - ${{ steps.metadata.outputs.PLUGIN_DIR }}/plugin-build/${{ steps.plugin.outputs.plugin_slug }}.zip - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 00000000..f7a0cc55 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,79 @@ +name: Release Please + +on: + push: + branches: + - main + +permissions: + contents: write # For creating releases/tags and pushing to release PR branches + pull-requests: write # For creating release PRs + +jobs: + release-please: + name: Release Please + runs-on: ubuntu-latest + outputs: + prs: ${{ steps.release.outputs.prs }} + paths-released: ${{ steps.release.outputs.paths_released }} + steps: + - uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0 + id: release + with: + target-branch: main + + # release-please bumps each plugin's package.json and CHANGELOG.md but knows nothing + # about the plugin header, readme.txt Stable tag, composer.json, or composer-packages.json. + # Sync those onto each release PR branch so they ship together. + sync-release-files: + name: Sync release files (${{ matrix.pr.headBranchName }}) + needs: release-please + if: needs.release-please.outputs.prs && needs.release-please.outputs.prs != '[]' + runs-on: ubuntu-latest + strategy: + matrix: + pr: ${{ fromJSON(needs.release-please.outputs.prs) }} + steps: + - name: Checkout release PR branch + uses: actions/checkout@v4 + with: + ref: ${{ matrix.pr.headBranchName }} + fetch-depth: 0 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24.x + + - name: Sync version into plugin files + run: | + # Only plugins whose version this release PR bumps + for file in $(git diff --name-only origin/main -- 'plugins/*/package.json'); do + slug=$(echo "$file" | cut -d/ -f2) + echo "Syncing release files for $slug" + bash .github/scripts/sync_plugin_release_files.sh "$slug" + done + + - name: Commit changes + run: | + if git diff --quiet; then + echo "Release files already in sync" + exit 0 + fi + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git commit -am "chore: sync release files" + git push + + # Releases created with GITHUB_TOKEN don't trigger other workflows, so call the build directly. + release-plugin: + name: Release plugin (${{ matrix.path }}) + needs: release-please + if: needs.release-please.outputs.paths-released && needs.release-please.outputs.paths-released != '[]' + strategy: + matrix: + path: ${{ fromJSON(needs.release-please.outputs.paths-released) }} + uses: ./.github/workflows/release-plugin.yml + with: + path: ${{ matrix.path }} + secrets: inherit diff --git a/.github/workflows/release-plugin.yml b/.github/workflows/release-plugin.yml new file mode 100644 index 00000000..73d4a055 --- /dev/null +++ b/.github/workflows/release-plugin.yml @@ -0,0 +1,109 @@ +# Builds a plugin zip and attaches it to the GitHub Release that release-please created. +# Called by release-please.yml; can also be run by hand to rebuild a release's zip. + +name: Release Plugin + +on: + workflow_call: + inputs: + path: + description: 'Plugin path (e.g. plugins/hwp-previews)' + required: true + type: string + workflow_dispatch: + inputs: + path: + description: 'Plugin path (e.g. plugins/hwp-previews)' + required: true + type: string + tag: + description: 'Release tag to rebuild (e.g. @wpengine/hwp-previews-wordpress-plugin-1.0.2)' + required: true + type: string + +permissions: + contents: write + +jobs: + build: + name: Build and upload plugin archive + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ inputs.tag || github.sha }} + + - name: Set up PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.2' # Note: All plugins are compatible with PHP 8.2 + extensions: mbstring, json, zip + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24.x + + - name: Setup pnpm + uses: pnpm/action-setup@v3 + with: + version: 10 # Min version required by the repo + + - name: Read package metadata + id: metadata + env: + PLUGIN_DIR: ${{ inputs.path }} + run: | + if [ ! -f "$PLUGIN_DIR/package.json" ]; then + echo "package.json not found in $PLUGIN_DIR" + exit 1 + fi + + package_name=$(jq -r '.name' "$PLUGIN_DIR/package.json") + package_version=$(jq -r '.version' "$PLUGIN_DIR/package.json") + + # Matches the tag format in release-please-config.json + echo "tag=${package_name}-${package_version}" >> "$GITHUB_OUTPUT" + echo "version=$package_version" >> "$GITHUB_OUTPUT" + echo "slug=$(basename "$PLUGIN_DIR")" >> "$GITHUB_OUTPUT" + + - name: Install dependencies + run: pnpm install + + - name: Run composer install + working-directory: ${{ inputs.path }} + run: composer install --no-dev --optimize-autoloader + + - name: Validate composer setup + working-directory: ${{ inputs.path }} + run: composer validate --no-check-publish --no-check-lock + + - name: Create plugin archive + working-directory: ${{ inputs.path }} + env: + SLUG: ${{ steps.metadata.outputs.slug }} + run: | + rm -f "plugin-build/$SLUG.zip" + composer archive -vvv --format=zip --file="plugin-build/$SLUG" --dir="." + + if [ ! -f "plugin-build/$SLUG.zip" ]; then + echo "Failed to create plugin archive" + exit 1 + fi + + echo "Archive created successfully: $(ls -lh "plugin-build/$SLUG.zip")" + + - name: Upload archive to GitHub Release + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + TAG: ${{ steps.metadata.outputs.tag }} + VERSION: ${{ steps.metadata.outputs.version }} + ARCHIVE: ${{ inputs.path }}/plugin-build/${{ steps.metadata.outputs.slug }}.zip + run: | + gh release upload "$TAG" "$ARCHIVE" --clobber + + # 0.x versions are pre-releases + if [[ "$VERSION" =~ ^0\. ]]; then + gh release edit "$TAG" --prerelease + fi diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 00000000..9347d42c --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,6 @@ +{ + "plugins/hwp-previews": "1.0.2", + "plugins/wpgraphql-debug-extensions": "0.0.4", + "plugins/wpgraphql-logging": "1.0.1", + "plugins/wpgraphql-webhooks": "0.0.7" +} diff --git a/package.json b/package.json index 4887d505..b80409a4 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,6 @@ "clean": "bash ./scripts/clean.sh", "dev": "bash ./scripts/dev.sh", "stop": "pnpm --filter '*' stop", - "release": "npm run build && changeset publish", - "changeset": "changeset", "reformat:md": "remark --rc-path .remarkrc.json --output --" }, "engines": { @@ -23,8 +21,6 @@ "license": "ISC", "description": "", "devDependencies": { - "@changesets/changelog-github": "^0.7.0", - "@changesets/cli": "^2.31.1", "@playwright/test": "^1.64.1", "@wordpress/e2e-test-utils-playwright": "^1.54.0", "@wordpress/env": "^12.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 70340665..5d9ef922 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,12 +59,6 @@ importers: specifier: ^7.0.1 version: 7.0.1 devDependencies: - '@changesets/changelog-github': - specifier: ^0.7.0 - version: 0.7.0(encoding@0.1.13) - '@changesets/cli': - specifier: ^2.31.1 - version: 2.31.1(@types/node@26.4.0) '@playwright/test': specifier: ^1.64.1 version: 1.64.1 @@ -805,10 +799,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.29.10': - resolution: {integrity: sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==} - engines: {node: '>=6.9.0'} - '@babel/template@7.29.7': resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} engines: {node: '>=6.9.0'} @@ -830,67 +820,6 @@ packages: '@cacheable/utils@2.5.0': resolution: {integrity: sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==} - '@changesets/apply-release-plan@7.1.1': - resolution: {integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==} - - '@changesets/assemble-release-plan@6.0.10': - resolution: {integrity: sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==} - - '@changesets/changelog-git@0.2.1': - resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} - - '@changesets/changelog-github@0.7.0': - resolution: {integrity: sha512-rBsbRvc4TVn+FvFnOVM3LxlFJfTXXCp8gfVJ+0BubxWNSVnLuAzowi5j+IEraLLP52w8AAs9QfKbPS3MMiXQJA==} - - '@changesets/cli@2.31.1': - resolution: {integrity: sha512-uO05WTcRBwuVOJVSW8Cmpqw6q0WDL53ajGCMyszutvOe5toOnunbpM4jZzf+qxBOz7i0AzopZ8diBuewjmF40w==} - hasBin: true - - '@changesets/config@3.1.4': - resolution: {integrity: sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==} - - '@changesets/errors@0.2.0': - resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - - '@changesets/get-dependents-graph@2.1.4': - resolution: {integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==} - - '@changesets/get-github-info@0.8.0': - resolution: {integrity: sha512-cRnC+xdF0JIik7coko3iUP9qbnfi1iJQ3sAa6dE+Tx3+ET8bjFEm63PA4WEohgjYcmsOikPHWzPsMWWiZmntOQ==} - - '@changesets/get-release-plan@4.0.16': - resolution: {integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==} - - '@changesets/get-version-range-type@0.4.0': - resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - - '@changesets/git@3.0.4': - resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==} - - '@changesets/logger@0.1.1': - resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - - '@changesets/parse@0.4.3': - resolution: {integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==} - - '@changesets/pre@2.0.2': - resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} - - '@changesets/read@0.6.7': - resolution: {integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==} - - '@changesets/should-skip-package@0.1.2': - resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} - - '@changesets/types@4.1.0': - resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - - '@changesets/types@6.1.0': - resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==} - - '@changesets/write@0.4.0': - resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} - '@csstools/css-parser-algorithms@3.0.5': resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} engines: {node: '>=18'} @@ -1381,12 +1310,6 @@ packages: '@leichtgewicht/ip-codec@2.0.5': resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} - '@manypkg/find-root@1.1.0': - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} - - '@manypkg/get-packages@1.1.3': - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - '@napi-rs/wasm-runtime@1.1.6': resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} peerDependencies: @@ -2274,9 +2197,6 @@ packages: '@types/mysql@2.15.26': resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} - '@types/node@12.20.55': - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@22.20.1': resolution: {integrity: sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==} @@ -3255,10 +3175,6 @@ packages: before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -3792,9 +3708,6 @@ packages: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} - dataloader@1.4.0: - resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} - debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} @@ -3918,10 +3831,6 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -4001,10 +3910,6 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} - dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -4372,9 +4277,6 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - extract-zip@2.0.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -4569,14 +4471,6 @@ packages: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} - fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -4862,10 +4756,6 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - human-id@4.2.0: - resolution: {integrity: sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==} - hasBin: true - human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -5175,10 +5065,6 @@ packages: resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} - is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - is-symbol@1.1.1: resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} @@ -5210,10 +5096,6 @@ packages: resolution: {integrity: sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==} engines: {node: '>=0.10.0'} - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -5495,9 +5377,6 @@ packages: jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - jsonfile@6.2.1: resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} @@ -5654,9 +5533,6 @@ packages: lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} @@ -6087,10 +5963,6 @@ packages: mousetrap@1.6.5: resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==} - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -6153,15 +6025,6 @@ packages: resolution: {integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==} engines: {node: '>= 0.4'} - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -6316,9 +6179,6 @@ packages: resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} engines: {node: '>=0.10.0'} - outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - own-keys@1.0.1: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} @@ -6327,10 +6187,6 @@ packages: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} - p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} - p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -6355,10 +6211,6 @@ packages: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - p-retry@6.2.1: resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} engines: {node: '>=16.17'} @@ -6378,9 +6230,6 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-manager-detector@0.2.11: - resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} - pako@1.0.10: resolution: {integrity: sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==} @@ -6787,11 +6636,6 @@ packages: resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} engines: {node: '>=6.0.0'} - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6881,9 +6725,6 @@ packages: resolution: {integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==} engines: {node: '>=0.6'} - quansync@0.2.11: - resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} - querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -6944,10 +6785,6 @@ packages: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} - read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} - readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -7431,9 +7268,6 @@ packages: resolution: {integrity: sha512-drqHc0mKJmtMsiGMOCwzlc5eZ0RPtRvT7tQAluW2A0qUc0G7TQ8KLcn3E6K5qzkLkH2UkS3nYQiVGULvvsD9dw==} engines: {node: '>=16'} - spawndamnit@3.0.1: - resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} - spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -7676,10 +7510,6 @@ packages: teex@1.0.1: resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} - term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} - terser-webpack-plugin@5.6.1: resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} engines: {node: '>= 10.13.0'} @@ -7796,9 +7626,6 @@ packages: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -7990,10 +7817,6 @@ packages: universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -8118,9 +7941,6 @@ packages: webdriver-bidi-protocol@0.4.1: resolution: {integrity: sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==} - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -8208,9 +8028,6 @@ packages: resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} engines: {node: '>=12'} - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - when-exit@2.1.5: resolution: {integrity: sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==} @@ -9213,8 +9030,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/runtime@7.29.10': {} - '@babel/template@7.29.7': dependencies: '@babel/code-frame': 7.29.7 @@ -9252,164 +9067,6 @@ snapshots: hashery: 1.5.1 keyv: 5.6.0 - '@changesets/apply-release-plan@7.1.1': - dependencies: - '@changesets/config': 3.1.4 - '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - detect-indent: 6.1.0 - fs-extra: 7.0.1 - lodash.startcase: 4.4.0 - outdent: 0.5.0 - prettier: 2.8.8 - resolve-from: 5.0.0 - semver: 7.8.5 - - '@changesets/assemble-release-plan@6.0.10': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - semver: 7.8.5 - - '@changesets/changelog-git@0.2.1': - dependencies: - '@changesets/types': 6.1.0 - - '@changesets/changelog-github@0.7.0(encoding@0.1.13)': - dependencies: - '@changesets/get-github-info': 0.8.0(encoding@0.1.13) - '@changesets/types': 6.1.0 - dotenv: 8.6.0 - transitivePeerDependencies: - - encoding - - '@changesets/cli@2.31.1(@types/node@26.4.0)': - dependencies: - '@changesets/apply-release-plan': 7.1.1 - '@changesets/assemble-release-plan': 6.0.10 - '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.4 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/get-release-plan': 4.0.16 - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.7 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@26.4.0) - '@manypkg/get-packages': 1.1.3 - ansi-colors: 4.1.3 - enquirer: 2.4.1 - fs-extra: 7.0.1 - mri: 1.2.0 - package-manager-detector: 0.2.11 - picocolors: 1.1.1 - resolve-from: 5.0.0 - semver: 7.8.5 - spawndamnit: 3.0.1 - term-size: 2.2.1 - transitivePeerDependencies: - - '@types/node' - - '@changesets/config@3.1.4': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/logger': 0.1.1 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - micromatch: 4.0.8 - - '@changesets/errors@0.2.0': - dependencies: - extendable-error: 0.1.7 - - '@changesets/get-dependents-graph@2.1.4': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - picocolors: 1.1.1 - semver: 7.8.5 - - '@changesets/get-github-info@0.8.0(encoding@0.1.13)': - dependencies: - dataloader: 1.4.0 - node-fetch: 2.7.0(encoding@0.1.13) - transitivePeerDependencies: - - encoding - - '@changesets/get-release-plan@4.0.16': - dependencies: - '@changesets/assemble-release-plan': 6.0.10 - '@changesets/config': 3.1.4 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.7 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/get-version-range-type@0.4.0': {} - - '@changesets/git@3.0.4': - dependencies: - '@changesets/errors': 0.2.0 - '@manypkg/get-packages': 1.1.3 - is-subdir: 1.2.0 - micromatch: 4.0.8 - spawndamnit: 3.0.1 - - '@changesets/logger@0.1.1': - dependencies: - picocolors: 1.1.1 - - '@changesets/parse@0.4.3': - dependencies: - '@changesets/types': 6.1.0 - js-yaml: 4.3.2 - - '@changesets/pre@2.0.2': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - - '@changesets/read@0.6.7': - dependencies: - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.3 - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - p-filter: 2.1.0 - picocolors: 1.1.1 - - '@changesets/should-skip-package@0.1.2': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/types@4.1.0': {} - - '@changesets/types@6.1.0': {} - - '@changesets/write@0.4.0': - dependencies: - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - human-id: 4.2.0 - prettier: 2.8.8 - '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/css-tokenizer': 3.0.4 @@ -10007,22 +9664,6 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@manypkg/find-root@1.1.0': - dependencies: - '@babel/runtime': 7.29.10 - '@types/node': 12.20.55 - find-up: 4.1.0 - fs-extra: 8.1.0 - - '@manypkg/get-packages@1.1.3': - dependencies: - '@babel/runtime': 7.29.10 - '@changesets/types': 4.1.0 - '@manypkg/find-root': 1.1.0 - fs-extra: 8.1.0 - globby: 11.1.0 - read-yaml-file: 1.1.0 - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 @@ -11200,8 +10841,6 @@ snapshots: dependencies: '@types/node': 26.4.0 - '@types/node@12.20.55': {} - '@types/node@22.20.1': dependencies: undici-types: 6.21.0 @@ -12411,10 +12050,6 @@ snapshots: before-after-hook@2.2.3: {} - better-path-resolve@1.0.0: - dependencies: - is-windows: 1.0.2 - big.js@5.2.2: {} binary-extensions@2.3.0: {} @@ -13021,8 +12656,6 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 - dataloader@1.4.0: {} - debounce@1.2.1: {} debug@2.6.9: @@ -13109,8 +12742,6 @@ snapshots: destroy@1.2.0: {} - detect-indent@6.1.0: {} - detect-libc@2.1.2: optional: true @@ -13185,8 +12816,6 @@ snapshots: dotenv@16.6.1: {} - dotenv@8.6.0: {} - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -13708,8 +13337,6 @@ snapshots: extend@3.0.2: {} - extendable-error@0.1.7: {} - extract-zip@2.0.1: dependencies: debug: 4.4.3 @@ -13915,18 +13542,6 @@ snapshots: jsonfile: 6.2.1 universalify: 2.0.1 - fs-extra@7.0.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - fs-extra@8.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -14262,8 +13877,6 @@ snapshots: transitivePeerDependencies: - supports-color - human-id@4.2.0: {} - human-signals@2.1.0: {} hyperdyperid@1.2.0: {} @@ -14519,10 +14132,6 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-subdir@1.2.0: - dependencies: - better-path-resolve: 1.0.0 - is-symbol@1.1.1: dependencies: call-bound: 1.0.4 @@ -14550,8 +14159,6 @@ snapshots: is-windows@0.2.0: {} - is-windows@1.0.2: {} - is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -15066,10 +14673,6 @@ snapshots: jsonc-parser@3.3.1: {} - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 - jsonfile@6.2.1: dependencies: universalify: 2.0.1 @@ -15260,8 +14863,6 @@ snapshots: lodash.once@4.1.1: {} - lodash.startcase@4.4.0: {} - lodash.truncate@4.4.2: {} lodash.uniq@4.5.0: {} @@ -15852,8 +15453,6 @@ snapshots: mousetrap@1.6.5: {} - mri@1.2.0: {} - mrmime@2.0.1: {} ms@2.0.0: {} @@ -15901,12 +15500,6 @@ snapshots: object.entries: 1.1.9 semver: 6.3.1 - node-fetch@2.7.0(encoding@0.1.13): - dependencies: - whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 - node-int64@0.4.0: {} node-releases@2.0.59: {} @@ -16115,8 +15708,6 @@ snapshots: os-homedir@1.0.2: {} - outdent@0.5.0: {} - own-keys@1.0.1: dependencies: get-intrinsic: 1.3.0 @@ -16125,10 +15716,6 @@ snapshots: p-cancelable@2.1.1: {} - p-filter@2.1.0: - dependencies: - p-map: 2.1.0 - p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -16153,8 +15740,6 @@ snapshots: dependencies: p-limit: 4.0.0 - p-map@2.1.0: {} - p-retry@6.2.1: dependencies: '@types/retry': 0.12.2 @@ -16183,10 +15768,6 @@ snapshots: package-json-from-dist@1.0.1: {} - package-manager-detector@0.2.11: - dependencies: - quansync: 0.2.11 - pako@1.0.10: {} param-case@3.0.4: @@ -16553,8 +16134,6 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier@2.8.8: {} - pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 @@ -16670,8 +16249,6 @@ snapshots: es-define-property: 1.0.1 side-channel: 1.1.1 - quansync@0.2.11: {} - querystringify@2.2.0: {} queue-microtask@1.2.3: {} @@ -16729,13 +16306,6 @@ snapshots: parse-json: 5.2.0 type-fest: 0.6.0 - read-yaml-file@1.1.0: - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.15.2 - pify: 4.0.1 - strip-bom: 3.0.0 - readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -17424,11 +16994,6 @@ snapshots: signal-exit: 4.1.0 tree-kill: 1.2.2 - spawndamnit@3.0.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -17787,8 +17352,6 @@ snapshots: - bare-abort-controller - react-native-b4a - term-size@2.2.1: {} - terser-webpack-plugin@5.6.1(cssnano@6.1.2(postcss@8.5.23))(postcss@8.5.23)(webpack@5.108.1): dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -17873,8 +17436,6 @@ snapshots: universalify: 0.2.0 url-parse: 1.5.10 - tr46@0.0.3: {} - tr46@3.0.0: dependencies: punycode: 2.3.1 @@ -18116,8 +17677,6 @@ snapshots: universal-user-agent@6.0.1: {} - universalify@0.1.2: {} - universalify@0.2.0: {} universalify@2.0.1: {} @@ -18277,8 +17836,6 @@ snapshots: webdriver-bidi-protocol@0.4.1: {} - webidl-conversions@3.0.1: {} - webidl-conversions@7.0.0: {} webpack-bundle-analyzer@4.10.2: @@ -18439,11 +17996,6 @@ snapshots: tr46: 3.0.0 webidl-conversions: 7.0.0 - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - when-exit@2.1.5: {} which-boxed-primitive@1.1.1: diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 00000000..144423f6 --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "release-type": "node", + "bootstrap-sha": "21a22f9c07d571e087e55a44b2f8efadbb87e964", + "include-component-in-tag": true, + "include-v-in-tag": false, + "tag-separator": "-", + "separate-pull-requests": true, + "changelog-sections": [ + { "type": "feat", "section": "Features" }, + { "type": "fix", "section": "Bug Fixes" }, + { "type": "perf", "section": "Performance Improvements" }, + { "type": "revert", "section": "Reverts" }, + { "type": "deps", "section": "Dependencies" }, + { "type": "docs", "section": "Documentation", "hidden": true }, + { "type": "chore", "section": "Miscellaneous", "hidden": true }, + { "type": "refactor", "section": "Code Refactoring", "hidden": true }, + { "type": "test", "section": "Tests", "hidden": true }, + { "type": "build", "section": "Build System", "hidden": true }, + { "type": "ci", "section": "Continuous Integration", "hidden": true }, + { "type": "style", "section": "Styles", "hidden": true } + ], + "packages": { + "plugins/hwp-previews": { + "component": "@wpengine/hwp-previews-wordpress-plugin", + "exclude-paths": ["plugins/hwp-previews/examples"] + }, + "plugins/wpgraphql-debug-extensions": { + "component": "@wpengine/wpgraphql-debug-extensions-wordpress-plugin", + "exclude-paths": ["plugins/wpgraphql-debug-extensions/examples"] + }, + "plugins/wpgraphql-logging": { + "component": "@wpengine/wpgraphql-logging-wordpress-plugin", + "exclude-paths": ["plugins/wpgraphql-logging/examples"] + }, + "plugins/wpgraphql-webhooks": { + "component": "@wpengine/wpgraphql-webhooks-wordpress-plugin", + "exclude-paths": ["plugins/wpgraphql-webhooks/examples"] + } + } +} From db0e699119c6801251bd6c2ad14f528c07493726 Mon Sep 17 00:00:00 2001 From: Joe Fusco Date: Thu, 22 Oct 2026 16:02:12 -0400 Subject: [PATCH 2/5] ci: only sync plugins changed on the release PR branch --- .github/workflows/release-please.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index f7a0cc55..6dbe523b 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -47,8 +47,8 @@ jobs: - name: Sync version into plugin files run: | - # Only plugins whose version this release PR bumps - for file in $(git diff --name-only origin/main -- 'plugins/*/package.json'); do + # Only plugins whose version this release PR bumps (three-dot ignores main moving ahead) + for file in $(git diff --name-only origin/main...HEAD -- 'plugins/*/package.json'); do slug=$(echo "$file" | cut -d/ -f2) echo "Syncing release files for $slug" bash .github/scripts/sync_plugin_release_files.sh "$slug" From 3b5b1238b5a95de5da35c813f85a178e7855fd33 Mon Sep 17 00:00:00 2001 From: Joe Fusco Date: Thu, 22 Oct 2026 16:02:35 -0400 Subject: [PATCH 3/5] ci: queue release-please runs instead of running them in parallel --- .github/workflows/release-please.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 6dbe523b..97bf345a 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -5,6 +5,11 @@ on: branches: - main +# Runs write to the same release PR branches, so queue them instead of racing +concurrency: + group: release-please + cancel-in-progress: false + permissions: contents: write # For creating releases/tags and pushing to release PR branches pull-requests: write # For creating release PRs From e37da294c29e264bd4757234e55246aa4e586362 Mon Sep 17 00:00:00 2001 From: Joe Fusco Date: Thu, 22 Oct 2026 16:02:41 -0400 Subject: [PATCH 4/5] ci: stop passing all secrets to the plugin release workflow --- .github/workflows/release-please.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 97bf345a..8d8dac6b 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -81,4 +81,3 @@ jobs: uses: ./.github/workflows/release-plugin.yml with: path: ${{ matrix.path }} - secrets: inherit From 709a344225841eb5a01885c1c25a213273d90e98 Mon Sep 17 00:00:00 2001 From: Joe Fusco Date: Thu, 22 Oct 2026 16:02:49 -0400 Subject: [PATCH 5/5] docs: describe the release-please release flow in CONTRIBUTING --- CONTRIBUTING.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 94695817..f03923cb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -98,6 +98,7 @@ We're using [Conventional Commits](https://www.conventionalcommits.org/) to orga # build: Changes that affect the build system or external dependencies # chore: Routine tasks, maintenance, or refactors that don't change functionality # ci: Changes to CI configuration files and scripts +# deps: Dependency updates # docs: Documentation only changes # feat: A new feature for the user or a significant enhancement # fix: A bug fix @@ -133,6 +134,17 @@ We use the [feature branch](https://www.atlassian.com/git/tutorials/comparing-wo We will try to review your PR as soon as possible. Once approved by two maintainers, you can merge your PR into `main`. +#### Releases + +Plugins are released with [release-please](https://github.com/googleapis/release-please). Releases are built from squash-merged PR titles, so the title decides the version bump: + +- `feat:` releases a minor version +- `fix:`, `perf:`, and `deps:` release a patch version +- `!` after the type (e.g. `feat!:`) or a `BREAKING CHANGE:` footer releases a major version +- Other types don't trigger a release + +After a merge to `main`, release-please opens or updates one release PR per plugin with the version bump and changelog. Merging that PR tags the release and attaches the plugin zip to the GitHub Release. Changes under a plugin's `examples/` directory don't count toward its release. + ### Discussions Use [GitHub Discussions](https://github.com/wpengine/hwptoolkit/discussions) if you want to submit PR or discuss bigger topics. There are many different categories in the Discussions section for different topics. Choose one, create a new discussion or join an existing one to share your thoughts. You can explore our ever-evolving RFCs, which serve as a beacon guiding the development of our toolkit.