Issue Details (XML | Word | Printable)

Key: JDO-374
Type: Improvement Improvement
Status: Resolved Resolved
Resolution: Fixed
Priority: Minor Minor
Assignee: Michael Bouschen
Reporter: Craig Russell
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
JDO

Add a maven target to create distribution artifacts for all subprojects of tck20

Created: 24/Apr/06 06:53 PM   Updated: 30/Apr/06 09:13 PM
Return to search
Component/s: api2, core2, enhancer2, tck2
Affects Version/s: JDO 2 rc1
Fix Version/s: JDO 2 final

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works JDO-374-mbo.patch 2006-04-29 02:16 AM Michael Bouschen 4 kB
Text File Licensed for inclusion in ASF works JDO-374.patch 2006-04-24 06:55 PM Craig Russell 1 kB

Resolution Date: 30/Apr/06 09:13 PM


 Description  « Hide
There are several maven tck20 build targets. I propose to add a target that builds the distribution targets for all subprojects of tck20.



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Craig Russell added a comment - 24/Apr/06 06:55 PM
Please review this patch. It is at the trunk or branches/2.0 level.

Michael Bouschen added a comment - 24/Apr/06 08:57 PM
I have two comments/questions about the patch:
- Please update the description text of the tck20.dist goal. It can use the same text as the help output for tck20.dist.
- I'm wondering about the call <attainGoal name="tck20.default"> in the middle of the tck20.dist body? Is this intentional? If yes, I propose to use the prereqs attribute instead:
   <goal name="tck20.dist" prereqs="tck20.default">
          description="Creates distributions of tck20 and dependent JDO2 projects">
        <j:set var="maven.multiproject.includes">${tck20.projects}</j:set>
        <j:set var="goal">dist</j:set>
        <attainGoal name="multiproject:goal"/>
    </goal>


Craig Russell added a comment - 27/Apr/06 05:38 AM
It looks like we need three different maven goals to accomplish the tasks identified in the "How to release" document:

One goal builds the release artifacts, copies them to the releases directory, and signs them. This allows the release manager to perform local testing before making the artifacts available to the community for testing.
maven tck20.dist

Another goal pushes the release artifacts to a staging area on the Apache server but doesn't publish them to the mirror sites. This allows the community to test the artifacts and then vote on release.
maven -Duser=mbo -Dserver=people.apache.org tck20.stage

The final goal pushes the release artifacts to the mirror-accessible Apache server. The mirrors then pick up the release.
maven -Duser=mbo -Dserver=people.apache.org tck20.mirror

The goals ideally would be defined in the trunk (and therefore at the branches/x.y.z level) but executed in each subproject directory. This allows individual releases of projects with a standard format.

For example, to release just api20,
cd branches/2.0.1/api20
maven dist
maven stage
maven mirror

Michael Bouschen added a comment - 29/Apr/06 02:16 AM
Please review the patch JDO-374-mbo.patch. I understand these changes should go into the trunk and into braches/2.0.

It adds a goal tck20.dist to maven.xml on the trunk or branches/2.0 level. I think it is not necessary to call tck20.defualt from this goal, since maven dist takes care of compiling all the sources.

It also adds a postGoal to the maven dist goal that copies the distribution and the files for the remote maven repositories to the releases directory parallel to trunk and branches.

There is an issue with automatically signing these files, because it requires typing in the passphrase and I could not convince maven to accept input for a script called from a goal. So I propose we use a script like the sign-directoy script Craig attached to JDO-365. I also propose
to create scripts to push the artifacts to the staging area and the mirror-accessible Apache server and not use maven goals for this.

Craig Russell added a comment - 29/Apr/06 07:48 AM
Just one comment. The scripts now copy three TCK source artifacts to the releases/xxx/dist directory:
-rw-r--r-- 1 clr staff 1799038 Apr 28 17:33 jdo2-tck-SNAPSHOT-src-28_Apr_2006.zip
-rw-r--r-- 1 clr staff 866691 Apr 28 17:33 jdo2-tck-SNAPSHOT-src.tar.gz
-rw-r--r-- 1 clr staff 1799038 Apr 28 17:33 jdo2-tck-SNAPSHOT-src.zip

But thinking a bit more about this, the reason we had the funnny name in the first place was to match the JCP naming conventions. But now it looks like we don't need the JCP to distribute it, so we can go back to the "real" naming conventions. What do you think?

Michael Bouschen added a comment - 30/Apr/06 12:25 AM
I agree. I will change the dist postGoal and remove the code creating the zip with the date in the name. So the dist goal in tck20 will create only two files: jdo2-tck-SNAPSHOT-src.tar.gz and jdo2-tck-SNAPSHOT-src.zip. I will include this change when checking in the patch.

Michael Bouschen added a comment - 30/Apr/06 09:13 PM
Checked in the patch including the removal of the dist postGoal that creates the zip with the date in the name (see revision 398350). I checked in the patch into the trunk and into the 2.0 branch.