[Building Sakai] How to checkout the 2.9.0 tag source including all tagged indie source?

Gast, Cynthia (cmw6s) cmw6s at eservices.virginia.edu
Wed Nov 28 07:13:34 PST 2012


Hi Matthew,
OK, good information and thank you again.  I have not yet looked at how the indies build now in 2.9 -- still trying to get their source exported :-)

I'm concerned if downloading the indie source does not work to allow us to build the indie projects.  In the past, we have changed all version numbers to append ".uva" (e.g., 2.9.0.uva, 3.0.0.uva, etc) so we can be assured we are deploying to tomcat the artifacts we have built locally (vs having community versions, not built with our kernel, downloaded).  It sounds like by continuing to do this, we will win most or all of the build battle you describe?

Thanks,
Cindy @ UVa

________________________________
From: Matthew Jones [matthew at longsight.com]
Sent: Wednesday, November 28, 2012 9:16 AM
To: Gast, Cynthia (cmw6s)
Cc: Steve Swinsburg; sakai-dev at collab.sakaiproject.org
Subject: Re: [Building Sakai] How to checkout the 2.9.0 tag source including all tagged indie source?

I really don't think that this is going to work for you because of how the build is setup. All of the indies have a parent of master instead of base, so they won't actually build if you just include them in externals. You have to put them all in the base pom and remove them all from core deploy so the build doesn't download the assemblies. However since they have released artifacts and not actually in the dependency tree maven may still download some artifacts before the ones you customized get built. I don't think it could be guaranteed to be predictable/consistent unless you wrote a script to change all of the versions in all of the poms to something unique and put the indie parent back to base (this is what we did at Michigan). It might *look*: like it's working but if you examined all of the jars across the board they might be named identically but actually have different md5 sums and sizes. (We actually verified this too at Michigan)

I actually thing that sakai-2.9.x all could have the same problems since the snapshots are also in the repository unless the snapshot repository was turned off in a parent pom. Perhaps this is what some of the other developers were commenting about in the past.

I'm seriously starting to question the value proposition of the majority of indies in the core, it seems like it's just more work for me, more work for everyone building the code in the community and more work for new developers. If you use the indies 'as is´ it works out okay, but if you want to customize them there really isn't a clear path for doing that still. Perhaps we could have a two-step maven build process using a shell script and two sets of externals, one that builds all of the indies individually in order, then one that builds the core. This should guarantee that the indies it builds are in the local repository and used correctly. But a one step build process I wouldn't trust.


On Wed, Nov 28, 2012 at 8:53 AM, Gast, Cynthia (cmw6s) <cmw6s at eservices.virginia.edu<mailto:cmw6s at eservices.virginia.edu>> wrote:
Thanks Steve!
I'll make a stab at the externals this morning, send it to you both -- let you put it in place and I'll be happy to try it once you say so.

Cindy

________________________________
From: Steve Swinsburg [steve.swinsburg at gmail.com<mailto:steve.swinsburg at gmail.com>]
Sent: Wednesday, November 28, 2012 6:40 AM
To: Matthew Jones
Cc: Gast, Cynthia (cmw6s); sakai-dev at collab.sakaiproject.org<mailto:sakai-dev at collab.sakaiproject.org>

Subject: Re: [Building Sakai] How to checkout the 2.9.0 tag source including all tagged indie source?

It should be pretty easy to just create a .externals that points to the various tags instead of the branch, using the tagged 2.9.0 one as a base, then adding in the indie tags. Then combine that with the tagged version of core-deploy and the main pom and its done.

I'd imagine that is what Chris was suggesting, rather than specific revisions from the branch.
If it wasn't late in the eve I'd do it. Chris/Cynthia if you dont get to it before Friday, I'll get onto this.

cheers,
Steve


On Wed, Nov 28, 2012 at 12:19 PM, Matthew Jones <matthew at longsight.com<mailto:matthew at longsight.com>> wrote:
I'd just use the 2.9.x-all branch. If you used 2.9.0 you'd have to mess around too much with the core-deploy and change too many other versions.

If you wanted to lock it down to specific revisions, you'd want to have an msub in svn and make a copy of the 2.9.x-all branch, then either manually or with some script go down each external and set it to the revision which was tagged for 2.9.0

#Pseudocode
foreach external in 2.9.x-all {
do a regex of 2.9.x to 2.9.0
svn info on the 2.9.0 revision
print back revision number in the external
}
svn propset external
svn commit

I had a script that *kind of* did this for Michigan, but it set the latest 2.9.x revision, and I had to manually bump it back if we didn't want that version.
https://source.sakaiproject.org/svn/msub/umich.edu/ctools/builds/trunk/tools/versionSetter.pl

I didn't think it would take more than an hour to write this script, it ended up taking a little more than 2 hours because the poms are pretty inconsistent. The names of the artifactId don't always match the names of the directory they're in, not all poms have version tags in them (so they inherit from the master, this is mostly true for the ones in core) and the core is still on a 2 digit version.

However the versions for core and indies for 2.9.0 should be correct in this externals
https://source.sakaiproject.org/contrib/cle-release/scripts/externals/

Then if you did want some newer version you could just update it.

What was your suggestion, Chris?


On Tue, Nov 27, 2012 at 2:45 PM, Gast, Cynthia (cmw6s) <cmw6s at eservices.virginia.edu<mailto:cmw6s at eservices.virginia.edu>> wrote:
Hello:

We are setting up for our 2.9.0 upgrade.  We need source for all the projects.  First, I exported the 2.9.0 tag, but this only provides source for some projects (as has been discussed); all indie project tagged source would have to be acquired still.  I took a look at the checkout using the 2.9.x-all branches (svn export https://source.sakaiproject.org/svn/sakai/branches/sakai-2.9.x-all/ ./2.9.x-all).  I see the externals is set to the trunk branches.  So while it does allow me to acquire source for all the core + indie projects, it is source from trunk (with pom files referring to SNAPSHOT versions).

Has anyone created an externals that allows one to export the source for the 2.9.0 tag plus the tag versions of the indies that make it up? ... a  2.9.0-all ?  This would be a huge help to those of us who do build all source.

If not, would it help if I created the externals file to allow us to do this?  Otherwise, I'll go get each indie's source one-by-one according to the version tag.

Thanks for considering this,
Cynthia Gast
UVa Sakai development team
cmw6s at virginia.edu<mailto:cmw6s at virginia.edu>

_______________________________________________
sakai-dev mailing list
sakai-dev at collab.sakaiproject.org<mailto:sakai-dev at collab.sakaiproject.org>
http://collab.sakaiproject.org/mailman/listinfo/sakai-dev

TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org<mailto:sakai-dev-unsubscribe at collab.sakaiproject.org> with a subject of "unsubscribe"


_______________________________________________
sakai-dev mailing list
sakai-dev at collab.sakaiproject.org<mailto:sakai-dev at collab.sakaiproject.org>
http://collab.sakaiproject.org/mailman/listinfo/sakai-dev

TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org<mailto:sakai-dev-unsubscribe at collab.sakaiproject.org> with a subject of "unsubscribe"


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20121128/2f8ef750/attachment.html 


More information about the sakai-dev mailing list