2017 © Pedro PelĂĄez
 

wp-cli-package scaffold-package-command

Scaffolds WP-CLI commands with functional tests, full README.md, and more.

image

wp-cli/scaffold-package-command

Scaffolds WP-CLI commands with functional tests, full README.md, and more.

  • Tuesday, July 24, 2018
  • by schlessera
  • Repository
  • 7 Watchers
  • 31 Stars
  • 114 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 10 Forks
  • 10 Open issues
  • 8 Versions
  • 0 % Grown

The README.md

wp-cli/scaffold-package-command

Scaffolds WP-CLI commands with functional tests, full README.md, and more., (*1)

Testing Build Status CircleCI, (*2)

Quick links: Using | Installing | Contributing | Support, (*3)

Using

This package implements the following commands:, (*4)

wp scaffold package

Generate the files needed for a basic WP-CLI command., (*5)

wp scaffold package <name> [--description=<description>] [--homepage=<homepage>] [--dir=<dir>] [--license=<license>] [--require_wp_cli=<version>] [--require_wp_cli_tests=<version>] [--skip-tests] [--skip-readme] [--skip-github] [--skip-install] [--force]

Default behavior is to create the following files: - command.php - composer.json (with package name, description, and license) - .gitignore, .editorconfig, and .distignore - README.md (via wp scaffold package-readme) - Test harness (via wp scaffold package-tests), (*6)

Unless specified with --dir=<dir>, the command package is placed in the WP-CLI packages/local/ directory., (*7)

OPTIONS, (*8)

<name>
    Name for the new package. Expects <author>/<package> (e.g. 'wp-cli/scaffold-package').

[--description=<description>]
    Human-readable description for the package.

[--homepage=<homepage>]
    Homepage for the package. Defaults to 'https://github.com/<name>'

[--dir=<dir>]
    Specify a destination directory for the command. Defaults to WP-CLI's `packages/local/` directory.

[--license=<license>]
    License for the package.
    ---
    default: MIT
    ---

[--require_wp_cli=<version>]
    Required WP-CLI version for the package.
    ---
    default: ^2.5
    ---

[--require_wp_cli_tests=<version>]
    Required WP-CLI testing framework version for the package.
    ---
    default: ^3.0.11
    ---

[--skip-tests]
    Don't generate files for integration testing.

[--skip-readme]
    Don't generate a README.md for the package.

[--skip-github]
    Don't generate GitHub issue and pull request templates.

[--skip-install]
    Don't install the package after scaffolding.

[--force]
    Overwrite files that already exist.

wp scaffold package-tests

Generate files for writing Behat tests for your command., (*9)

wp scaffold package-tests <dir> [--ci=<provider>] [--force]

WP-CLI makes use of a Behat-based testing framework, which you should use too. This command generates all of the files you need. Functional tests are an integral ingredient of high-quality, maintainable commands. Behat is a great choice as a testing framework because:, (*10)

  • It’s easy to write new tests, which means they’ll actually get written.
  • The tests interface with your command in the same manner as your users interface with your command, and they describe how the command is expected to work in human-readable terms.

Behat tests live in the features/ directory of your project. When you use this command, it will generate a default test that looks like this:, (*11)

Feature: Test that WP-CLI loads.

  Scenario: WP-CLI loads for your tests
    Given a WP install

    When I run `wp eval 'echo "Hello world.";'`
    Then STDOUT should contain:
      """
      Hello world.
      """

Functional tests typically follow this pattern:, (*12)

  • Given some background,
  • When a user performs a specific action,
  • Then the end result should be X (and Y and Z).

View all defined Behat steps available for use with behat -dl:, (*13)

