Should we form a "League of Extraordinary WP-CLI Packages"? #3197

Closed
danielbachhuber opened this Issue Jul 26, 2016 · 11 comments

Projects

None yet

5 participants

@danielbachhuber
Member

The League of Extraordinary Packages is:

a group of developers who have banded together to build solid, well tested PHP packages using modern coding standards.

This seems like something we might want to emulate for WP-CLI packages. On a high-level, I expect WP-CLI packages to be:

  • Reliable - Work well, and do what they need to do.
  • Focused - Solve a specific problem.
  • Well-maintained - Bugs are fixed and issues responded to (if not resolved) in a timely manner
  • Tested - Good amount of functional test coverage, with unit test coverage as relevant.
  • Understandable - Follow reasonably common implementation standards.

Ultimately, I'd like WP-CLI packages to meet or exceed the expectations users already have of WP-CLI. I think there are some systems (both technical and organizational) we could design to help encourage this. Ideas:

  • Automated scanning of packages as they're submitted to the index, or on an on-going basis #3177
  • Written guidelines for package maintainers to follow.
  • Highlight packages in the index that are regularly updated, have multiple maintainers, or reflect some other quality we hold to be important.

Consider this to be an open thread; I'm curious to here what people think about how we get from here to there.

@danielbachhuber danielbachhuber changed the title from Consider a "League of Extraordinary WP-CLI Packages" to Should we form a "League of Extraordinary WP-CLI Packages"? Jul 26, 2016
@danielbachhuber
Member

@wp-cli/package-authors I'd like to get your thoughts on this issue when you have a moment, or even more broadly on: what can I (and WP-CLI generally) do to help support your package maintenance efforts?

@westonruter
Contributor

It would be useful if any automated tests for packages could be run regularly on the latest WP-CLI codebase. If there was a process that iterates over each package and runs the package's tests on the current development version, then this would provide a useful service for package authors to inform them when there is a breakage and it would serve as a way to inform WP-CLI of backwards-incompatible changes being introduced.

@danielbachhuber
Member

It would be useful if any automated tests for packages could be run regularly on the latest WP-CLI codebase.

This is actually the case right now with wp scaffold package-tests: https://github.com/wp-cli/scaffold-package-command#wp-scaffold-package-tests

Specifically, it uses the WP-CLI nightly build as the basis for the test suite run. It might be helpful to support both though: wp-cli/scaffold-package-command#31

@westonruter
Contributor

But this still depends on the package developers to do something on their end to run the tests, right? I meant specifically to run the tests on the WP-CLI side periodically. Given each community package, WP-CLI could iterate over each of them on its own weekly build routine to do a health check on all community packages to find out if there are regressions/incompatibilities as WP-CLI core codebase evolves.

@danielbachhuber
Member

But this still depends on the package developers to do something on their end to run the tests, right?

Correct.

I meant specifically to run the tests on the WP-CLI side periodically. Given each community package, WP-CLI could iterate over each of them on its own weekly build routine to do a health check on all community packages to find out if there are regressions/incompatibilities as WP-CLI core codebase evolves.

Good idea :)

@voldemortensen
Contributor

I like this idea. I don't currently have any packages, but I have at least one kicking around in idea form.

@szepeviktor
Member

@voldemortensen Could you share your idea?

@aaemnnosttv
Member

I think a key point to add to that list of criteria would be something along the lines of:

  • Follows semantic versioning.

WP-CLI would probably then want to define some guidelines as to what that means specifically (what version of Semver, etc), but IMO this should be a fairly baseline requirement for an "Extraordinary" package.

Also, it might be cool to offer such packages as a subset in browse?

wp package browse --league

Where can we start to collaborate on some guidelines?

@danielbachhuber
Member

Where can we start to collaborate on some guidelines?

Ideally, these guidelines are captured in code, such that you can execute the code against the WP-CLI package to see what percentage of the guidelines it follows.

@danielbachhuber
Member

I've dropped some of these onto a new wish list for the website: http://wp-cli.org/docs/wish-list/

@danielbachhuber danielbachhuber referenced this issue in wp-cli/package-index Nov 4, 2016
Open

Add my wp-cli-salts-generator #90

@danielbachhuber
Member

Closing in favor of the wish list for now. There are a couple of substantial improvements I'd like to make to the package authoring experience but, given they're substantial, they'll need to come when someone has the bandwidth to see them over the finish line.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment