2 - 1. Generating from the GUI

  1. 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

  1. 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

  1. 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
  1. RelsNoteGenr(1)
  2. EA4 Release Notes Generator
  3. 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. Internal defaults to all available sections while Customer removes 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 exclude options to remove select sections. Mutually exclusive with the none option.

--none

Exclude all sections from the generated report. Can be used in combination with one or more include options to specify sections to be included. Mutually exclusive with the all option.

--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).

(c) 2017 Nexteer Automotive

  1. Nexteer Automotive
  2. January 2017
  3. RelsNoteGenr(1)