Given /^an empty directory$/
Given /^an empty cache/
Given /^an? ([^\s]+) file:$/
Given /^"([^"]+)" replaced with "([^"]+)" in the ([^\s]+) file$/

The files generated by this command include:, (*14)

  • .travis.yml is the configuration file for Travis CI.
  • bin/install-package-tests.sh will configure your environment to run the tests.
  • bin/test.sh is a test runner that respects contextual Behat tags.
  • features/load-wp-cli.feature is a basic test to confirm WP-CLI can load.
  • features/bootstrap, features/steps, features/extra are Behat configuration files.

After running bin/install-package-tests.sh, you can run the tests with ./vendor/bin/behat. If you find yourself using Behat on a number of projects and don't want to install a copy with each one, you can composer global require behat/behat to install Behat globally on your machine. Make sure ~/.composer/vendor/bin has also been added to your $PATH. Once you've done so, you can run the tests for a project by calling behat., (*15)

For Travis CI, specially-named files in the package directory can be used to modify the generated .travis.yml, where <tag> is one of 'cache', 'env', 'matrix', 'before_install', 'install', 'before_script', 'script': * travis-<tag>.yml - contents used for <tag>: (if present following ignored) * travis-<tag>-append.yml - contents appended to generated <tag>:, (*16)

You can also append to the generated .travis.yml with the file: * travis-append.yml - contents appended to generated .travis.yml, (*17)

ENVIRONMENT, (*18)

The features/bootstrap/FeatureContext.php file expects the WP_CLI_BIN_DIR environment variable., (*19)

WP-CLI Behat framework uses Behat ~2.5, which is installed with Composer., (*20)

OPTIONS, (*21)

<dir>
    Directory path to an existing package to generate tests for.

[--ci=<provider>]
    Create a configuration file for a specific CI provider.
    ---
    default: travis
    options:
      - travis
      - circle
      - github
    ---

[--force]
    Overwrite files that already exist.

EXAMPLES, (*22)

# Generate files for writing Behat tests.
$ wp scaffold package-tests /path/to/command/dir/
Success: Created package test files.

wp scaffold package-readme

Generate a README.md for your command., (*23)

wp scaffold package-readme <dir> [--force] [--branch=<branch>]

Creates a README.md with Using, Installing, and Contributing instructions based on the composer.json file for your WP-CLI package. Run this command at the beginning of your project, and then every time your usage docs change., (*24)

These command-specific docs are generated based composer.json -> 'extra' -> 'commands'. For instance, this package's composer.json includes:, (*25)

{
  "name": "wp-cli/scaffold-package-command",
   // [...]
   "extra": {
       "commands": [
           "scaffold package",
           "scaffold package-tests",
           "scaffold package-readme"
       ]
   }
}

You can also customize the rendering of README.md generally with composer.json -> 'extra' -> 'readme'. For example, runcommand/hook's composer.json includes:, (*26)

{
    "extra": {
        "commands": [
            "hook"
        ],
        "readme": {
            "shields": [
                "[![Build Status](https://travis-ci.org/runcommand/reset-password.svg?branch=master)](https://travis-ci.org/runcommand/reset-password)"
            ],
            "sections": [
                "Using",
                "Installing",
                "Support"
            ],
            "support": {
                "body": "https://raw.githubusercontent.com/runcommand/runcommand-theme/master/bin/readme-partials/support-open-source.md"
            },
            "show_powered_by": false
        }
    }
}

In this example:, (*27)

  • "shields" supports arbitrary images as shields to display.
  • "sections" permits defining arbitrary sections (instead of default Using, Installing and Contributing).
  • "support" -> "body" uses a remote Markdown file as the section contents. This can also be a local file path, or a string.
  • "show_powered_by" shows or hides the Powered By mention at the end of the readme.

For sections, "pre", "body" and "post" are supported. Example:, (*28)

"support": {
  "pre": "highlight.md",
  "body": "https://raw.githubusercontent.com/runcommand/runcommand-theme/master/bin/readme-partials/support-open-source.md",
  "post": "This is additional text to show after main body content."
},

In this example:, (*29)

  • "pre" content is pulled from local highlight.md file.
  • "body" content is pulled from remote URL.
  • "post" is a string.

OPTIONS, (*30)

<dir>
    Directory path to an existing package to generate a readme for.

[--force]
    Overwrite the readme if it already exists.

[--branch=<branch>]
    Name of default branch of the underlying repository. Defaults to master.

wp scaffold package-github

Generate GitHub configuration files for your command., (*31)

wp scaffold package-github <dir> [--force]

Creates a variety of files to better manage your project on GitHub. These files include:, (*32)

  • .github/ISSUE_TEMPLATE - Text displayed when a user opens a new issue.
  • .github/PULL_REQUEST_TEMPLATE - Text displayed when a user submits a pull request.
  • .github/settings.yml - Configuration file for the Probot settings app.

OPTIONS, (*33)

<dir>
    Directory path to an existing package to generate GitHub configuration for.

[--force]
    Overwrite files that already exist.

Installing

Installing this package requires WP-CLI v2.11 or greater. Update to the latest stable release with wp cli update., (*34)

Once you've done so, you can install the latest stable version of this package with:, (*35)

wp package install wp-cli/scaffold-package-command:@stable

To install the latest development version of this package, use the following command instead:, (*36)

wp package install wp-cli/scaffold-package-command:dev-main

Contributing

We appreciate you taking the initiative to contribute to this project., (*37)

Contributing isn’t limited to just code. We encourage you to contribute in the way that best fits your abilities, by writing tutorials, giving a demo at your local meetup, helping other users with their support questions, or revising our documentation., (*38)

For a more thorough introduction, check out WP-CLI's guide to contributing. This package follows those policy and guidelines., (*39)

Reporting a bug

Think you’ve found a bug? We’d love for you to help us get it fixed., (*40)

Before you create a new issue, you should search existing issues to see if there’s an existing resolution to it, or if it’s already been fixed in a newer version., (*41)

Once you’ve done a bit of searching and discovered there isn’t an open or fixed issue for your bug, please create a new issue. Include as much detail as you can, and clear steps to reproduce if possible. For more guidance, review our bug report documentation., (*42)

Creating a pull request

Want to contribute a new feature? Please first open a new issue to discuss whether the feature is a good fit for the project., (*43)

Once you've decided to commit the time to seeing your pull request through, please follow our guidelines for creating a pull request to make sure it's a pleasant experience. See "Setting up" for details specific to working on this package locally., (*44)

Support

GitHub issues aren't for general support questions, but there are other venues you can try: https://wp-cli.org/#support, (*45)

This README.md is generated dynamically from the project's codebase using wp scaffold package-readme (doc). To suggest changes, please submit a pull request against the corresponding part of the codebase., (*46)

The Versions

24/07 2018

dev-master

9999999-dev https://github.com/wp-cli/scaffold-package-command

Scaffolds WP-CLI commands with functional tests, full README.md, and more.

  Sources   Download

MIT

The Requires

 

The Development Requires

24/07 2018

v0.5.0

0.5.0.0 https://github.com/wp-cli/scaffold-package-command

Scaffolds WP-CLI commands with functional tests, full README.md, and more.

  Sources   Download

MIT

The Requires

 

The Development Requires

08/03 2018

dev-move-wp-cli-to-dev-deps

dev-move-wp-cli-to-dev-deps https://github.com/wp-cli/scaffold-package-command

Scaffolds WP-CLI commands with functional tests, full README.md, and more.

  Sources   Download

MIT

The Development Requires

02/08 2017

v0.4.0

0.4.0.0 https://github.com/wp-cli/scaffold-package-command

Scaffold WP-CLI commands with functional tests

  Sources   Download

MIT

The Development Requires

25/05 2017

v0.3.0

0.3.0.0 https://github.com/wp-cli/scaffold-package-command

Scaffold WP-CLI commands with functional tests

  Sources   Download

MIT

The Development Requires

27/11 2016

v0.2.0

0.2.0.0 https://github.com/wp-cli/scaffold-package-command

Scaffold WP-CLI commands with functional tests

  Sources   Download

MIT

The Development Requires

06/10 2016

v0.1.0

0.1.0.0 https://github.com/wp-cli/scaffold-package-command

Scaffold WP-CLI commands with functional tests

  Sources   Download

MIT

The Development Requires

08/09 2016

dev-render-mustache

dev-render-mustache https://github.com/wp-cli/scaffold-package-command

Scaffold WP-CLI commands with functional tests

  Sources   Download

MIT

The Development Requires