This page contains a quality checklist for community maintained projects hosted at the Hippo Forge. If your project meets all items in this list, it rocks!
Give your project a name that makes it unique and that explains what it does. If possible, make the name stand out of other projects that do the same thing but in a different way.
Without documentation the plugin doesn’t exists! And screenshots rule!
We use GitHub Pages to publish documents from the master/docs folder to a documentation site at https://onehippo-forge.github.io/[project-name]/
To distinct from other plugins, use an artifact group id and Java package that both start with org.onehippo.forge.[project-name]. In the project name only use lowercase letters [a-z].
Use the project pom org.onehippo.cms7:hippo-cms7-project as a parent to the plugin project. It provides a number of standard pom sections and has some basic dependencies defined that are common to all Hippo projects.
The release pom org.onehippo.cms7:hippo-cms7-release is extended from that and defines too much (like standard plugin versions, Cargo configuration) to be used as parent pom. It is meant for implementation (end) projects.
Provide an example demo project within the code as Maven submodule, to demonstrate the functionality.
To the plugin’s delivery tier (HST) code, apply our best practices.
Some key point are: use limits on queries, have translatable labels, make smart usage of logging.
If the plugin defines a namespace and that namespace is not intended for editing in the CMS, make sure to hide it. See Hide a Namespace in the CMS editor for how this can be achieved.