RelsNoteGenr (TL115A)
RelsNoteGenr (TL115A)
Component Documentation
2 - 1. Generating from the GUI
- Generating from the GUI {#1.}
========================================================================================================================
The release notes generation tool supports two primary methods of invocation - the first is by using a GUI for
interacting and selecting options, outlined in this section, and the second is via the command line as outlined
in section 2. Both interfaces provide the same feature set.
3 - 1.1. Program Release Selection
1.1. Program Release Selection 
The first step when using the GUI to generate release notes is to select the program from the drop-down at the top of the
window. The drop-down is populated with a list of programs queried from the EA4 database as the tool starts. The
database is first queried for all available releases before the list is filtered to remove any release that looks like
a component.
Upon selecting the release appropriate to the program for which you wish to generate release notes, the database will
again be queried for all available baseline under that release which brings us to step 2.
4 - 1.2. Baseline Version Selection
1.2. Baseline Version Selection 
After selecting a program the drop-downs for baseline version will be automatically populated and enabled.
The tool allows generation of release notes that span multiple baseline versions but will default to the most recent
two baselines as determined by the baseline version numbers in increasing order. This default is intended to produce
release notes for the most recent build as compared to it’s immediate predecessor. If a different range is desired
then alternate From: and To: selections can be made.
Both selections are inclusive and will be included in the generated report in addition to any baselines between the
selections.
After selecting the baselines the next step is to configure the report contents.
5 - 1.3. Report Content Selection
1.3. Report Content Selection 
After selecting the baseline versions the next step is to configure the report contents. Start by selecting the
scope of the release notes using the drop-down for Target Audience. This will help limit the option presented in
the next step to avoid adding detailed or confidential information to reports targeted for certain audiences.
From that point, the exact contents of the report may be tailored using the tabs and check-boxes provided. The tabs
correspond to the sections in the generated report while the check-boxes correspond to sub-sections. A checked box will
include the corresponding sub-section while an un-checked box will exclude the sub-section. If an entire section (i.e.
tab) is empty then the entire section will be excluded from the generated report.
After configuring the content a report format must be selected.
6 - 1.4. Report Format Selection
1.4. Report Format Selection 
After configuring the content a report output format must be selected. The available formats are presented as
radio buttons as only one may be selected at a time. Should multiple report formats be required the tool will need to
be run multiple times, selecting the desired report format each time.
Once satisfied, you may start the generation.
7 - 1.5. Generation
1.5. Generation 
After completing the configuration, the generation can be kicked off by clicking the [Generate] button. The main
window will be hidden and a dialog indicating the generation progress will be shown. Closing this dialog or pressing
[Cancel] will abort generation and return you to the main window.
Note: The progress bar is updated after each section and sub-section is generated which shows progress but because
some sections take much longer than others the bar does not fill consistently. Generation make take several minutes and
is relatively robust to errors during generation. If an error occurs in a particular section or sub-section that unit
will be skipped and the corresponding content will be omitted from the report. Check the log output for details on
what cause the exception.
8 - 2. Command Line Usage
- Command Line Usage {#2.}
========================================================================================================================
The command line parameters ares self documenting. To view the available options, and avoid duplication here, invoke
the help command. - python App.py –help 
The tool will then print a list of available arguments and options along with how to use them.
9 - 3. Project Configuration
- Project Configuration {#3.}
========================================================================================================================
There are some pieces of information that cannot be automatically scrapped by the tool and must be curated manually.
The specific files containing these bits of information are outlined in the following sections. Many of them will
reside directly in the doc folder of the integration project and will be searched for when the generator runs. If the
file is not found, it’s sub-section will be excluded from the report.
10 - 3.1. Bootloader Compatibility
3.1. Bootloader Compatibility 
Bootloader compatibility must be manually maintained. Unfortunately there may be some convoluted methods to derive
which application versions are compatible with various bootloader versions but this is not bulletproof and also varies
across customers. Instead, a simple matrix of applications and bootloaders is maintained within the doc folder and
parsed by the generator when invoked.
11 - 3.1.1. File Location
3.1.1. File Location 
The file should be placed in the following location:
INTEGRATION_PROJECT_FOLDER_RH850\doc\BootloaderCompatibility.ini
The INTEGRATION_PROJECT_FOLDER_RH850 portion should be substituted with the integration project name that matches your
project. The filename “BootloaderCompatibility.ini” must match exactly. If the file does not exist, is named
incorrectly, or is placed in the wrong location then the bootloader compatibility matrix will always be excluded from
the generated report.
12 - 3.1.2. File Format
3.1.2. File Format 
The file is a standard format configuration file with section headers enclosed between [square brackets] and config
items followed by colons:. An example of such as a section is as follows:
[section]
item1: value
item2: value
The parser makes use of Python’s built in ConfigParser, please see the
ConfigParser documentation for more information on the structure
and parsing of configuration files.
13 - 3.1.3. File Contents
3.1.3. File Contents 
The file must contain two sections titled [Bootloaders] and [Applications].
The [Bootloaders] section must contain one item per bootloader version where the items name is the textual name of the
bootloader and the value is an arbitrary, unique index number to be used later in the application section.
The [Applications] section must contain one item per application version where the items name is the textual name of the
application and the value is a comma separated list of one or more compatible bootloaders. The list shall make use of
the index numbers provided in the [Bootloaders] section.
14 - 3.1.4. Example Configuration File
3.1.4. Example Configuration File 
Below is an example of a bootloader compatibility configuration file. The location, format, and
contents of the file are detailed in other guides.
[Bootloaders]
Boot_Fbl_01.00.00: 1
Boot_Fbl_01.00.01: 2
Boot_Fbl_01.01.00: 3
Boot_Fbl_02.00.00: 4
Boot_Fbl_02.01.00: 5
Boot_Fbl_03.00.00: 6
Boot_Fbl_04.00.00: 7
[Applications]
Appl_01.00.00: 1
Appl_01.01.00: 1, 2
Appl_01.02.00: 1, 2, 3
Appl_02.00.00: 4
Appl_02.01.00: 4
Appl_02.02.00: 4, 5
Appl_03.00.00: 4, 5
Appl_04.00.00: 6
Appl_04.00.01: 7
15 - 3.2. Project Traits
3.2. Project Traits 
16 - 3.2.1. File Location
3.2.1. File Location 
The file should be placed in the following location:
INTEGRATION_PROJECT_FOLDER_RH850\doc\ProjectTraits.ini
The INTEGRATION_PROJECT_FOLDER_RH850 portion should be substituted with the integration project name that matches your
project. The filename “ProjectTraits.ini” must match exactly. If the file does not exist, is named incorrectly, or is
placed in the wrong location then the any sections making use of the file will always be excluded from the generated
report.
17 - 3.2.2. File Format
3.2.2. File Format 
The file is a standard format configuration file with section headers enclosed between [square brackets] and config
items followed by colons:. An example of such as a section is as follows:
[section]
item1: value
item2: value
The parser makes use of Python’s built in ConfigParser, please see the
ConfigParser documentation for more information on the structure
and parsing of configuration files.
18 - 3.2.3. File Contents
3.2.3. File Contents 
The file must contain two sections titled [processor] and [compiler]. Both sections are open-ended and may contain as
many or as few items as needed for your program. Items are parsed and populated into tables where the table contains
two columns, one for the item name and the other for the item’s value with one row per item.
The [processor] section can contain details about the target processor such as the manufacturer, part number, and
operating frequency.
The [compiler] section can contain details about the target compiler. The compiler information would ideally be parsed
from the build output rather than pre-populated in such a config file but none of the options explored as of the time of
this writing produced a desirable result. As such, this config file has been put forward as a substitute.
19 - 3.2.4. Example Configuration File
3.2.4. Example Configuration File 
Below is an example of a project traits configuration file. The location, format, and
contents of the file are detailed in other guides.
[processor]
Microprocessor Manufacturer: Renesas
Microprocessor Part Number: R7F701311
Internal Clock Frequency: 160 MHz
[compiler]
Green Hills Software Compiler: 2015.1.5
20 - 3.3. User Notes
3.3. User Notes 
The user notes document is located at the following location:
INTEGRATION_PROJECT_FOLDER_RH850\doc\UserNotes.md
Where INTEGRATION_PROJECT_FOLDER_RH850 is replaced with the name of your integration project folder and UserNotes.md is
the exact filename.
The .md extension corresponds to Markdown formatting. The generation tool
supports a limited subset of the markdown standard including bold and italic markup as well as tables from the
Markdown Extra standard.
The contents of the file as very open ended. It is expected that this file will be used by the integrator to document
any oddities or major changes in version of software but not anomalies as those are already handled via the open
anomalies section. Typical items for this file include things such as notifications of EEPROM shifts, abnormal
bootloader update sequences, changes in service IDs or security that may alter a user’s interaction, etc. This is
intended to be a first-line location for end users of the software to start when they come up against some kind of issue
before they write an anomaly.
21 - RelsNoteGenr.1
RelsNoteGenr(1) - EA4 Release Notes Generator- RelsNoteGenr(1)
- EA4 Release Notes Generator
- RelsNoteGenr(1)
NAME
RelsNoteGenr - EA4 Release Notes Generator
SYNOPSIS
python App.py [-h] [-v] [--nogui] [--release RELEASE] [--program PROGRAM]
[--audience {Internal,Customer}] [--start START] [--stop STOP]
[--all | --none] [--include {...}] [--exclude {...}]
[--format {html}] [--username USERNAME] [--password PASSWORD]
DESCRIPTION
RelsNoteGenr is a tool for generating release notes between arbitrary baselines of EA4 programs. Generated reports
are intended to be all-inclusive any any additional information should be added to a supplementary document rather than
modifying the output file.
Sections are generated by individual scripts in the Sections directory. The scripts follow a plugin-style architecture
and can easily be added and removed. The tool will scan the directory for folders containing compatible section files
that follow the proper conventions.
Sections are rendered into an intermediate Model structure that represents an abstracted report with generic items
such as paragraphs and tables. This provides a standard input into the report generator to handle the specifics of
generating various report formats.
Report generators follow a format similar to the sections - with a standard interface, however, they are not scanned
automatically as the sections are. Instead, available formats must be listed in the array returned from the
Report__init__.py script.
Portions of the tool may be compatible with EA3 project structures but this has not been verified and is not guaranteed.
The tool was primarily designed for use with EA4 projects and as such is hard coded to connect only with the EA4
Synergy database.
OPTIONS
- --nogui
- Run in command line mode without GUI windows or prompts. By default, when the app is run a GUI window will open
for interaction with the user. If it is desired to run the tool from the command line, possibly for use in an
automated script, this option can be used to ensure that the tool will not open any windows and pause for input. 
- --release RELEASE
- Optional program release tag from Synergy. When using command line mode this argument is not optional and will
generate an error. When using GUI mode, this will populate the release field in the GUI window upon launch. 
- --program PROGRAM
- Optional program name from Change Synergy. When using command line mode this argument is not optional and will
generate an error. When using GUI mode, this will populate the program name field in the GUI window upon launch. 
- --audience {Internal,Customer}
- End user of the release notes, used to help tailor the sections in the generated report. - Internaldefaults to all
available sections while- Customerremoves some sensitive sections that Nexteer would not normally share with a
customer.
 
- --start START
- Optional baseline version in the specified release to start range for release notes (inclusive). When using command
line mode, this argument is not optional and an error will be generated if not specified. In GUI mode, the starting
baseline version drop-down will be populated with this selection when the window loads. 
- --stop STOP
- Optional baseline version in the specified release to end range for release notes (inclusive). When using command
line mode, this argument is not optional and an error will be generated if not specified. In GUI mode, the ending
baseline version drop-down will be populated with this selection when the window loads. 
- --all
- Selects all available sections for inclusion in the generated report. Can be used in combination with one or more
- excludeoptions to remove select sections. Mutually exclusive with the- noneoption.
 
- --none
- Exclude all sections from the generated report. Can be used in combination with one or more - includeoptions to
specify sections to be included. Mutually exclusive with the- alloption.
 
- --include SECTION
- Specify the inclusion of a specific section by name. This option can be used multiple times to include multiple
sections. Some sections have spaces in their names and as such should be surrounded by double quotes. 
- --exclude SECTION
- Specify the exclusion of a specific section by name. This option can be used multiple times to exclude multiple
sections. Some sections have spaces in their names and as such should be surrounded by double quotes. 
- --format {html}
- Report output format. Additional formats may be available in the future. Required in command line mode. 
- --username USERNAME
- Synergy username to use when performing queries. If not specified, the currently logged in username will be used. 
- --password PASSWORD
- Synergy password to use when performing queries. If not specified a prompt will be issued. This will generate a
prompt for input at the command line the will be masked. Omitting the parameter will allow the password to be
masked such that it is not visible in the command line. The prompt may be less than desirable for use with
automated scripts. 
- --filename
- Specify the output report filename. If omitted, a filename will be generated from the program name and baseline
versions. The extension will be forced to match the report format. 
- -h,- --help
- Print a help message and exit. 
- -V,- --version
- Display version information and exit. 
RETURN VALUES
- 10
- Not enough baselines available for the specified release. At least two baselines must be present in Synergy before
this tool may be run.
BUGS
Bugs should be reported and tracked using the Anomaly system in Change Synergy.
The use of a "Continuous Improvement" CR is recommended in favor of writing an anomaly against a particular program
unless the bug is to do specifically with use on a particular program.
DOCUMENTATION
This documentation was generated using ronn. ronn converts a text file with a
format similar to Markdown into an HTML file with a format typical of a standard manpage. For more information about
ronn see it's manpage: ronn(1). For more information on the syntax see
that manpage: ronn-format(7).
COPYRIGHT
(c) 2017 Nexteer Automotive