WP Elevator Docs

Comparison with other tools

Comparison with existing tools

ToolWhat it doesHow wp-release differs
10up WordPress.org plugin deploy and readme/asset update actionsTwo separate GitHub Actions configured through env vars. A deploy always syncs the build to trunk/ and copies it to the tag; readme and asset updates need the second action. Assets come from .wordpress-org by default, and files are selected with .distignore or .gitattributes. Files are synced with rsync.One deploy-svn command with independent write flags, so a release, a readme-only update and an assets-only update are the same command with different flags. Runs locally and in any CI, not only GitHub Actions, and syncs in Node.js without rsync. Checks that the Version header, readme Stable tag and SVN tag agree before writing, which the 10up actions don't. Assets are deployed only when --assets-dir is passed, instead of always syncing .wordpress-org when it exists, so a plugin's own assets/ folder is never uploaded by accident. Adds --exclude for patterns without an ignore file, opt-in Git export-ignore support and --from-zip to deploy the exact files of a ZIP.
grunt-wp-deployGrunt task with deploy_trunk and deploy_tag booleans, interactive password prompts and a Stable tag check.No Grunt dependency and never interactive. --readme-only is a separate flag, where grunt-wp-deploy can only update trunk with the full build. Assets are independent of trunk writes.
codeinwp theme deployFork of the 10up plugin action that commits themes to the themes SVN repository.Doesn't deploy themes. Theme releases are ZIP uploads on WordPress.org; zip builds the upload with the theme folder as the root.
wp dist-archiveWP-CLI command that zips a project using .distignore, with --plugin-dirname and --filename-format.Same .distignore file and {name}.{version} style filename format, but needs only Node.js instead of PHP and WP-CLI. .distignore is matched with full gitignore syntax, including ! negation, and --distignore / --exclude let you point at another ignore file or add patterns on the command line. Builds are reproducible, and --checksums writes a manifest next to the ZIP.
wp i18n make-potWP-CLI command that extracts PHP, JavaScript, block.json and theme.json strings into a POT, with --domain, --include/--exclude, --headers, --file-comment, --merge/--subtract and audit warnings.i18n-pot and i18n-audit need only Node.js, write byte-for-byte reproducible POTs without dates, and --check fails CI on a stale POT. Headers are set one at a time with a repeatable --header NAME=VALUE instead of a JSON object, and --include/--exclude take one glob each, so patterns never need escaping or comma splitting. --no-references and --all-domains say what they do. Monorepos keep these settings once in wp-release.config.js and select packages with --package or --all instead of running the command for every directory. The audit is a separate read-only command with stable finding codes for --suppress, instead of warnings mixed into generation. There's no --merge, --subtract or --skip-*; --include and --exclude cover the same needs.
wp i18n make-mo, make-json and make-phpWP-CLI commands that compile PO files into MO, script JSON and .l10n.php files. make-json maps sources with --use-map and removes JavaScript strings from the PO unless --no-purge is passed.i18n-mo, i18n-json and i18n-php compile one translated PO at a time, never change it, and leave out fuzzy, obsolete and untranslated entries. i18n-json takes a many-to-many --map from source files to built scripts, and JSX and TypeScript sources need one, so catalogs are never written for files WordPress doesn't load. --check compares the outputs without writing. There's no update-po, so update PO files from the POT with gettext's msgmerge or a translation platform.
wp plugin verify-checksumsWP-CLI command that checks installed plugins against the WordPress.org checksums API.Reads the same manifest format, but from a file, so it also works for plugins and themes that aren't hosted on WordPress.org and for build directories in CI. checksums writes the manifest that WordPress.org generates for its own plugins.
wp-scripts plugin-zipZips files from package.json files or a fixed allowlist, named after the npm package, with --root-folder / --no-root-folder.Reuses the root folder flags, selects files with .distignore by default and can optionally honor Git export-ignore attributes, puts the version from the plugin headers in the filename and streams the archive instead of building it in memory.

On this page