releasehx 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. checksums.yaml +7 -0
  2. data/README.adoc +2915 -0
  3. data/bin/releasehx +7 -0
  4. data/bin/rhx +7 -0
  5. data/bin/rhx-mcp +7 -0
  6. data/bin/sourcerer +32 -0
  7. data/build/docs/CNAME +1 -0
  8. data/build/docs/Gemfile.lock +95 -0
  9. data/build/docs/_config.yml +36 -0
  10. data/build/docs/config-reference.adoc +4104 -0
  11. data/build/docs/config-reference.json +1546 -0
  12. data/build/docs/index.adoc +2915 -0
  13. data/build/docs/landing.adoc +21 -0
  14. data/build/docs/manpage.adoc +68 -0
  15. data/build/docs/releasehx.1 +281 -0
  16. data/build/docs/releasehx_readme.html +367 -0
  17. data/build/docs/sample-config.adoc +9 -0
  18. data/build/docs/sample-config.yml +251 -0
  19. data/build/docs/schemagraphy_readme.html +0 -0
  20. data/build/docs/sourcerer_readme.html +46 -0
  21. data/build/snippets/helpscreen.txt +29 -0
  22. data/lib/docopslab/mcp/asset_packager.rb +30 -0
  23. data/lib/docopslab/mcp/manifest.rb +67 -0
  24. data/lib/docopslab/mcp/resource_pack.rb +46 -0
  25. data/lib/docopslab/mcp/server.rb +92 -0
  26. data/lib/docopslab/mcp.rb +6 -0
  27. data/lib/releasehx/cli.rb +937 -0
  28. data/lib/releasehx/configuration.rb +215 -0
  29. data/lib/releasehx/generated.rb +17 -0
  30. data/lib/releasehx/helpers.rb +58 -0
  31. data/lib/releasehx/mcp/asset_packager.rb +21 -0
  32. data/lib/releasehx/mcp/assets/agent-config-guide.md +178 -0
  33. data/lib/releasehx/mcp/assets/config-def.yml +1426 -0
  34. data/lib/releasehx/mcp/assets/config-reference.adoc +4104 -0
  35. data/lib/releasehx/mcp/assets/config-reference.json +1546 -0
  36. data/lib/releasehx/mcp/assets/sample-config.yml +251 -0
  37. data/lib/releasehx/mcp/manifest.rb +18 -0
  38. data/lib/releasehx/mcp/resource_pack.rb +26 -0
  39. data/lib/releasehx/mcp/server.rb +57 -0
  40. data/lib/releasehx/mcp.rb +7 -0
  41. data/lib/releasehx/ops/check_ops.rb +136 -0
  42. data/lib/releasehx/ops/draft_ops.rb +173 -0
  43. data/lib/releasehx/ops/enrich_ops.rb +221 -0
  44. data/lib/releasehx/ops/template_ops.rb +61 -0
  45. data/lib/releasehx/ops/write_ops.rb +124 -0
  46. data/lib/releasehx/rest/clients/github.yml +46 -0
  47. data/lib/releasehx/rest/clients/gitlab.yml +31 -0
  48. data/lib/releasehx/rest/clients/jira.yml +31 -0
  49. data/lib/releasehx/rest/yaml_client.rb +418 -0
  50. data/lib/releasehx/rhyml/adapter.rb +740 -0
  51. data/lib/releasehx/rhyml/change.rb +167 -0
  52. data/lib/releasehx/rhyml/liquid.rb +13 -0
  53. data/lib/releasehx/rhyml/loaders.rb +37 -0
  54. data/lib/releasehx/rhyml/mappings/github.yaml +60 -0
  55. data/lib/releasehx/rhyml/mappings/gitlab.yaml +73 -0
  56. data/lib/releasehx/rhyml/mappings/jira.yaml +29 -0
  57. data/lib/releasehx/rhyml/mappings/verb_past_tenses.yml +98 -0
  58. data/lib/releasehx/rhyml/release.rb +144 -0
  59. data/lib/releasehx/rhyml.rb +15 -0
  60. data/lib/releasehx/sgyml/helpers.rb +45 -0
  61. data/lib/releasehx/transforms/adf_to_markdown.rb +307 -0
  62. data/lib/releasehx/version.rb +7 -0
  63. data/lib/releasehx.rb +69 -0
  64. data/lib/schemagraphy/attribute_resolver.rb +48 -0
  65. data/lib/schemagraphy/cfgyml/definition.rb +90 -0
  66. data/lib/schemagraphy/cfgyml/doc_builder.rb +52 -0
  67. data/lib/schemagraphy/cfgyml/path_reference.rb +24 -0
  68. data/lib/schemagraphy/data_query/json_pointer.rb +42 -0
  69. data/lib/schemagraphy/loader.rb +59 -0
  70. data/lib/schemagraphy/regexp_utils.rb +215 -0
  71. data/lib/schemagraphy/safe_expression.rb +189 -0
  72. data/lib/schemagraphy/schema_utils.rb +124 -0
  73. data/lib/schemagraphy/tag_utils.rb +32 -0
  74. data/lib/schemagraphy/templating.rb +104 -0
  75. data/lib/schemagraphy.rb +17 -0
  76. data/lib/sourcerer/builder.rb +120 -0
  77. data/lib/sourcerer/jekyll/bootstrapper.rb +78 -0
  78. data/lib/sourcerer/jekyll/liquid/file_system.rb +74 -0
  79. data/lib/sourcerer/jekyll/liquid/filters.rb +215 -0
  80. data/lib/sourcerer/jekyll/liquid/tags.rb +44 -0
  81. data/lib/sourcerer/jekyll/monkeypatches.rb +73 -0
  82. data/lib/sourcerer/jekyll.rb +26 -0
  83. data/lib/sourcerer/plaintext_converter.rb +75 -0
  84. data/lib/sourcerer/templating.rb +190 -0
  85. data/lib/sourcerer.rb +322 -0
  86. data/specs/data/api-client-schema.yaml +160 -0
  87. data/specs/data/config-def.yml +1426 -0
  88. data/specs/data/mcp-manifest.yml +50 -0
  89. data/specs/data/rhyml-mapping-schema.yaml +410 -0
  90. data/specs/data/rhyml-schema.yaml +152 -0
  91. metadata +376 -0
