Table of Contents

Format of fixedBugsList.txt

Before generating the release notes, you must produce a list of issues which were fixed by that release and not by any previous release. The list is a text file named

${relnotes.src.dir}/${release.version}-relnotes/fixedBugsList.txt

The relnotes.src.dir and release.version variables are the values that you will specify when you run the genrelnotes target. For instance,

/Users/me/junk/10.12.1.1-relnotes/fixedBugsList.txt

The fixedBugsList.txt file is a series of entries, which have the following form...

---
${jira.id}
${summary.line}
${release.version}
${detailed.release.note.id}

...where jira.id is the the DERBY-NNNN id, summary.line is the bug's one line summary, and release.version is the release you are producing.

For bugs which DON'T have a detailed release note, detailed.release.note.id is the literal string "null". For a bug which has a detailed release note, detailed.release.note.id is the attachment number of the detailed release note. For instance, if the link to the detailed release note is...

https://issues.apache.org/jira/secure/attachment/12745964/releaseNote.html

...then detailed.release.note.id is 12745964. Here is an abbreviated fixedBugsList.txt file:

---
DERBY-6807
XXE attack possible by using XmlVTI and the XML datatype
10.12.1.1
12745964
---
DERBY-6801
Implement MessageUtils class so client and server can share message argument encoding/decoding
10.12.1.1
null

Query to Produce the List of Fixed Bugs

The first step in constructing fixedBugsList.txt is to create a JIRA report which lists the bugs fixed by the release. Use JIRA's advanced search feature to specify a JQL query. Here is the JQL query used for release 10.12.1.1:

project = DERBY AND resolution = fixed AND component not in ( Test ) AND fixversion in ("10.12.1.1") and fixversion not in ( "10.11.1.1", "10.10.2.0", "10.10.1.1", "10.9.1.0", "10.8.2.2", "10.8.1.2", "10.7.1.1", "10.6.2.1", "10.6.1.0", "10.5.3.0", "10.5.2.0", "10.5.1.1", "10.4.2.0", "10.4.1.3", "10.3.2.1" )

You can probably leave off the clause which begins with "and fixversion not in" since we don't backport a lot of fixes to old branches.

When you execute that search query, it will produce a report. Now you need to export that report. Narrow the list of selected columns down to just "Key", "Summary", and "Issue and fix info". Then export the report as "CSV (Current fields)". Here is an abbreviated CSV-formatted report for 10.12.1.1:

Issue key,Issue id,Parent id,Summary,Custom field (Issue & fix info),Custom field (Issue & fix info)
DERBY-6829,12850774,,Document the simpleJson optional tool and the SimpleJsonVTI.,,
DERBY-6825,12843254,,Add basic JSON support to Derby.,,
DERBY-6824,12842748,12757165,Move ShutdownException into shared code area,,
DERBY-6820,12841201,12827400,Improve error handling in XmlVTI,,
DERBY-6811,12833163,,Tasks for producing a 10.12.1 release,,
DERBY-6807,12827400,,XXE attack possible by using XmlVTI and the XML datatype,Patch Available,Release Note Needed
DERBY-6801,12822878,12757165,Implement MessageUtils class so client and server can share message argument encoding/decoding,,
DERBY-6737,12741501,,CLOB retrieve exceptions after moving cursor around,Repro attached,
DERBY-6733,12740340,,Implement an MBean for monitoring caches,,
DERBY-6730,12739878,,Cannot create a Lucene index if a key column's name is case-sensitive,Patch Available,Workaround attached
DERBY-6724,12738395,,NPE if insert statement needs recompilation after having fired a trigger,Repro attached,

Now you need to manually reformat that report into a fixedBugsList.txt file. This is straightforward for bugs without detailed release notes. Bugs with detailed release notes can be spotted by looking for the text "Release Note Needed" in the last column. For those bugs, you need to look up the attachment id of the latest releaseNote.html file attached to the issue.

Here is the reformatted fixedBugsList.txt file corresponding to the abbreviated CSV-formatted report for 10.12.1.1:

---
DERBY-6829
Document the simpleJson optional tool and the SimpleJsonVTI.
10.12.1.1
null
---
DERBY-6825
Add basic JSON support to Derby.
10.12.1.1
null
---
DERBY-6824
Move ShutdownException into shared code area
10.12.1.1
null
---
DERBY-6820
Improve error handling in XmlVTI
10.12.1.1
null
---
DERBY-6811
Tasks for producing a 10.12.1 release
10.12.1.1
null
---
DERBY-6807
XXE attack possible by using XmlVTI and the XML datatype
10.12.1.1
12745964
---
DERBY-6801
Implement MessageUtils class so client and server can share message argument encoding/decoding
10.12.1.1
null
---
DERBY-6737
CLOB retrieve exceptions after moving cursor around
10.12.1.1
null
---
DERBY-6733
Implement an MBean for monitoring caches
10.12.1.1
null
---
DERBY-6730
Cannot create a Lucene index if a key column's name is case-sensitive
10.12.1.1
null
---
DERBY-6724
NPE if insert statement needs recompilation after having fired a trigger
10.12.1.1
null

That's it! You now have a fixedBugsList.txt file and you're ready to run genrelnotes.

  • No labels