@mattab opened this Issue on July 7th 2016 Owner

Plugin automated tests check

  • [x] Check the plugin has integration + system tests defined in tests/

If the plugin defines some UI (ie. a directory templates/ or javascripts or angularjs is present)...

  • [x] Check that there is at least one UI test defined
  • [x] Check that plugin includes at least one screenshot image file in screenshots/ folder

    Plugin communication

  • [x] Check that Github repository has a description set
  • [x] Check that plugin.json description does not contain TODO (the plugin description says TODO when it wasn't detected in 58ce312 )
  • [x] Check that plugin.json description field is the same as the Github repository description

    Plugin README file

  • [x] Check that README has at least the following sections: Description, Changelog, Support
  • [x] Check that README includes the travis build badge with status on master branch.
    • [x] if plugin uses git flow, check that the README also includes the badge on develop branch

Check that README > Support section information is correctly set:

  • [x] for open source plugins: link to the plugin issue tracker
  • [x] for both: add a sentence to invite clients/users to report issues such as We welcome your feedback about this plugin. Please report bugs or suggest enhancements at %s

    plugin.json checks

  • [x] Make sure small errors are detected automatically: the plugin name in plugin.json must == the namespace name, otherwise autoloading errors appear after installing a plugin.
  • [x] If there is a composer.json file, check that the version is the version in plugin.json
  • [x] for plugins in Piwik github organisation, and homepage is http://plugins.piwik.org/PLUGIN_NAME, authors.name is Piwik, authors.email is hello<a class='mention' href='https://github.com/piwik'>@piwik</a>.org and authors.homepage is http://piwik.org
  • [x] for all open source plugins, check that license is GPL v3+

    Plugin files

Check that PHP and JS files have the proper header set.

  • [x] For open source code, the header is:
/**
 * Piwik - free/libre analytics platform
 *
 * <a class='mention' href='https://github.com/link'>@link</a> http://piwik.org
 * <a class='mention' href='https://github.com/license'>@license</a> http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 */

Not included in MVP

these could be done later:

  • Plugins should also include architectural docs so future devs can understand how the plugin works and what it does w/o digging through confluence or the code base.
  • Automatically test reports using Report class metadata. Instead of manually designing system tests, we can probably test all reports w/ preset set of cases (eg, multiple sites, segment, multiple dates, range, different periods, etc.).
  • Check that plugin has composer.json file (or: https://github.com/piwik/piwik/issues/5921 would be better)
  • check if the plugin has some logging statement and if not, output a warning or recommendation to add logging statements?

    Pull request

A pull request was created implementing most of this, and is pending review/merge: https://github.com/piwik/travis-scripts/pull/18/files

@hpvd commented on July 8th 2016

maybe this could be also be covered/solved with these tests:
Name, descriptions etc of plugins uncomplete / got partly cut/hidden
https://github.com/piwik/piwik/issues/10255

?

@mattab commented on February 20th 2017 Owner

not needed anymore

This Issue was closed on February 20th 2017
Powered by GitHub Issue Mirror