This page contains a quality checklist for community maintained projects hosted at the Bloomreach 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 is. If possible, make the name stand out of other projects that do the same thing but in a different way.
Add a tag line / description describing what it does for the user, preferably starting with a verb.
Without documentation the plugin doesn’t exists! And screenshots rule!
Mostly GitHub Pages is used to publish documents from the master/docs folder to a documentation site at https://bloomreach-forge.github.io/[project-name]/. Documentation is generated with Maven site plugin, using the Bloomreach Forge Maven Skin that is also a Forge project.
To distinct from other plugins, use an artifact group id and Java package that both start with org.bloomreach.forge.[project-name]. In the project name only use lowercase letters [a-z].
Older projects use org.onehippo.forge.[project-name].
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 Bloomreach 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. Best practice is to not include the demo as <module> in the root pom to avoid it from being released.
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.