Download the PHP package publishpress/dev-workspace without Composer

On this page you can find all versions of the php package publishpress/dev-workspace. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package dev-workspace

PublishPress Dev Workspace

Shared development tooling for PublishPress WordPress plugins. This Composer package exposes scripts for building, testing, translating, syncing, and quality checks — all managed through standard composer commands.

What it provides

Installing in a plugin

This package is a Composer plugin, so it must be explicitly allowed in config.allow-plugins before Composer will activate it.

Add the following to the plugin's composer.json first, then run composer update:

Once installed, all shared scripts become available through composer. For example:

If the plugin already defined those commands under scripts in its own composer.json, remove them. Names such as build, check:php, check:all, test:up, and the other shared workflows are registered by this package; keeping copies in the plugin would shadow or duplicate what the workspace provides.

If the project root still has a dev-workspace file delete it entirely. Tooling is installed under vendor/publishpress/dev-workspace; leaving the old path in place can confuse editors, scripts, or sync rules that treat dev-workspace as a separate tree.

GitHub authentication

Composer fetches package metadata from GitHub's API. The unauthenticated rate limit (60 requests/hour) is exhausted quickly, and Pro plugins require a token anyway because they reference private GitHub repositories.

Without a token you will see an error like:

Create a token

  1. Go to github.com/settings/tokens and generate a classic personal access token (or a fine-grained token scoped to the relevant repositories).
  2. Grant it the repo scope so it can read private repositories.
  3. Use short expiration times and only the minimum permissions necessary.

Configure Composer to use the token

The auth file location depends on where you are running composer:

In both cases the file must contain:

The CACHE_PATH directory is mounted into the container, so a token saved there persists across container restarts without needing to be re-added.

After saving the file, re-run composer update and the rate-limit error should be gone.

Remove duplicate Composer dependencies

This package already requires the shared QA and test stack. After adding publishpress/dev-workspace, drop the same packages from the plugin’s own require-dev (and from require if they were only there for tooling) so you do not pin conflicting versions or install duplicates. Typical overlaps include:

The complete and current list is the require section of this repository’s composer.json:

github.com/publishpress/dev-workspace/blob/development/composer.json

Keep any dependency the plugin needs at runtime or that is not provided by dev-workspace. After edits, run composer update and fix anything that still expects binaries under the plugin’s direct vendor/bin paths (prefer composer script names or vendor/bin/... as resolved from the root install).

Configuring the plugin metadata

Set the following keys in the plugin's composer.json extra section so the workspace can expose the right environment variables to scripts:

Each plugin root must have two environment files:

The canonical reference for all keys and their expected format is the fake-plugin template in this repository:

github.com/publishpress/dev-workspace/blob/development/test/fake-plugin/.env.example

Copy that file into the plugin root, rename it to .env.example, and fill in the values for your plugin. At minimum, set:

PLUGIN_TYPE is typically FREE or PRO. PLUGIN_COMPOSER_PACKAGE must match the package name in the plugin’s composer.json (and the plugin-composer-package value under extra when you set it). Adjust PLUGIN_NAME to the human-readable product name.

Use the same TERMINAL_IMAGE_NAME, WP_IMAGE_NAME, and WPCLI_IMAGE_NAME values in every plugin; do not use per-plugin image tags. When these images are updated in dev-workspace, bump the tags here in .env.example (and your local .env) together with any release notes from this package.

After editing .env.example, copy it to .env.

Both .env and .env.example must be excluded from the built/distributed package. They are already listed in .rsync-filters-pre-build.default and .rsync-filters-post-build.default (the rsync filter files used during packaging), so no extra action is required as long as the plugin uses the standard build pipeline from this package.

dev-workspace-cache directory

Tools from this package create a dev-workspace-cache folder at the project root (or the path set by CACHE_PATH in .env). It holds local-only data: Docker volume data (for example WordPress and MySQL test instances), npm and shell caches inside containers, deploy debug logs, and similar artifacts. It is regenerated as needed and must not be committed.

Add it to the plugin repository’s .gitignore:

It is also excluded from the built/distributed package — it is listed in both .rsync-filters-pre-build.default and .rsync-filters-post-build.default, so no extra action is required when using the standard build pipeline.

Docker image cleanup

Older setups used per-plugin image tags (for example publishpress/dev-workspace-terminal:publishpress-revisions). All PublishPress plugins are expected to use the same shared images set via TERMINAL_IMAGE_NAME, WP_IMAGE_NAME, and WPCLI_IMAGE_NAME in .env (see the environment files section above).

You can reclaim disk space by listing and removing obsolete images that are named or tagged after a single plugin:

Use docker image prune or docker system prune if you want a broader cleanup; only remove images you no longer need.

Entering the development shell

To open an interactive terminal inside the development container, run:

This replaces the legacy dev-workspace/run script. If you still have that file in your project root, delete it — the command above is the only supported entry point.

Requirements

License

GPL-2.0-or-later (see LICENSE).


All versions of dev-workspace with dependencies

PHP Build Version
Package Version
Requires php Version >=7.4
ext-json Version *
composer-plugin-api Version ^2.0
automattic/vipwpcs Version ^3
behat/behat Version ^3.14
codeception/module-asserts Version ^3
codeception/module-cli Version ^2
codeception/module-db Version ^3
codeception/module-filesystem Version ^3
codeception/module-phpbrowser Version ^3
codeception/module-rest Version ^3
codeception/module-webdriver Version ^3
codeception/util-universalframework Version ^1
dealerdirect/phpcodesniffer-composer-installer Version ^1
friendsofphp/php-cs-fixer Version ^3.49
knplabs/github-api Version ^3.16
lucatume/wp-browser Version ^4
nyholm/psr7 Version ^1.8
overtrue/phplint Version ^9.1
phpcompatibility/php-compatibility Version ^9.3
phpmd/phpmd Version ^2.15
phpmetrics/phpmetrics Version ^2.9
phpstan/extension-installer Version ^1.3
phpstan/phpstan Version ^1.10
phpunit/phpunit Version ^10
publishpress/publishpress-phpcs-standards Version ^1
publishpress/translations Version ^1.4
spatie/ray Version ^1.41
squizlabs/php_codesniffer Version ^3.8
symfony/http-client Version ^7.1
symfony/process Version ^6.4
szepeviktor/phpstan-wordpress Version ^1.3
wp-cli/i18n-command Version ^2.6
wp-cli/wp-cli-bundle Version ^2.10
wp-coding-standards/wpcs Version ^3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package publishpress/dev-workspace contains the following files

Loading the files please wait ...