[jira] Commented: (DERBY-4857) Utilize the SOAP API to fetch JIRA issue list for release notes generation
[ https://issues.apache.org/jira/browse/DERBY-4857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12927472#action_12927472 ] Rick Hillegas commented on DERBY-4857: -- Thanks, Kristian. What is checked in works well. A couple small issues: 1) After running the genrelnotes target, I expected to see RELEASE-NOTES.html checked out in my code client. It was. That's good. However, "svn status" also showed the following artifact. I think that the ignore bit needs to be set on this artifact: ? tools/release/jirasoap/target 2) The genrenotes target is less chatty. That's good. However, maven is still coughing up a long list of numbers and question marks. These don't mean much to me. Can they be suppressed too? See the output included below. --- Here is the new script which I use to drive release notes generation: #! /bin/bash # # generate release notes # # $1 jira password # $2 filter id # $3 release version # # E.g.: # # generateReleaseNotes blahblah 12314683 10.7.1.0 # echo If the script hangs, you may need to get off your company VPN. jiraUser=rhillegas jiraPassword=$1 filterID=$2 releaseVersion=$3 reportDir=$HOME/junk/$releaseVersion-relnotes cd $BRANCH/tools/release ant -Djira.user=$jiraUser -Djira.password=$jiraPassword -Djira.filter.id=$filterID -Drelease.version=$releaseVersion -Drelnotes.src.reports=$reportDir genrelnotes - Here is the output of running that script: If the script hangs, you may need to get off your company VPN. Buildfile: build.xml check-properties: missing-properties: maven-exec-windows: maven-exec-unix: genrelnotes: [exec] Downloading: http://repo1.maven.org/maven2/javax/mail/mail/1.4.1/mail-1.4.1.pom [exec] 995/? [exec] Downloading: http://repo1.maven.org/maven2/javax/activation/activation/1.1/activation-1.1.pom [exec] 1058/? [exec] Downloading: http://repo1.maven.org/maven2/javax/activation/activation/1.1/activation-1.1.jar [exec] Downloading: http://repo1.maven.org/maven2/javax/mail/mail/1.4.1/mail-1.4.1.jar [exec] 497/? [exec] 1008/?1520/?2032/?2544/?3056/?3568/?4072/?4584/?5095/?5607/?6118/?6630/?7142/?7654/?8164/?8676/?9187/?9699/?9859/?10371/?10882/?11394/?11906/?12451/?13053/?13710/?14222/?14734/?15287/?15836/?16348/?16711/?17165/?17392/?17933/?18446/?18998/?19552/?20063/?20575/?21086/?21601/?22158/?22730/?23275/?23786/?24298/?24811/?25356/?25899/?26428/?26997/?27556/?28151/?28711/?29258/?29769/?30281/?30793/?31304/?31816/?32327/?32887/?33433/?33944/?34398/?34910/?35421/?35933/?36445/?36893/?37443/?37953/?38530/?39077/?39625/?40237/?40795/?41306/?41846/?42358/?42869/?43381/?43893/?44404/?44915/?45474/?46030/?46554/?47116/?47578/?48140/?48707/?49188/?49755/?50330/?50914/?51010/?51574/?52084/?52596/?53158/?53728/?54293/?54853/?55365/?55973/?56560/?57127/?57683/?58290/?58802/?59313/?59825/?60336/?60848/?61360/?61576/?62088/?62599/?63111/?63623/?64135/?64471/?64982/?65497/?66008/?66520/?67031/?67543/?68054/?68567/?69026/?69539/?70051/?70563/?71075/?71587/?72103/?72616/?73127/?73639/?74151/?74662/?75174/?75686/?76232/?76744/?77255/?77487/?77999/?78555/?79067/?79620/?80133/?80471/?80983/?81495/?82006/?82518/?83031/?83542/?84054/?84470/?84982/?85495/?85951/?86463/?86976/?87488/?87999/?88511/?89023/?89534/?90047/?90593/?91104/?91659/?92172/?92760/?93272/?93592/?94145/?94658/?95171/?95683/?96194/?96530/?97041/?97553/?98065/?98578/?99089/?99601/?100112/?100626/?100874/?101386/?101899/?102355/?102866/?103378/?103889/?104401/?104913/?105424/?105936/?106479/?106990/?107540/?108052/?108603/?109114/?109664/?110176/?110687/?111283/?111795/?112385/?112898/?113410/?113922/?114497/?115009/?115520/?115666/?116220/?116776/?117287/?117775/?118286/?118638/?119151/?119607/?120118/?120638/?121183/?121694/?122249/?122760/?123316/?123827/?124339/?124851/?125363/?125918/?125990/?126502/?127060/?127573/?128085/?128598/?129110/?129621/?130133/?130646/?131159/?131672/?132183/?132695/?133207/?133719/?134230/?134743/?135254/?135765/?136224/?136735/?137255/?137774/?138286/?138798/?139310/?139821/?140334/?140846/?141358/?141870/?142382/?142470/?142982/?143548/?144060/?144617/?145130/?145642/?146215/?146423/?146728/?147239/?147751/?148263/?148775/?149334/?149846/?150358/?150957/?151468/?152030/?152542/?152998/?153554/?153825/?154387/?154899/?155192/?155707/?156264/?156775/?157337/?157952/?158463/?158975/?159486/?159998/?160510/?161021/?161532/?162044/?162595/?163106/?163662/?164224/?164736/?165311/?165822/?166386/?166898/?167409/?167954/?168511/?169023/?169570/?170122/?170634/?171229/?171776/?172289/?172802/?173313/?173824/?174336/?174849/?175360/?175871/?176384/?176897/?177408/?177922/?178434/?178946/?179242/?179754/?180267/?180483/?180684/?181196/?181710/?182262/?182817/?183329/?183840/?184352/?184864/?185375/?185887/?186399/?186854/?187402/?187914/?187986/?188496/?189042/?189465/?190019/?190530/?191139/?1916
[jira] Commented: (DERBY-4857) Utilize the SOAP API to fetch JIRA issue list for release notes generation
[ https://issues.apache.org/jira/browse/DERBY-4857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12925745#action_12925745 ] Kristian Waagan commented on DERBY-4857: Hi Lily, 'ant genrelnotes' will overwrite the existing RELEASE-NOTES.html. You should be able to see that using 'svn st|diff'. Remember that you still have to edit releaseSummary.xml for the release notes to be complete and correct. If you look at the start and end of the fixedBugsList.txt, you should see a few important pieces of information (this is also printed to standard out when you run the target): o the target release version o the derived previous release version (this is checked against the one entered in releaseSummary.xml) o the derived ancestry chain (used to exclude issues) o issue statistics (# total, # written, # disqualified, # release note) Also included in the output is the path to the output file. This patch doesn't touch the logic bumping the last digit. I think that is something Rick is, or have been, working on. Did you run 'ant genrelnotes' on Windows? FYI, I expect there will be at least one more patch for this issue, but I'd like to wait for Rick's further feedback as well. Thanks, > Utilize the SOAP API to fetch JIRA issue list for release notes generation > -- > > Key: DERBY-4857 > URL: https://issues.apache.org/jira/browse/DERBY-4857 > Project: Derby > Issue Type: Improvement > Components: Build tools >Affects Versions: 10.7.1.0 >Reporter: Kristian Waagan >Assignee: Kristian Waagan > Attachments: derby-4857-1a-jirasoap_relnotes.diff, > derby-4857-1a-jirasoap_relnotes.stat, > derby-4857-2a-jirasoap_maven_client.diff, > derby-4857-2a-jirasoap_maven_client.stat, > derby-4857-3a-jirasoap_relnotesgen_changes.diff, > derby-4857-3a-jirasoap_relnotesgen_changes.stat, > derby-4857-3b-jirasoap_relnotesgen_changes.diff, > derby-4857-4a-jirasoap_ant_integration.diff, > derby-4857-4a-jirasoap_ant_integration.stat, > derby-4857-4b-jirasoap_ant_integration.diff, RELEASE-NOTES.html > > > Somewhat simplified, the release manager (RM) must currently perform the > following manual steps to feed the release note generate the data it needs: > a) Create manual JIRA filter to select issues addressed by the release. > b) Save the filter result to disk as XML. > c) Write/modify the XML parser to be able to parse the report. > d) Determine and record all JIRA release note attachment ids for the issues > requiring a release note. > By using the current version of the SOAP API (3.13.5), steps (b) to (d) can > be removed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (DERBY-4857) Utilize the SOAP API to fetch JIRA issue list for release notes generation
[ https://issues.apache.org/jira/browse/DERBY-4857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12925310#action_12925310 ] Kristian Waagan commented on DERBY-4857: Tested this on Solaris again, and it seems to work. Committed patch 4b to trunk with revision 1027882. There may be improvements to be made, maybe tuning the output or removing some inputs. I'll let people give it a try first, and wait for feedback from the release managers. > Utilize the SOAP API to fetch JIRA issue list for release notes generation > -- > > Key: DERBY-4857 > URL: https://issues.apache.org/jira/browse/DERBY-4857 > Project: Derby > Issue Type: Improvement > Components: Build tools >Affects Versions: 10.7.1.0 >Reporter: Kristian Waagan >Assignee: Kristian Waagan > Attachments: derby-4857-1a-jirasoap_relnotes.diff, > derby-4857-1a-jirasoap_relnotes.stat, > derby-4857-2a-jirasoap_maven_client.diff, > derby-4857-2a-jirasoap_maven_client.stat, > derby-4857-3a-jirasoap_relnotesgen_changes.diff, > derby-4857-3a-jirasoap_relnotesgen_changes.stat, > derby-4857-3b-jirasoap_relnotesgen_changes.diff, > derby-4857-4a-jirasoap_ant_integration.diff, > derby-4857-4a-jirasoap_ant_integration.stat, > derby-4857-4b-jirasoap_ant_integration.diff, RELEASE-NOTES.html > > > Somewhat simplified, the release manager (RM) must currently perform the > following manual steps to feed the release note generate the data it needs: > a) Create manual JIRA filter to select issues addressed by the release. > b) Save the filter result to disk as XML. > c) Write/modify the XML parser to be able to parse the report. > d) Determine and record all JIRA release note attachment ids for the issues > requiring a release note. > By using the current version of the SOAP API (3.13.5), steps (b) to (d) can > be removed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (DERBY-4857) Utilize the SOAP API to fetch JIRA issue list for release notes generation
[ https://issues.apache.org/jira/browse/DERBY-4857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12924584#action_12924584 ] Rick Hillegas commented on DERBY-4857: -- Thanks for the additional patches, Kristian. I think that I will wait for you to commit this work before I test-drive it. How do I run this machinery now? I suspect that "ant genrelnotes" isn't good enough. I probably need to specify a number of variables (such as my jira credentials, the release id, the filter id, etc..). What does the command line look like? I'm happy with a single master target. Thanks. > Utilize the SOAP API to fetch JIRA issue list for release notes generation > -- > > Key: DERBY-4857 > URL: https://issues.apache.org/jira/browse/DERBY-4857 > Project: Derby > Issue Type: Improvement > Components: Build tools >Affects Versions: 10.7.1.0 >Reporter: Kristian Waagan >Assignee: Kristian Waagan > Attachments: derby-4857-1a-jirasoap_relnotes.diff, > derby-4857-1a-jirasoap_relnotes.stat, > derby-4857-2a-jirasoap_maven_client.diff, > derby-4857-2a-jirasoap_maven_client.stat, > derby-4857-3a-jirasoap_relnotesgen_changes.diff, > derby-4857-3a-jirasoap_relnotesgen_changes.stat, > derby-4857-4a-jirasoap_ant_integration.diff, > derby-4857-4a-jirasoap_ant_integration.stat > > > Somewhat simplified, the release manager (RM) must currently perform the > following manual steps to feed the release note generate the data it needs: > a) Create manual JIRA filter to select issues addressed by the release. > b) Save the filter result to disk as XML. > c) Write/modify the XML parser to be able to parse the report. > d) Determine and record all JIRA release note attachment ids for the issues > requiring a release note. > By using the current version of the SOAP API (3.13.5), steps (b) to (d) can > be removed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (DERBY-4857) Utilize the SOAP API to fetch JIRA issue list for release notes generation
[ https://issues.apache.org/jira/browse/DERBY-4857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12924097#action_12924097 ] Dag H. Wanvik commented on DERBY-4857: -- Discussed Rick's 5) points to define ancestry with Kristian a bit. I think Rick's definition makes sense: B.y+ is neither an ancestor or descendant of A.x+, so any release notes for patch P added in A.x+ should not be culled from B.y+. Iff A.x is the first release of A, both B.y and B.y+ are descendants of A.x, if I understand the definition correctly, so fixes made in A.x *should* be culled for B.y as well as for B.y+. > Utilize the SOAP API to fetch JIRA issue list for release notes generation > -- > > Key: DERBY-4857 > URL: https://issues.apache.org/jira/browse/DERBY-4857 > Project: Derby > Issue Type: Improvement > Components: Build tools >Affects Versions: 10.7.1.0 >Reporter: Kristian Waagan >Assignee: Kristian Waagan > Attachments: derby-4857-1a-jirasoap_relnotes.diff, > derby-4857-1a-jirasoap_relnotes.stat > > > Somewhat simplified, the release manager (RM) must currently perform the > following manual steps to feed the release note generate the data it needs: > a) Create manual JIRA filter to select issues addressed by the release. > b) Save the filter result to disk as XML. > c) Write/modify the XML parser to be able to parse the report. > d) Determine and record all JIRA release note attachment ids for the issues > requiring a release note. > By using the current version of the SOAP API (3.13.5), steps (b) to (d) can > be removed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (DERBY-4857) Utilize the SOAP API to fetch JIRA issue list for release notes generation
[
https://issues.apache.org/jira/browse/DERBY-4857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12923971#action_12923971
]
Rick Hillegas commented on DERBY-4857:
--
Thanks again for the patch, Kristian. I updated my client, which got me past
the build issues. After that, I was able to test-drive the patch and
successfully build the release notes. Love it. A couple comments:
o It would be nice if the tool had a quiet mode. Maven is pretty chatty and
yours truly doesn't need to see the list of excluded bugs.
o Maven coughs up the following warning. It didn't seem to hurt anything but
I'm probably not the only person who will be puzzled by it:
WARNING: Unable to find required classes (javax.activation.DataHandler and
javax.mail.internet.MimeMultipart). Attachment support is disabled.
o I had to remove the following sanity-check from ReleaseNotesGenerator (line
282). It will kill release notes generation for feature releases. That is
because the release manager wants to publish the release notes a good week
before creating the branch and building the first release candidate. At that
time, the version number in release.properties is still an alpha version
number. I tripped across the fact that the version number in release.properties
on the trunk was 10.7.0.0 but I was trying to generate release notes for
10.7.1.0:
else if (!relVer.equals(releaseID)) {
throw new IllegalStateException("target release version mismatch " +
"between release.properties and bug list: " + releaseID +
" != " + relVer);
}
I think that the release number which appears in RELEASE-NOTES.html should
originate with the release number which you specify when you run "java -jar
target/JiraSOAP-LATEST-jar-with-dependencies.jar".
At this point, you have removed one of the redundant places where we specify
the release number (namely, in releaseSummary.xml). That's progress. I don't
think we need to sand this down further, although it's worth thinking about
streamlining how many times we still specify a release id:
o We specify a release id when we define the jira filter which defines the raw
stream of bug ids.
o We specify a release id when we run "java -jar
target/JiraSOAP-LATEST-jar-with-dependencies.jar".
o We specify a release id when we run the master target which builds the
release candidate.
Here is the script which I used to tie together all of the pieces of
release-notes generation. This may be useful to other release managers who want
to test-drive this patch:
Thanks,
-Rick
#! /bin/bash
#
# Run the machinery which creates the release notes. Make sure
# that you are not on a corporate VPN--otherwise maven may hang
# while trying to access the network.
#
# Arguments:
#
# $1 jira user name
# $2 jira password
# $3 release version (e.g. 10.7.1.0)
# $4 numeric id of filter used to create jira report of fixed bugs (e.g.
12314683)
#
# E.g.:
#
# createReleaseNotes rhillegas mypassword 10.7.1.0 12314683
export jiraname=$1
export jirapassword=$2
export derbyversion=$3
export relnotesdir=$HOME/junk/$derbyversion-relnotes
export filterid=$4
export destinationfile=$relnotesdir/fixedBugsList.txt
export remove=true
mkdir $relnotesdir
cd $BRANCH/tools/release/jirasoap
# build the application which uses SOAP to tease information out of JIRA
mvn -Pbuildclient
# now produce the filtered list of issues
java -jar target/JiraSOAP-LATEST-jar-with-dependencies.jar $jiraname
$jirapassword $derbyversion $filterid $destinationfile $remove
# now generate RELEASE-NOTES.html from the filtered list
cd ..
ant -Drelnotes.src.reports=$relnotesdir genrelnotes
> Utilize the SOAP API to fetch JIRA issue list for release notes generation
> --
>
> Key: DERBY-4857
> URL: https://issues.apache.org/jira/browse/DERBY-4857
> Project: Derby
> Issue Type: Improvement
> Components: Build tools
>Affects Versions: 10.7.1.0
>Reporter: Kristian Waagan
>Assignee: Kristian Waagan
> Attachments: derby-4857-1a-jirasoap_relnotes.diff,
> derby-4857-1a-jirasoap_relnotes.stat
>
>
> Somewhat simplified, the release manager (RM) must currently perform the
> following manual steps to feed the release note generate the data it needs:
> a) Create manual JIRA filter to select issues addressed by the release.
> b) Save the filter result to disk as XML.
> c) Write/modify the XML parser to be able to parse the report.
> d) Determine and record all JIRA release note attachment ids for the issues
> requiring a release note.
> By using the current version of the SOAP API (3.13.5), steps (b) to (d) can
> be removed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a co
[jira] Commented: (DERBY-4857) Utilize the SOAP API to fetch JIRA issue list for release notes generation
[ https://issues.apache.org/jira/browse/DERBY-4857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12923614#action_12923614 ] Kristian Waagan commented on DERBY-4857: Sorry for providing the crappy patch, Rick. As I said earlier, no need to do ant clobber to test the SOAP client ;) In any case, I have committed the patch for DERBY-4858. Please update your svn workspace and try again. I haven't had the time to test the release ancestry scenario you mentioned, but I do plan to make it easy to override the ancestry from the command line. There will be at least one follow-up patch (your existing comments have not been addressed, and I suspect there may be more comment once you get the client running). > Utilize the SOAP API to fetch JIRA issue list for release notes generation > -- > > Key: DERBY-4857 > URL: https://issues.apache.org/jira/browse/DERBY-4857 > Project: Derby > Issue Type: Improvement > Components: Build tools >Affects Versions: 10.7.0.0 >Reporter: Kristian Waagan >Assignee: Kristian Waagan > Attachments: derby-4857-1a-jirasoap_relnotes.diff, > derby-4857-1a-jirasoap_relnotes.stat > > > Somewhat simplified, the release manager (RM) must currently perform the > following manual steps to feed the release note generate the data it needs: > a) Create manual JIRA filter to select issues addressed by the release. > b) Save the filter result to disk as XML. > c) Write/modify the XML parser to be able to parse the report. > d) Determine and record all JIRA release note attachment ids for the issues > requiring a release note. > By using the current version of the SOAP API (3.13.5), steps (b) to (d) can > be removed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (DERBY-4857) Utilize the SOAP API to fetch JIRA issue list for release notes generation
[ https://issues.apache.org/jira/browse/DERBY-4857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12923603#action_12923603 ] Rick Hillegas commented on DERBY-4857: -- Thanks for the advice about how to test-drive the patch, Kristian. I reverted ReportParser.java, then did "ant clobber" followed by "ant all". Now I see this build error: [echo] building generated sanity info [java] Warning: Lookahead adequacy checking not being performed since option LOOKAHEAD is more than 1. Set option FORCE_LA_CHECK to true to force checking. [javac] /Users/rh161140/derby/mainline/trunk/java/build/org/apache/derbyBuild/ChangesFileGenerator.java:200: cannot find symbol [javac] symbol : variable bugListDoc [javac] location: class org.apache.derbyBuild.ChangesFileGenerator [javac] for (Iterator i = JiraIssue.createJiraIssueList( bugListDoc, excludeReleaseIDList, reportParser ).iterator(); i.hasNext(); ) [javac] ^ [javac] 1 error BUILD FAILED /Users/rh161140/derby/mainline/trunk/build.xml:526: The following error occurred while executing this line: /Users/rh161140/derby/mainline/trunk/build.xml:561: The following error occurred while executing this line: /Users/rh161140/derby/mainline/trunk/java/build/build.xml:59: The following error occurred while executing this line: /Users/rh161140/derby/mainline/trunk/java/build/org/apache/derbyBuild/build.xml:53: Compile failed; see the compiler error output for details. > Utilize the SOAP API to fetch JIRA issue list for release notes generation > -- > > Key: DERBY-4857 > URL: https://issues.apache.org/jira/browse/DERBY-4857 > Project: Derby > Issue Type: Improvement > Components: Build tools >Affects Versions: 10.7.0.0 >Reporter: Kristian Waagan >Assignee: Kristian Waagan > Attachments: derby-4857-1a-jirasoap_relnotes.diff, > derby-4857-1a-jirasoap_relnotes.stat > > > Somewhat simplified, the release manager (RM) must currently perform the > following manual steps to feed the release note generate the data it needs: > a) Create manual JIRA filter to select issues addressed by the release. > b) Save the filter result to disk as XML. > c) Write/modify the XML parser to be able to parse the report. > d) Determine and record all JIRA release note attachment ids for the issues > requiring a release note. > By using the current version of the SOAP API (3.13.5), steps (b) to (d) can > be removed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (DERBY-4857) Utilize the SOAP API to fetch JIRA issue list for release notes generation
[ https://issues.apache.org/jira/browse/DERBY-4857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12923500#action_12923500 ] Rick Hillegas commented on DERBY-4857: -- Thanks for the additional instructions, Kristian. I will take a closer look later today. Concerning the semantics of getAncestors(): I don't think we have an example of the problem in our existing set of releases. We almost had an example involving the following releases: o 10.4.1.3 (released 2008-04-24), whose preceding release was 10.3.2.1 o 10.3.3.0 (released 2008-05-12) The problem would have occurred if the release dates for 10.4.1.3 and 10.3.3.0 were reversed. Let me try to restate the problem. 1) Suppose we have two active branches A and B where A < B. We have already cut official releases off both branches: A.x and B.y. 2) We discover that we have a serious security or data corruption bug: . 3) We fix in both the A and B branches. 4) Then the community cuts a new emergency release A.x+ off the A branch. 5) Afterward, the community cuts an emergency release B.y+ off the B branch. Note that precedingRelease( B.y+ ) = B.y NOT A.x. Under definition (a), A.x+ is an ancestor of B.y+. That means that will not appear in the release notes for B.y+. That's a shame because the reason we're issuing B.y+ is to fix . However, under definition (b), A.x+ wouldn't be an ancestor of B.y+ so would appear in the release notes. Everything would be fine. Note that the problem would not occur if we reversed the order of steps (3) and (4). That is, we won't see the problem if the emergency release on the later branch is produced BEFORE the emergency release on the earlier branch. Hope this makes more sense now. > Utilize the SOAP API to fetch JIRA issue list for release notes generation > -- > > Key: DERBY-4857 > URL: https://issues.apache.org/jira/browse/DERBY-4857 > Project: Derby > Issue Type: Improvement > Components: Build tools >Affects Versions: 10.7.0.0 >Reporter: Kristian Waagan >Assignee: Kristian Waagan > Attachments: derby-4857-1a-jirasoap_relnotes.diff, > derby-4857-1a-jirasoap_relnotes.stat > > > Somewhat simplified, the release manager (RM) must currently perform the > following manual steps to feed the release note generate the data it needs: > a) Create manual JIRA filter to select issues addressed by the release. > b) Save the filter result to disk as XML. > c) Write/modify the XML parser to be able to parse the report. > d) Determine and record all JIRA release note attachment ids for the issues > requiring a release note. > By using the current version of the SOAP API (3.13.5), steps (b) to (d) can > be removed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (DERBY-4857) Utilize the SOAP API to fetch JIRA issue list for release notes generation
[ https://issues.apache.org/jira/browse/DERBY-4857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12923162#action_12923162 ] Kristian Waagan commented on DERBY-4857: Hi Rick, Thanks for trying to test the patch. I'm unable to give you proper feedback right now, but here are a few quick hints. The broken build problem will be fixed by DERBY-4858, alternatively you can just revert the ReportParser class in java/build/org/apache/derbyBuild. I missed this problem because I was just messing around in tools/release and didn't do a 'ant clobber all' from the root. You have to go into tools/release/jirasoap and issue the mvn-command from there. The directory jirasoap contains a fully independent Maven-project. It doesn't depend on the rest of the Derby code at all. It is not clear to me that the getAncestors-method is behaving incorrectly, but that may be the case. Are you able to test this by using a set of the existing releases, or have we not yet created a scenario as you described with potential future versions in your comment? For instance, I was under the impression that the current version of the tool is able to deal correctly with the 10.3.3.0 release. It was released between 10.4.2.1 and 10.4.2.0. The tool uses the release version and the release date to determine the preceding release. You can invoke the tool with the ancestors-argument to print the list of ancestors for a given version (see the usage msg). Thanks, > Utilize the SOAP API to fetch JIRA issue list for release notes generation > -- > > Key: DERBY-4857 > URL: https://issues.apache.org/jira/browse/DERBY-4857 > Project: Derby > Issue Type: Improvement > Components: Build tools >Affects Versions: 10.7.0.0 >Reporter: Kristian Waagan >Assignee: Kristian Waagan > Attachments: derby-4857-1a-jirasoap_relnotes.diff, > derby-4857-1a-jirasoap_relnotes.stat > > > Somewhat simplified, the release manager (RM) must currently perform the > following manual steps to feed the release note generate the data it needs: > a) Create manual JIRA filter to select issues addressed by the release. > b) Save the filter result to disk as XML. > c) Write/modify the XML parser to be able to parse the report. > d) Determine and record all JIRA release note attachment ids for the issues > requiring a release note. > By using the current version of the SOAP API (3.13.5), steps (b) to (d) can > be removed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (DERBY-4857) Utilize the SOAP API to fetch JIRA issue list for release notes generation
[
https://issues.apache.org/jira/browse/DERBY-4857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12923152#action_12923152
]
Rick Hillegas commented on DERBY-4857:
--
Thanks for the patch, Kristian. I have taken a look at it and have a couple
preliminary comments to offer. Unfortunately, I don't know enough about this
technology to be able to test-drive the patch. Here are some things I tried in
order to build this patch:
o I changed directory to the root of my client and typed "mvn -Pbuildclient".
Nothing happened. The buildclient target was not recognized.
o I changed directory to maven2 and typed "mvn -Pbuildclient". Again, the
buildclient target was not recognized.
o From the root of my client, I did an "ant clobber" followed by "ant all".
This build failed because ReportParser was not found.
I would like to test-drive the patch. Could you expand the instructions? Think
in terms of writing a cookbook for someone who knows absolutely nothing about
SOAP and very little about maven. For instance, there seem to be some classes
which are generated by the SOAP/maven machinery but I don't know how or when
that generation is supposed to happen. Thanks.
---
Here are some preliminary comments on the patch:
o The name Client seems a little vague to me. Could this class be renamed to
something which captures more of its behavior, like JiraFilterReader or
FilteredIssueLister? There may be a small chunk of code in there which could be
carved out into a generic Client or SoapClient or JiraSoapClient class, but
most of the work seems focused on reading a Jira filter and writing a list of
issues.
o If I understand the code correctly, the logic in Client.getAncestors() is
trying to construct the upgrade trajectory which will be used to calculate the
set of issues to include in the release notes. Most of the work is done in
Client.getReleasedVersions(). Most of the time, I think that this logic will do
the right thing. However, its concept of ancestor differs somewhat from the
concept of ancestor which is assumed by our release notes process. That concept
is discussed in this email thread:
http://old.nabble.com/Release-Notes-to5931299.html#a6248974 Here's how I think
the concepts differ:
a) For Client.getAncestors(), released distribution A is an ancestor of release
candidate B if (A.releaseID < B.releaseID).
b) Given the discussion in the email thread referenced above, ancestry should
be recursively defined by the precedingRelease function. If C is a release,
then precedingRelease( C ) is the "preceding release" mentioned at the
beginning of the release notes for C. The ancestry set of candidate B is {
precedingRelease(B), precedingRelease(precedingRelease(B)), ...}. In this
scheme, released distribution A is an ancestor of release candidate B if A is
in that ancestry set.
Definition (a) yields a larger set of ancestors than definition (b) does. I
believe that the logic in (a) will overaggressively filter issues. Here is the
problem case:
i) We release 10.6.2.1.
ii) Then we release 10.7.1.0.
iii) Then we fix bug in both the 10.6 and 10.7 branches.
iv) Then we release 10.6.3.0, including the fix for .
v) Then we release 10.7.2.0, also including the fix for . Note that
precedingRelease( 10.7.2.0 ) = 10.7.1.0 NOT 10.6.3.0.
vi) The fix for will not appear in the release notes for 10.7.2.0 under
definition (a). However, the fix will appear in the release notes for 10.7.2.0
under definition (b).
Unfortunately, I don't think that Jira contains enough information to calculate
release ancestry under definition (b). I think that the information can be
reconstructed by parsing the release notes in our subversion tags.
Alternatively, we could maintain the ancestry graph in the codeline.
What you have so far is a big improvement over the current situation. I think
it would be OK to fix getAncestors() later on.
> Utilize the SOAP API to fetch JIRA issue list for release notes generation
> --
>
> Key: DERBY-4857
> URL: https://issues.apache.org/jira/browse/DERBY-4857
> Project: Derby
> Issue Type: Improvement
> Components: Build tools
>Affects Versions: 10.7.0.0
>Reporter: Kristian Waagan
>Assignee: Kristian Waagan
> Attachments: derby-4857-1a-jirasoap_relnotes.diff,
> derby-4857-1a-jirasoap_relnotes.stat
>
>
> Somewhat simplified, the release manager (RM) must currently perform the
> following manual steps to feed the release note generate the data it needs:
> a) Create manual JIRA filter to select issues addressed by the release.
> b) Save the filter result to disk as XML.
> c) Write/modify the XML parser to be able to parse the report.
> d) Determine and record all JIRA release note att
