Skip to content

Commit 75765d2

Browse files
committed
[DOC-13702]: Write documentation for the Release Note Generator
Work in progress.
1 parent 433baa9 commit 75765d2

File tree

2 files changed

+105
-4
lines changed

2 files changed

+105
-4
lines changed

home/modules/contribute/pages/release-note-generator/adding-a-new-product.adoc

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,103 @@
1010
This guide is intended for technical writers and developers who are familiar with the Release Note Generator. If you are new to the tool, please refer to the link:https://confluence.issues.couchbase.com/wiki/spaces/DOCS/pages/3338961232/Other+Tools[installation and use of the Release Note Generator] guide for more information.
1111
Before you begin, make sure that you have the release note generator installed and running.
1212

13+
You should also familiarize yourself with the xref:./design-guide.adoc[].
14+
15+
You will also need a code editor or an IDE for editing the YAML configuration file.
16+
17+
You should also have a terminal application running.
18+
19+
== Overview
20+
21+
The Release Note Generator has been designed so that it can be extended to support new Couchbase products without having to
22+
alter the Python script itself. Adding a new product involves two steps:
23+
24+
. Add the new product release set to `cb_release_notes_config.yaml`.
25+
. Create a new Jinja template for rendering the AsciiDoc file for your new release note.
26+
27+
To demonstrate this process, we're going to create a new release note configuration for the Sync Gateway product.
28+
29+
NOTE: You should run the following commands from the directory where your Release Notes Generator is installed.
30+
31+
=== Step {counter: step}: Make a copy of your `cb_release_notes_config.yaml` file.
32+
33+
You can make a copy of the file using the following terminal command:
34+
35+
[source, shell]
36+
----
37+
cp cb_release_notes_config.yaml cb_release_notes_config.yaml.spare
38+
----
39+
40+
=== Step {counter: step}: Name your release product
41+
42+
Edit the original `cb_release_notes_config.yaml` file
43+
and add the new `name` item underneath the `release_settings` section:
44+
45+
[source, yaml]
46+
----
47+
release_settings:
48+
- name: "Sync Gateway"
49+
----
50+
51+
=== Step {counter: step}: Define your parameters
52+
53+
The user will need to supply parameters that need to be fed to the script.
54+
These can vary depending on what's going to appear on the release note,
55+
and what the JQL will need to gather the tickets.
56+
The most common parameters are:
57+
58+
[horizontal]
59+
60+
Release number::
61+
The label that our JQL will use to find the release tag.
62+
63+
Release date::
64+
This will appear in the release note heading.
65+
66+
File path::
67+
This is a mandatory item needed for each release set.
68+
It supplies the name of the AsciiDoc file that the script generates.
69+
70+
Other parameters that the SQL will need, (such as the project name), are fixed values
71+
and don't need to be parameterized.
72+
73+
[source, yaml]
74+
----
75+
release_settings:
76+
- name: "Sync Gateway"
77+
fields:
78+
- name: release_number
79+
type: text
80+
message: 'Enter the release number:'
81+
- name: release_date
82+
type: text
83+
message: 'Enter the release date (Month Year):'
84+
- name: file_path
85+
type: file
86+
message: 'Enter the file path for the release notes:'
87+
----
88+
89+
=== Step {counter: step}: Define your JQL statement
90+
91+
Now, you add the URL and the JQL statements used to retrieve the Jira tickets that match your parameters:
92+
93+
[source, yaml]
94+
----
95+
release_settings:
96+
- name: "Sync Gateway"
97+
fields:
98+
- name: release_number
99+
type: text
100+
message: 'Enter the release number:'
101+
- name: release_date
102+
type: text
103+
message: 'Enter the release date (Month Year):'
104+
- name: file_path
105+
type: file
106+
message: 'Enter the file path for the release notes:'
107+
url: https://jira.issues.couchbase.com
108+
jql: project = CBG AND issuetype in (Bug, "New Feature", Epic, Improvement)
109+
AND (fixVersion = {{release_number}} OR labels IN (known_issue))
110+
ORDER BY key ASC
111+
----
13112

home/modules/contribute/pages/release-note-generator/design-guide.adoc

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@ The script is designed to be flexible and extendable.
3232
It uses a modular architecture that allows for the addition of new products and formats.
3333

3434
[mermaid]
35+
.Release Note Generator Process Flow
3536
----
3637
flowchart LR
38+
3739
jira@{shape: disk, label: "Couchbase\n JIRA\n database"}
3840
script@{shape: process, label: "CB Release Notes Generator\n (Python script)"}
3941
configuration@{shape: docs, label: "configuration files"}
@@ -47,10 +49,10 @@ configuration CtoS@====> script
4749
script StoA@====> asciidoc
4850
user ====> script
4951
50-
JtoS@{animation: slow, curve: linear}
51-
TtoS@{animation: slow, curve: linear}
52-
CtoS@{animation: slow, curve: linear}
53-
StoA@{animation: slow, curve: linear}
52+
JtoS@{curve: linear}
53+
TtoS@{curve: linear}
54+
CtoS@{curve: linear}
55+
StoA@{curve: linear}
5456
----
5557

5658
. On invocation, the script loads the `release sets` from the configuration file,

0 commit comments

Comments
 (0)