@@ -0,0 +1,367 @@
1
+ <div class="sect1">
2
+ <h2 id="releasehx-api">ReleaseHx API</h2>
3
+ <div class="sectionbody">
4
+ <div class="paragraph">
5
+ <p>While most users will interact with ReleaseHx via the <code>rhx</code> command-line tool, the gem can also be used as a library in your own Ruby projects.
6
+ The full API reference will be available via RDoc comments in the source code.</p>
7
+ </div>
8
+ <div class="paragraph">
9
+ <p>Here is a high-level overview of the main components to get you started:</p>
10
+ </div>
11
+ <div class="sect2">
12
+ <h3 id="core-data-models-releasehx-rhyml">Core Data Models (<code>ReleaseHx::RHYML</code>)</h3>
13
+ <div class="paragraph">
14
+ <p>The classes within the <code>ReleaseHx::RHYML</code> module are the core data objects for the application.</p>
15
+ </div>
16
+ <div class="dlist">
17
+ <dl>
18
+ <dt class="hdlist1"><code>ReleaseHx::RHYML::Release</code></dt>
19
+ <dd>
20
+ <p>Represents a single product release, containing metadata (like version code and date) and a collection of <code>Change</code> objects.</p>
21
+ </dd>
22
+ <dt class="hdlist1"><code>ReleaseHx::RHYML::Change</code></dt>
23
+ <dd>
24
+ <p>Represents a single change within a release (ex: a bug fix or a new feature), containing properties like a summary, note, type, and tags.</p>
25
+ </dd>
26
+ </dl>
27
+ </div>
28
+ <div class="paragraph">
29
+ <p>You will typically create or receive a <code>Release</code> object to work with.</p>
30
+ </div>
31
+ </div>
32
+ <div class="sect2">
33
+ <h3 id="creating-a-release-releasehx-draftops">Creating a Release (<code>ReleaseHx::DraftOps</code>)</h3>
34
+ <div class="paragraph">
35
+ <p>The <code>ReleaseHx::DraftOps</code> module provides methods for creating a <code>Release</code> object from a source.</p>
36
+ </div>
37
+ <div class="ulist">
38
+ <ul>
39
+ <li>
40
+ <p>Use <code>DraftOps.from_payload</code> to take a raw JSON payload from an API (like GitHub or Jira) and convert it into a <code>Release</code> object, according to a mapping configuration.</p>
41
+ </li>
42
+ </ul>
43
+ </div>
44
+ </div>
45
+ <div class="sect2">
46
+ <h3 id="generating-output-releasehx-enrichops-and-draftops">Generating Output (<code>ReleaseHx::EnrichOps</code> and <code>DraftOps</code>)</h3>
47
+ <div class="paragraph">
48
+ <p>Once you have a <code>Release</code> object, you can generate output files.</p>
49
+ </div>
50
+ <div class="ulist">
51
+ <ul>
52
+ <li>
53
+ <p>Use <code>DraftOps.process_template_content</code> to generate a lightweight draft (like Markdown, AsciiDoc, or RHYML) from a <code>Release</code> object.</p>
54
+ </li>
55
+ <li>
56
+ <p>Use <code>EnrichOps.enrich_from_rhyml</code> to generate rich-text output (like HTML or PDF) from a <code>Release</code> object.</p>
57
+ </li>
58
+ <li>
59
+ <p>Use <code>EnrichOps.enrich_from_file</code> to generate rich-text output directly from a source file (ex: converting <code>my-release.md</code> to <code>my-release.html</code>).
60
+ === Issue-data Mapping</p>
61
+ </li>
62
+ </ul>
63
+ </div>
64
+ <div class="paragraph">
65
+ <p>In designing a domain-specific data model, I had to mimic the logic of the domain, which is dominated by Jira and GitHub, for better or worse.
66
+ Here is the way fields are mapped/adapated by default for converting <em>issue</em> data to <em>change</em> data.</p>
67
+ </div>
68
+ <table class="tableblock frame-all grid-all stretch">
69
+ <caption class="title">Table 1. Upstream/source issue data mapping table</caption>
70
+ <colgroup>
71
+ <col style="width: 20%;">
72
+ <col style="width: 20%;">
73
+ <col style="width: 20%;">
74
+ <col style="width: 20%;">
75
+ <col style="width: 20%;">
76
+ </colgroup>
77
+ <thead>
78
+ <tr>
79
+ <th class="tableblock halign-left valign-top">Jira</th>
80
+ <th class="tableblock halign-left valign-top">GitHub</th>
81
+ <th class="tableblock halign-left valign-top">GitLab</th>
82
+ <th class="tableblock halign-left valign-top">RHYML</th>
83
+ <th class="tableblock halign-left valign-top">Ruby/Liquid</th>
84
+ </tr>
85
+ </thead>
86
+ <tbody>
87
+ <tr>
88
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
89
+ <p>N/A</p>
90
+ </div></div></td>
91
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
92
+ <p>N/A</p>
93
+ </div></div></td>
94
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
95
+ <p>N/A</p>
96
+ </div></div></td>
97
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
98
+ <p><code>chid</code></p>
99
+ </div></div></td>
100
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
101
+ <p><code>chid</code></p>
102
+ </div></div></td>
103
+ </tr>
104
+ <tr>
105
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
106
+ <p><code>key</code></p>
107
+ </div></div></td>
108
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
109
+ <p><code>number</code></p>
110
+ </div></div></td>
111
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
112
+ <p><code>iid</code></p>
113
+ </div></div></td>
114
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
115
+ <p><code>tick</code></p>
116
+ </div></div></td>
117
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
118
+ <p><code>tick</code></p>
119
+ </div></div></td>
120
+ </tr>
121
+ <tr>
122
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
123
+ <p><code>commit</code> (custom field, if available)</p>
124
+ </div></div></td>
125
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
126
+ <p>associated commit hash (via PR merge or commit references)</p>
127
+ </div></div></td>
128
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
129
+ <p>commit hash from merge request or commit ref</p>
130
+ </div></div></td>
131
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
132
+ <p><code>hash</code></p>
133
+ </div></div></td>
134
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
135
+ <p><code>hash</code></p>
136
+ </div></div></td>
137
+ </tr>
138
+ <tr>
139
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
140
+ <p><code>issuetype</code> or label matching slug in <code>types</code></p>
141
+ </div></div></td>
142
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
143
+ <p><code>type</code> or label matching slug in <code>types</code></p>
144
+ </div></div></td>
145
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
146
+ <p><code>issue_type</code> or label matching slug in <code>types</code></p>
147
+ </div></div></td>
148
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
149
+ <p><code>type</code></p>
150
+ </div></div></td>
151
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
152
+ <p><code>type</code></p>
153
+ </div></div></td>
154
+ </tr>
155
+ <tr>
156
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
157
+ <p><code>component</code></p>
158
+ </div></div></td>
159
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
160
+ <p>label: <code>component:&lt;component&gt;</code></p>
161
+ </div></div></td>
162
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
163
+ <p>label: <code>component::&lt;component&gt;</code> or scoped labels</p>
164
+ </div></div></td>
165
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
166
+ <p><code>part</code></p>
167
+ </div></div></td>
168
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
169
+ <p><code>part</code></p>
170
+ </div></div></td>
171
+ </tr>
172
+ <tr>
173
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
174
+ <p><code>summary</code></p>
175
+ </div></div></td>
176
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
177
+ <p><code>title</code></p>
178
+ </div></div></td>
179
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
180
+ <p><code>title</code></p>
181
+ </div></div></td>
182
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
183
+ <p><code>summ</code></p>
184
+ </div></div></td>
185
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
186
+ <p><code>summ</code></p>
187
+ </div></div></td>
188
+ </tr>
189
+ <tr>
190
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
191
+ <p>N/A</p>
192
+ </div></div></td>
193
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
194
+ <p>N/A</p>
195
+ </div></div></td>
196
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
197
+ <p>N/A</p>
198
+ </div></div></td>
199
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
200
+ <p><code>head</code></p>
201
+ </div></div></td>
202
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
203
+ <p><code>head</code></p>
204
+ </div></div></td>
205
+ </tr>
206
+ <tr>
207
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
208
+ <p><em>custom field</em></p>
209
+ </div></div></td>
210
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
211
+ <p><code>## Release Note</code> in body</p>
212
+ </div></div></td>
213
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
214
+ <p><code>## Release Note</code> in body</p>
215
+ </div></div></td>
216
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
217
+ <p><code>note</code></p>
218
+ </div></div></td>
219
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
220
+ <p><code>note</code></p>
221
+ </div></div></td>
222
+ </tr>
223
+ <tr>
224
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
225
+ <p>label: <code>deprecation</code></p>
226
+ </div></div></td>
227
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
228
+ <p>label: <code>deprecation</code></p>
229
+ </div></div></td>
230
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
231
+ <p>label: <code>deprecation</code></p>
232
+ </div></div></td>
233
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
234
+ <p><code>tags: [deprecation]</code></p>
235
+ </div></div></td>
236
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
237
+ <p><code>tags['deprecation']</code> / <code>deprecation</code> Boolean / <code>.deprecation?</code></p>
238
+ </div></div></td>
239
+ </tr>
240
+ <tr>
241
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
242
+ <p>label: <code>breaking</code></p>
243
+ </div></div></td>
244
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
245
+ <p>label: <code>breaking</code></p>
246
+ </div></div></td>
247
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
248
+ <p>label: <code>breaking</code></p>
249
+ </div></div></td>
250
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
251
+ <p><code>tags: [breaking]</code></p>
252
+ </div></div></td>
253
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
254
+ <p><code>tags['breaking']</code> / <code>breaking</code> Boolean / <code>.breaking?</code></p>
255
+ </div></div></td>
256
+ </tr>
257
+ <tr>
258
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
259
+ <p>label: <code>experimental</code></p>
260
+ </div></div></td>
261
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
262
+ <p>label: <code>experimental</code></p>
263
+ </div></div></td>
264
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
265
+ <p>label: <code>experimental</code></p>
266
+ </div></div></td>
267
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
268
+ <p><code>tags: [experimental]</code></p>
269
+ </div></div></td>
270
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
271
+ <p><code>tags['experimental']</code> / <code>experimental</code> Boolean / <code>.experimental?</code></p>
272
+ </div></div></td>
273
+ </tr>
274
+ <tr>
275
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
276
+ <p>label: <code>highlight</code></p>
277
+ </div></div></td>
278
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
279
+ <p>label: <code>highlight</code></p>
280
+ </div></div></td>
281
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
282
+ <p>label: <code>highlight</code></p>
283
+ </div></div></td>
284
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
285
+ <p><code>tags: [highlight]</code></p>
286
+ </div></div></td>
287
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
288
+ <p><code>tags['highlight']</code> / <code>highlight</code> Boolean / <code>.highlight?</code></p>
289
+ </div></div></td>
290
+ </tr>
291
+ <tr>
292
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
293
+ <p>label: <code>release_note_needed</code></p>
294
+ </div></div></td>
295
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
296
+ <p>label: <code>release_note_needed</code></p>
297
+ </div></div></td>
298
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
299
+ <p>label: <code>release_note_needed</code></p>
300
+ </div></div></td>
301
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
302
+ <p>N/A</p>
303
+ </div></div></td>
304
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
305
+ <p>N/A</p>
306
+ </div></div></td>
307
+ </tr>
308
+ <tr>
309
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
310
+ <p>label: <code>changelog</code></p>
311
+ </div></div></td>
312
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
313
+ <p>label: <code>changelog</code></p>
314
+ </div></div></td>
315
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
316
+ <p>label: <code>changelog</code></p>
317
+ </div></div></td>
318
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
319
+ <p>N/A</p>
320
+ </div></div></td>
321
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
322
+ <p>N/A</p>
323
+ </div></div></td>
324
+ </tr>
325
+ <tr>
326
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
327
+ <p><code>fixVersions</code></p>
328
+ </div></div></td>
329
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
330
+ <p><code>milestone</code></p>
331
+ </div></div></td>
332
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
333
+ <p><code>milestone</code></p>
334
+ </div></div></td>
335
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
336
+ <p>nested context</p>
337
+ </div></div></td>
338
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
339
+ <p><code>version</code></p>
340
+ </div></div></td>
341
+ </tr>
342
+ <tr>
343
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
344
+ <p><code>assignee</code></p>
345
+ </div></div></td>
346
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
347
+ <p><code>assignee</code></p>
348
+ </div></div></td>
349
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
350
+ <p><code>assignee</code></p>
351
+ </div></div></td>
352
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
353
+ <p><code>lead</code></p>
354
+ </div></div></td>
355
+ <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
356
+ <p><code>lead</code></p>
357
+ </div></div></td>
358
+ </tr>
359
+ </tbody>
360
+ </table>
361
+ <div class="paragraph">
362
+ <p>Users are not beholden to these mappings.
363
+ A powerful custom <a href="#custom-source-rhyml-mapping">mapping system</a> is available.</p>
364
+ </div>
365
+ </div>
366
+ </div>
367
+ </div>
@@ -0,0 +1,9 @@
1
+ :page-nav_order: 3
2
+ = Sample Configuration File
3
+
4
+ This is a "`kitchen sink`" example of the ReleaseHx configuration settings.
5
+
6
+ [source,yaml]
7
+ ----
8
+ include::sample-config.yml[]
9
+ ----
@@ -0,0 +1,251 @@
1
+ # Sample configuration file generated from the configuration definition.
2
+ # All values are upstream (gem) defaults.
3
+ # Properties without defaults are commented out.
4
+ $meta: # The metadata settings for the configuration file.
5
+ markup: markdown # The markup format used in strings in this configuration file.
6
+ slug_type: kebab # The format of slugs used in your application, for use with sluggerize Liquid filter.
7
+ tplt_lang: liquid # The default format used in fields of Template type.
8
+ origin: # The API or file source for the issues.
9
+ source: rhyml # Issue source API type (jira, github, gitlab, rhyml)
10
+ # project: # The string used to identify the project in the remote API.
11
+ # href: | # The local or remote URI for the API or JSON file.
12
+ auth: # Properties related to API authentication.
13
+ # mode: # The type of authentication to use.
14
+ # header: # The header to use for authentication.
15
+ cred_uri: RELEASEHX_API_CRED # The location of the API credentials file for declaring API authentication arguments without environment variables.
16
+ cred_key_line: 1 # Number of the line of the credentials file (at <<confpptyoriginauthcreduri>>) on which the key or token string appears.
17
+ cred_user_line: 2 # Number of the line of the credentials file (at <<confpptyoriginauthcreduri>>) on which the user string appears.
18
+ cred_org_line: 3 # Number of the line of the credentials file (at <<confpptyoriginauthcreduri>>) on which the org string appears.
19
+ key_env: RELEASEHX_API_KEY # Name of the environment variable containing the API key or token.
20
+ user_env: RELEASEHX_API_USER # Name of the environment variable containing the API username.
21
+ org_env: RELEASEHX_API_ORG # Name of the environment variable containing the organization credential.
22
+ conversions: # Details about content origination, as well as markup sources and conversion.
23
+ summ: issue # The source of the summary (Changelog) content.
24
+ # head: # The source of release-note headlines, when it is not the same as the summary.
25
+ # note: # The source of the release notes content.
26
+ # note_custom_field: # The name of the custom field to use for the release notes content.Liquid error: wrong number of arguments (given 3, expected 1..2)Liquid error: wrong number of arguments (given 3, expected 1..2)
27
+ markup: markdown # The origin markup format for notes.
28
+ # engine: # The markup converter to use for the issues.
29
+ extensions: # Default file extensions.
30
+ markdown: md # File extension for Markdown drafts.
31
+ asciidoc: adoc # File extension for AsciiDoc drafts.
32
+ yaml: yml # File extension for YAML drafts.
33
+ types: # Issue types to include in the release history, in the order of display.
34
+ label_prefix: # The prefix used in issue labels to identify type labels.
35
+ feature: # A new capability, functionality, or interface element.
36
+ slug: feature # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
37
+ text: New feature # The display label for the type in the release history output.
38
+ head: New features # The header for the type in the release history output.
39
+ icon: plus-square-o # The icon to use for issues of this type.
40
+ bug: # A fix for a previously reported issue.
41
+ slug: bug # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
42
+ text: Bug fix # The display label for the type in the release history output.
43
+ head: Bug fixes # The header for the type in the release history output.
44
+ icon: bug # The icon to use for issues of this type.
45
+ improvement: # An enhancement to an existing capability, functionality, or interface element.
46
+ slug: improvement # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
47
+ text: Improvement # The display label for the type in the release history output.
48
+ head: Improvements # The header for the type in the release history output.
49
+ icon: wrench # The icon to use for issues of this type.
50
+ documentation: # An update to the documentation.
51
+ slug: documentation # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
52
+ text: Documentation # The display label for the type in the release history output.
53
+ head: Docs Changes # The header for the type in the release history output.
54
+ icon: book # The icon to use for issues of this type.
55
+ # <type_name>: # The corresponding issue type.
56
+ # slug: # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
57
+ # text: # The display label for the type in the release history output.
58
+ # head: # The header for the type in the release history output.
59
+ # icon: # The icon to use for issues of this type.
60
+ parts: # The map of product components to include in the release history, in the order of display.
61
+ label_prefix: "part:" # The prefix used in issue labels to identify component/part labels.
62
+ # <part_name>: # The corresponding product component.
63
+ # slug: # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
64
+ # text: # The display text for the component in the release history output.
65
+ # head: # The header for the component in the release history output.
66
+ # icon: # The icon to use for issues that affect this component.
67
+ tags: # Handling for tags, labels, or toggles associated with source Issues.
68
+ _include: # The tags, labels, or toggles that trigger inclusion in the release history.
69
+ - highlight
70
+ - deprecation
71
+ - removal
72
+ - breaking
73
+ - experimental
74
+ - changelog
75
+ _exclude: # The list of tags that cause a change/issue to be excluded from the release history.
76
+ highlight: # The tag, label, or toggle that indicates an issue is to be highlighted or prioritized in sorts.
77
+ head: Highlights # How this tag will display as a grouping title.
78
+ text: highlight # How this tag will display as a label.
79
+ slug: highlighted # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
80
+ icon: star # The icon to use for issues so-tagged.
81
+ drop: false # Whether to drop this tag when creating a RHYML object from API source.
82
+ groupable: true # Whether this tag can be used to group issues in the release history.
83
+ breaking: # The tag, label, or toggle that indicates a potentially disruptive change.
84
+ head: Breaking Changes # How this tag will display as a grouping title.
85
+ text: Breaking # How this tag will display as a label.
86
+ slug: breaking # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
87
+ icon: exclamation-triangle # The icon to use for issues so-tagged.
88
+ drop: false # Whether to drop this tag when creating a RHYML object from API source.
89
+ groupable: true # Whether this tag can be used to group issues in the release history.
90
+ removal: # The tag, label, or toggle that indicates a change includes a feature removal.
91
+ head: Feature Removals # How this tag will display as a grouping title.
92
+ text: Removed # How this tag will display as a label.
93
+ slug: removal # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
94
+ icon: sign-out # The icon to use for issues so-tagged.
95
+ drop: false # Whether to drop this tag when creating a RHYML object from API source.
96
+ groupable: true # Whether this tag can be used to group issues in the release history.
97
+ deprecation: # The tag, label, or toggle that indicates an issue includes a feature discontinuation announcement.
98
+ head: Deprecations # How this tag will display as a grouping title.
99
+ text: Deprecated # How this tag will display as a label.
100
+ slug: deprecation # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
101
+ icon: exclamation-triangle # The icon to use for issues so-tagged.
102
+ drop: false # Whether to drop this tag when creating a RHYML object from API source.
103
+ groupable: true # Whether this tag can be used to group issues in the release history.
104
+ security: # The tag, label, or toggle that indicates a change includes a security-related alteration.
105
+ head: Security Fixes # How this tag will display as a grouping title.
106
+ text: Security # How this tag will display as a label.
107
+ slug: security # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
108
+ icon: shield # The icon to use for issues so-tagged.
109
+ drop: false # Whether to drop this tag when creating a RHYML object from API source.
110
+ groupable: true # Whether this tag can be used to group issues in the release history.
111
+ experimental: # The tag, label, or toggle that indicates a feature that is not yet stable or may not be permanent.
112
+ head: Experimental Features # How this tag will display as a grouping title.
113
+ text: Experimental # How this tag will display as a label.
114
+ slug: experimental # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
115
+ icon: flask # The icon to use for issues so-tagged.
116
+ drop: false # Whether to drop this tag when creating a RHYML object from API source.
117
+ groupable: true # Whether this tag can be used to group issues in the release history.
118
+ internal: # The tag, label, or toggle that indicates an issue documents a feature that is not intended for "public" use or...
119
+ head: Internal Changes # How this tag will display as a grouping title.
120
+ text: Internal # How this tag will display as a label.
121
+ slug: internal # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
122
+ icon: lock # The icon to use for issues so-tagged.
123
+ drop: false # Whether to drop this tag when creating a RHYML object from API source.
124
+ groupable: true # Whether this tag can be used to group issues in the release history.
125
+ changelog: # The tag, label, or toggle that indicates an issue should appear in the Changelog even if it does not have...
126
+ slug: changelog # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
127
+ drop: true # Whether to drop this tag when creating a RHYML object from API source.
128
+ groupable: false # Whether this tag can be used to group issues in the release history.
129
+ release_note_needed: # The tag, label, or toggle that indicates an issue requires a release note to be written. This is used by...
130
+ slug: release_note_needed # The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than...
131
+ drop: true # Whether to drop this tag when creating a RHYML object from API source.
132
+ groupable: false # Whether this tag can be used to group issues in the release history.
133
+ # <your_tag_name>: # Unlimited custom tags of your choosing, associated with a tag, label, or toggle in the Issues system or manually assignable...
134
+ # head: # How this tag will display as a grouping title.
135
+ # text: # How this tag will display as a label.
136
+ # icon: # The icon to use for issues so-tagged.
137
+ # drop: # Whether to drop this tag when creating a RHYML object from API source.
138
+ # groupable: # Whether this tag can be used to group issues in the release history.
139
+ links: # Path templates and other metadata for building links to online references like issues (web) and commits (git).
140
+ web: # Properties to enable linking to issue-management system ticket URLs corresponding to individual changes.
141
+ # href: | # The URL template for the links to the issue-management system ticket URL.
142
+ icon: ticket # The icon to use for the issue links.Liquid error: wrong number of arguments (given 3, expected 1..2)
143
+ git: # Properties to enable linking to the Git commit URL corresponding to individual changes.
144
+ # href: | # The URL template for the git links in the release history listings.
145
+ icon: code-fork # The icon to use for the git links.Liquid error: wrong number of arguments (given 3, expected 1..2)
146
+ user:
147
+ # href: | # A template for forming links to bio or homepages for the lead contributor of a change.
148
+ icon: user # The icon to use for the user links.Liquid error: wrong number of arguments (given 3, expected 1..2)
149
+ get: # Properties to enable linking to the download or installation instructions for the release.
150
+ # href: | # The URL template for the release download page.
151
+ icon: download # The icon to use for the download links.Liquid error: wrong number of arguments (given 3, expected 1..2)
152
+ paths: # The configuration for the paths to include in the release history listings.
153
+ drafts_dir: _drafts # The path to the output directory for generated drafts (YAML, Markdown, AsciiDoc).
154
+ enrich_dir: _publish # The path to the output directory for enriched files (HTML, PDF).
155
+ output_dir: . # The base directory from which any other output paths are relative.Liquid error: wrong number of arguments (given 3, expected 1..2)Liquid error: wrong number of arguments (given 3, expected 1..2)
156
+ payloads_dir: _payloads # The path to the directory for storing API payloads.
157
+ cache: # Settings for the ReleaseHx application cache.
158
+ enabled: false # Enable automatic caching of API responses to improve performance and reduce API calls.
159
+ ttl_hours: 24 # Time-to-live for cached API responses in hours.
160
+ dir: .releasehx/cache # The directory where cached API responses are stored.
161
+ prompt_gitignore: true # Quietly check the project's git status after writing to cache and, if cache is found untracked, suggest adding this cache...
162
+ templates_dir: _templates # The path to the templates directory.
163
+ mappings_dir: _mappings # The path to the directory containing user-defined API mappings.
164
+ api_clients_dir: _apis # The path to the directory containing user-defined API client definitions.
165
+ modes: # Default settings for rhx command executions.
166
+ wrapped: false # Include (or exclude) head, header, and footer elements when enriching to HTML.
167
+ html_frontmatter: true # Include frontmatter in the rendered HTML.
168
+ markdown_frontmatter: false # Include frontmatter in Markdown drafts.
169
+ # asciidoc_frontmatter: # Include frontmatter in AsciiDoc drafts.
170
+ fetch: notes-only # What to fetch when gathering issues from API.
171
+ remove_excess_lines: 1 # Reduces N+ consecutive blank lines to N lines.
172
+ rhyml: # Settings related to RHYML data objects and documents.
173
+ markup: markdown # The markup format for the note or memo properties of RHYML objects.Liquid error: wrong number of arguments (given 3, expected 1..2)
174
+ empty_notes: skip # What to do for issues that lack a release note but have the releasenoteneeded tag (or a label otherwise declared...
175
+ empty_notes_content: RELEASE NOTE NEEDED # The content to use for empty notes when <<confpptyrhymlemptynotes>> is set to 'empty'
176
+ max_parts: 1 # The maximum number of affected part categories that can be recorded for a single change.
177
+ pasterize_summ: false # Whether to convert verbs in the summ property to past tense when drafting.
178
+ pasterize_head: false # Whether to convert verbs in the head property to past tense when drafting.
179
+ history: # Configurations for the overall document, when applicable.Liquid error: wrong number of arguments (given 3, expected 1..2)
180
+ htag: h1 # The heading level (H1, H2, etc) for the release history header.Liquid error: wrong number of arguments (given 3, expected 1..2)Liquid error: wrong number of arguments (given 3, expected 1..2)Liquid error: wrong number of arguments (given 3, expected 1..2)
181
+ items: # Settings pertaining to displayed items across Changelog and Release Notes sections.
182
+ allow_redundant: false # Whether to allow duplicate entries in a given section, for instance across groups for part:group sorts where a change affects...
183
+ show_issue_links: false # Whether to include web links in item metadata.
184
+ show_git_links: false # Whether to include git links in item metadata.
185
+ metadata_labels: before # If and where to display icons in relation to labels in item metadata.
186
+ metadata_icons: before # Whether to include icons for metadata in item metadata.
187
+ show_lead: false # Whether to include the lead-in text for the section in the item metadata.
188
+ show_type_label: false # Whether to show the type label in the item metadata output.
189
+ show_parts_label: false # Whether to show the parts label in the item metadata output.
190
+ show_tags_label: false # Whether to show the tags label in the item metadata output.
191
+ show_lead_label: false # Whether to show the lead label in the item metadata output.
192
+ show_auths_label: false # Whether to show the authors label in the item metadata output.
193
+ labeling: # Settings for labeling items in the release history output.
194
+ singularize_labels: true # Whether to singularize labels in the output when only one instance of the category is present.
195
+ type_label: type # The label to use for the type of change.
196
+ # type_icon: # The icon to use for the type of change.
197
+ parts_label: Components # The label to use for the part/component affected by the change.
198
+ part_label: Part # The label to use for the singular part/component affected by the change, when only one part is permitted.
199
+ parts_icon: puzzle-piece # The icon to use for the part/component affected by the change.
200
+ tags_label: # The tags associated with the change, if any.
201
+ - Tags
202
+ tag_label: Tag # The label to use for the singular tag associated with the change, when only one tag is permitted.
203
+ tags_icon: tags # The icon to use for the tags associated with the change.
204
+ lead_label: Contributed by # The label to use for the lead contributor of the change.
205
+ lead_icon: user # The icon to use for the lead contributor of the change.
206
+ auths_label: Contributors # The label to use for the authors of the change.
207
+ # auth_label: # The label to use for the singular author of the change, when only one author is listed and <<confpptyhistorylabelingsingularizelabels>> is...
208
+ join_string: , # The string to use to join multiple tags, parts, or authors in the output.
209
+ changelog: # The configuration for the changelog output.
210
+ head: Changelog # The header for the changelog output.Liquid error: wrong number of arguments (given 3, expected 1..2)
211
+ htag: h2 # The heading level (H1, H2, etc) for the changelog section header.
212
+ spot: 2 # Where in the document to place the changelog (1 = top, 2 = bottom).
213
+ sort: # The sort order for the changelog output.
214
+ - part:grouping1
215
+ items: # Settings that affect the frame/shape and arrangement of individual changelog entries.
216
+ frame: unordered # The layout for the changelog entry display.
217
+ allow_redundant: false # Whether to allow duplicate entries in a given section, for instance across groups for part:group sorts where a change affects...
218
+ show_git_links: false # Whether to include git links in item metadata.
219
+ show_issue_links: false # Whether to include web links in item metadata.
220
+ metadata_labels: before # If and where to display icons in relation to labels in item metadata.
221
+ metadata_icons: before # Whether to include icons for metadata in item metadata.
222
+ show_lead: false # Whether to include the lead-in text for the section in the item metadata.
223
+ show_type_label: false # Whether to show the type label in the item metadata output.
224
+ show_parts_label: false # Whether to show the parts label in the item metadata output.
225
+ show_tags_label: false # Whether to show the tags label in the item metadata output.
226
+ show_lead_label: false # Whether to show the lead label in the item metadata output.
227
+ show_auths_label: false # Whether to show the authors label in the item metadata output.
228
+ notes: # The configuration for the Release Notes listing section.
229
+ head: Release Notes # The header for the notes output.Liquid error: wrong number of arguments (given 3, expected 1..2)
230
+ htag: h2 # The heading level (H1, H2, etc) for the release notes section header.
231
+ spot: 1 # Where in the document to place the Release Notes relative to the Changelog.
232
+ sort: # The sort order for the release notes output.
233
+ - highlight:grouping1
234
+ - deprecation:grouping1
235
+ - removal:grouping1
236
+ - breaking:grouping1
237
+ - type:grouping1
238
+ - part:grouping2
239
+ items: # Settings that affect the frame/shape and arrangement of individual release-note item displays.
240
+ frame: table-cols-1 # The layout for the release-note item display.
241
+ allow_redundant: false # Whether to allow duplicate entries in a given section, for instance across groups for part:group sorts where a change affects...
242
+ show_git_links: false # Whether to include git links in item metadata.
243
+ show_issue_links: false # Whether to include web links in item metadata.
244
+ metadata_labels: before # If and where to display icons in relation to labels in item metadata.
245
+ metadata_icons: before # Whether to include icons for metadata in item metadata.
246
+ show_lead: false # Whether to include the lead-in text for the section in the item metadata.
247
+ show_type_label: false # Whether to show the type label in the item metadata output.
248
+ show_parts_label: false # Whether to show the parts label in the item metadata output.
249
+ show_tags_label: false # Whether to show the tags label in the item metadata output.
250
+ show_lead_label: false # Whether to show the lead label in the item metadata output.
251
+ show_auths_label: false # Whether to show the authors label in the item metadata output.
File without changes