New 2.9 Build Process

This page is to collect the thoughts and track the progress on the best way to build/release Sakai CLE. It was based on the discussion started on the cle-release-team list.

Please add any tips/tricks/suggestions or corrections!


Currently I believe there's 3 types of groups that may want to check out the source of Sakai, they probably have different needs. In the past (2.5 pre-indie world) this was nearly all accomplished the same. You checked out sakai/trunk and went to work. Now, indies are everywhere, many people brew up their own full source checkouts and ways of doing things. Additionally with Anthony Whyte leaving CLE release management and more tools coming aboard indie some things should change.

  • Maintenance Developers (May need to work on features that effect all of the source)
    • Trunk-all is an external that has everything in it. For now, just use that:
    • Soon there may be a 'Sakai Core (like cafe)' and a 'Sakai Options (indies)' which would require 2 checkouts
    • From this you can just run "mvn clean install"
      • Additional options include 
      • (Pack Profiles) -Ppack-demo, -Ppack-bin, -Ppack-src, -Ppack (does all 3)
      • (Sakai deployment) sakai:deploy -Dmaven.tomcat.home=/some/directory/to/deploy/to
      • (Skip tests) -Dmaven.test.skip=true
    • TODO: Document or find documentation about core-deploy for local deployers who want to customize their build
  • Single (minimal) Tool Developers (Working on a single Sakai tool)
    • The easiest way is to just convert your tool to an indie with a pure-poms parent. You don't need any other code. 
    • For a new tool, you may want to use the Sakai Wicket Maven Archetype
    • You can use the same build options as Maintenance Developers (mvn clean install + options)
    • TODO: Provide link to converting tool to indie and some documentation about purepoms
    • TODO: Provide link to current javadocs for kernel and other tools
  • Release Team (The group that actually needs to package and release the next version of Sakai)
    • The release team will have to check out and release each tool as needed and release it. We're working on a way to automate this. Stay tuned!
    • Ideally the maven release:prepare task will be automated, or dependent modules will be automatically versioned.
    • Release Management Documents
    • TODO: Document the release process better

Additional tips and tricks

Dr. Chuck provided a full source checkout via shell scripts.  These scripts are now updated to use sakai-trunk-all (and Tomcat 7) as described herein: https://source.sakaiproject.org/contrib/csev/trunk/scripts/sakai-full/ 

If you want the older scripts, there are here: https://source.sakaiproject.org/contrib/csev/branches/2.8-sakai-full/

Steve provided a link to a minimal package for 2.8.x: https://source.sakaiproject.org/svn//msub/anu.edu.au/services/2.8.x/

Good general development tips on the Sakai Programmer Manual