[Building Sakai] SAK-17135: trunk core-deploy/experimental profile implemented (do a svn update/fresh checkout of trunk)

Anthony Whyte arwhyte at umich.edu
Thu Oct 8 17:06:05 PDT 2009


I've implemented the core-deploy pom as well as added the experimental  
profile to the Sakai trunk base pom.  As I noted yesterday these pom  
additions/changes meet the following goals:

1) provide a single, aggregated mechanism for deploying non-kernel  
projects to Tomcat that are no longer part of the Sakai trunk build  
(e.g., common, search, soon others)
2) provide a Maven "experimental" profile (-Pexperimental) that allows  
for additional capabilities to be added to a Sakai trunk build for  
experimental/evaluative purposes (e.g., messageforums, sitestats, soon  
others).

The new experimental profile now allows us to easily deploy additional  
capabilities that are being evaluated for inclusion in upcoming  
releases (e.g., message-forums, sitestats).


TRUNK DEVELOPERS PLEASE DO THE FOLLOWING:

I tested core-deploy, the base pom changes and activation of the  
experimental profile by first deleting .m2/repository/org/ 
sakaiproject, then reinstalled the sakaiproject portion of the repo  
and deployed to a clean Tomcat (5.5.26) and empty MySQL sakai db  
(5.0.83).  You do not need to start completely fresh but at a minimum  
please do the following:

1.  perform an svn update or do a fresh checkout of trunk
2.  delete from your local .m2 repo
	.m2/repository/org/sakaiproject/common-deploy
	.m2/repository/org/sakaiproject/search-deploy
	(this latter step is optional but it's good to eliminate obsolete  
artifacts from your repo)	
3.  Deploy to a clean Tomcat


ACTIVATING FULL (DEFAULT) AND EXPERIMENTAL PROFILES

1.  Full (no change here)

cd /trunk/master
mvn clean install
cd ..
mvn clean install -Dmaven.test.skip=true sakai:deploy

Result: Sakai trunk projects + common and search snapshot artifacts  
will be installed in your repo and deployed to Tomcat.

/common (1.0-SNAPSHOT)
/search (1.2-SNAPSHOT)

2.  Experimental:

cd /trunk/master
mvn clean install
cd ..
mvn -Pexperimental clean install -Dmaven.test.skip=true sakai:deploy

Result: Sakai trunk projects + common, search, msgcntr and sitestats  
snapshot artifacts will be installed in your repo and deployed to  
Tomcat:

/common (1.0-SNAPSHOT)
/search (1.2-SNAPSHOT)
/msgcntr (1.5-SNAPSHOT)
/sitestats  (2.1-SNAPSHOT)

Note: if starting with an empty .m2/repository/org/sakaiproject (which  
I always recommend given these kind of changes) you will see that the  
"old" msgcntr artifacts contained in the following folders are NOT  
installed as is intended:

/msgcntr-base
/sakai-messageforums-api
/sakai-messageforums-component-impl
/sakai-messageforums-components
/sakai-messageforums-hbm
/sakai-messageforums-help
/sakai-messageforums-tool

I'll write all this up in confluence and along with David Horwitz  
write up the whole process of how to leverage the assembly and release  
plugins.

Cheers,

Anth




Begin forwarded message:

> From: Anthony Whyte <arwhyte at umich.edu>
> Date: October 7, 2009 3:54:44 PM EDT
> To: sakai-dev Developers <sakai-dev at collab.sakaiproject.org>
> Subject: [Building Sakai] SAK-17135: core-deploy pom
>
> I've written a pom I call core-deploy that I want to commit to the  
> sakai/trunk project that meets two goals:
>
> 1) provides a single, aggregated mechanism for deploying non-kernel  
> projects to Tomcat that are no longer part of the Sakai trunk build  
> (e.g., common, search, soon others)
> 2) provides a Maven "experimental" profile (-Pexperimental) that  
> allows for additional capabilities to be added to a Sakai trunk  
> build for experimental/evaluative purposes (e.g., messageforums,  
> sitestats, soon others)
>
> I want to commit this wee beastie.
>
> POM DESIGN AND BASE POM PROFILE MODIFICATIONS
>
> See http://jira.sakaiproject.org/browse/SAK-17135
>
> IMPLEMENTATION
>
> Implementing core-deploy involves:
>
> 1) adding core-deploy to sakai/trunk project
> 2) adding an "experimental" profile to the Sakai trunk base pom (see  
> below, it is not an exact copy of "full", e.g., msgcntr is dropped  
> as a module)
> 3) tweeking the Sakai trunk base pom "full" profile, adding  
> <module>core-deploy</module> and removing common-deploy and search- 
> deploy
> 4) deleting the redundant common-deploy and search-deploy poms in  
> sakai/trunk.
>
> IMPACT ON TRUNK DEVELOPERS
>
> Minimal.  After I commit my changes (and alert you), perform a fresh  
> checkout of trunk to pick up "core-deploy" and the base pom edits.   
> Delete org/sakaiproject/common-deploy and org/sakaiproject/search- 
> deploy from your .m2 repo.
>
> I've tested both core-deploy profiles locally and it performs as  
> expected; the full profile adds common and search to the deployment,  
> while "experimental" adds common, messageforms, search and sitestats  
> to the deployment.
>
> BACKGROUND
>
> Maven provides an assembly plugin that we use for project released  
> independently of Sakai (such as the Kernel) in order to assemble and  
> deploy binary archives to Tomcat. The resulting "tomcat-overlay"  
> archive is mapped internally to the locations of Sakai artifacts in  
> Tomcat (e.g., api and help jars in shared/lib, impl jars in / 
> components, etc.). Sakai builds invoke the kernel's assembly plugin  
> by including a "kernel-deploy" module in its build profiles. kernel- 
> deploy adds a kernel-assembly dependency that handles the packaging  
> of kernel artifacts and any required third-party dependencies for  
> deployment to Tomcat. Creating such assemblies is a fairly  
> straightforward process and one that can be replicated quite easily  
> across projects.
>
> David Horwitz, Steve Swinsburg and I have been working on setting up  
> a number of projects for independent releases (e.g., message-forums,  
> search, sitestats) using the Maven release plugin as well as  
> repackaging a number of related projects (e.g., gradebook, cm and  
> sections services repackaged as edu-services). Part of this work  
> involves the creation of assemblies and a bridging "deploy' pom that  
> we then wire into Sakai's build profiles in the same manner as  
> outlined above for the kernel.
>
> The core-deploy pom aggregates all the work of non-kernel deploy  
> poms into a single pom. Additionally it also includes "full" and  
> "experimental" build profiles; the latter provides a mechanism for  
> adding additional capabilities to Sakai trunk builds such as message- 
> forums and sitestats (to be followed by basiclti) that can be  
> included by simply invoking the -Pexperimental profile when building  
> and deploying Sakai trunk. The experimental profile is of particular  
> use to me (and hopefully others) since it provides a simple  
> mechanism for deploying projects being evaluated for potential  
> inclusion in future releases of Sakai. The pom can easily be  
> extended to include other core or experimental/evaluative projects  
> that have been prepped for use with the release plugin and  
> implemented the assembly plugin.
>
> Objections?
>
> Anthony
>
> _______________________________________________
> sakai-dev mailing list
> 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 
>  with a subject of "unsubscribe"


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20091008/c7c1d59b/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2417 bytes
Desc: not available
Url : http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20091008/c7c1d59b/attachment.bin 


More information about the sakai-dev mailing list