-
Notifications
You must be signed in to change notification settings - Fork 1
/
checklist.html
129 lines (117 loc) · 7.32 KB
/
checklist.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.7.4 at 15 Aug 2024
| Rendered using Bloomreach Forge Maven Skin 3.2.1 based on Apache Maven Fluido Skin
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="Date-Revision-yyyymmdd" content="20240815" />
<meta http-equiv="Content-Language" content="en" />
<title>Bloomreach Forge Documentation – Quality Checklist</title>
<link rel="stylesheet" href="./css/forge-maven-skin-syntaxhighlighter-3.2.1.min.css"/>
<link rel="stylesheet" href="./css/forge-maven-skin-3.2.1.min.css"/>
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<link rel="icon" type="image/png" href="./images/skin/logo_64.png" sizes="64x64">
<script type="text/javascript" src="./js/forge-maven-skin-syntaxhighlighter-3.2.1.min.js"></script>
<script type="text/javascript" src="./js/forge-maven-skin-3.2.1.min.js"></script>
<style>.github-fork-ribbon:before { background-color: green; }</style>
</head>
<body class="topBarDisabled">
<a target="_blank" class="github-fork-ribbon right" href="https://github.com/bloomreach-forge/bloomreach-forge.github.io"
data-ribbon="Fork me on GitHub" title="Fork me on GitHub">Fork me on GitHub</a>
<div class="container-fluid">
<div id="banner">
<div id="logo">
<a href="https://bloomreach-forge.github.io">
<img src="./images/skin/logo.png" alt="Bloomreach Forge Logo" />
</a>
</div>
<div class="pull-left"> <div id="bannerLeft"> <h1>Bloomreach Forge Documentation</h1>
</div>
</div>
<div class="pull-right"></div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<div class="links">
<a href="https://xmdocumentation.bloomreach.com">xmdocumentation.bloomreach.com</a>
<a href="https://github.com/bloomreach-forge">github.com/bloomreach-forge</a>
</div>
<ul class="breadcrumb">
<li id="publishDate">published: 15 Aug 2024
</li>
</ul>
<div class="clear"><hr/></div>
</div>
<div class="row-fluid">
<div id="leftColumn" class="span2">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li> <a href="index.html" title="Home"> <span class="none"></span> Home</a> </li>
<li> <a href="project-list.html" title="Project List"> <span class="none"></span> Project List</a> </li>
<li> <a href="development.html" title="Development"> <span class="none"></span> Development</a> </li>
<li> <a href="using-git-flow.html" title="Using Git Flow"> <span class="none"></span> Using Git Flow</a> </li>
<li class="active"> <a href="#"><span class="none"></span>Quality Checklist</a>
</li>
</ul>
<hr />
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /> </a>
</div>
</div>
</div>
<div id="bodyColumn" class="span10" >
<div class="section">
<h2><a name="Quality_Checklist"></a>Quality Checklist</h2>
<p>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!</p>
<div class="section">
<h3><a name="a1._Clear_project_name_and_tag_line"></a>1. Clear project name and tag line</h3>
<p>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.</p>
<p>Add a tag line / description describing what it does for the user, preferably starting with a verb.</p></div>
<div class="section">
<h3><a name="a2._Documentation_available"></a>2. Documentation available</h3>
<p>Without documentation the plugin doesn’t exists! And screenshots rule!</p>
<p>Mostly <a class="externalLink" href="https://pages.github.com/">GitHub Pages</a> is used to publish documents from the <tt>master/docs</tt> folder to a documentation site at <tt>https://bloomreach-forge.github.io/[project-name]/</tt>. Documentation is generated with Maven site plugin, using the <a class="externalLink" href="https://bloomreach-forge.github.io/forge-maven-skin/">Bloomreach Forge Maven Skin</a> that is also a Forge project.</p></div>
<div class="section">
<h3><a name="a3._Artifact_group_and_package"></a>3. Artifact group and package</h3>
<p>To distinct from other plugins, use an artifact group id and Java package that both start with <tt>org.bloomreach.forge.[project-name]</tt>. In the project name only use lowercase letters [a-z].</p>
<p>Older projects use <tt>org.onehippo.forge.[project-name]</tt>.</p></div>
<div class="section">
<h3><a name="a4._Use_project_pom_as_parent"></a>4. Use project pom as parent</h3>
<p>Use the project pom <tt>org.onehippo.cms7:hippo-cms7-project</tt> 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. </p>
<p>The release pom <tt>org.onehippo.cms7:hippo-cms7-release</tt> 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. </p></div>
<div class="section">
<h3><a name="a5._Demo_project_available"></a>5. Demo project available</h3>
<p>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.</p></div>
<div class="section">
<h3><a name="a6._Delivery_tier_best_practices"></a>6. Delivery tier best practices</h3>
<p>To the plugin’s delivery tier (HST) code, apply our <a class="externalLink" href="https://documentation.bloomreach.com/library/setup/best-practices.html">best practices</a>.</p>
<p>Some key point are: use limits on queries, have translatable labels, make smart usage of logging. </p></div>
<div class="section">
<h3><a name="a7._Hide_any_namespace"></a>7. Hide any namespace</h3>
<p>If the plugin defines a namespace and that namespace is not intended for editing in the CMS, make sure to hide it. See <a class="externalLink" href="https://documentation.bloomreach.com/library/concepts/plugins/hide-a-namespace-in-the-cms-editor.html">Hide a Namespace in the CMS editor</a> for how this can be achieved.</p></div>
<div class="section">
<h3><a name="a8._Clustering"></a>8. Clustering</h3>
<p>Make sure the plugin runs within a clustered environment, preferably without additional configuration.</p></div></div>
</div>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p class="copyright">Copyright © 2017–2024.
<a href="https://www.bloomreach.com">Bloomreach Inc.</a>.
</p>
</div>
</div>
</footer>
</body>
</html>