1 / 15

Managing Local Sakai Builds: Vendor Drops and Alternatives

Managing Local Sakai Builds: Vendor Drops and Alternatives. Ray Davis University of California, Berkeley July 3, 2008 ray@media.berkeley.edu. Subversion Goodness = Single Repository. No support for inter-repository operations … not even on same server … despite the lack of error messages.

traci
Download Presentation

Managing Local Sakai Builds: Vendor Drops and Alternatives

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Managing Local Sakai Builds: Vendor Drops and Alternatives Ray Davis University of California, Berkeley July 3, 2008 ray@media.berkeley.edu

  2. Subversion Goodness = Single Repository • No support for inter-repository operations • … not even on same server • … despite the lack of error messages.

  3. Different repository =“Vendor Release” Typical scenario • Small patch or ongoing customization • Infrequent releases from vendor Details • http://svnbook.red-bean.com/en/1.4/svn.advanced.vendorbr.html • Other conference presentations • Sakai Confluence

  4. Vendor Drop Me Vendor Local Source for V1.1 Customization svn_load_dirs.pl Source for V2.1

  5. Sakai Maintenance Branch“Vendor Drop” “Me” (Us) “Vendor” (More of Us) Exported Rev 3753 Exported Rev 3920 Customization … Exported Rev 4039 Exported Rev 4215 Local Bug fix Feature … … … …

  6. BREAKDOWN ! • Extremely long times for all steps. • Frequent script failures. • Frequent bogus conflicts. • High overhead on moves and renames. • Patches are extra work and noise-prone.

  7. Slim down with svn:externals # Local customizations in local repo # Modules in Contrib discussion \ https://source.sakaiproject.org/contrib/deprecated/discussion/branches/sakai_2-5-x opencast \ https://source.sakaiproject.org/contrib/ucb/webcast/.../ # Untouched modules in 2.5.x access https://source.sakaiproject.org/svn/access/branches/sakai_2-5-x alias https://source.sakaiproject.org/svn/alias/branches/sakai_2-5-x …

  8. Slim down with svn:externals • Release management = externals management • Specify revs or tags for local releases • U. California, Davis, uses Groovy scripts to manage externals: https://confluence.ucdavis.edu/confluence/display/UCDSAKAI/Home https://mware.ucdavis.edu/svn/ucd-sakai/svn-scripts/trunk/src/edu/ucdavis/sakai/svn/

  9. Site Info Site Info Chat Chat User User Roster Roster Gradebook Gradebook Wiki Wiki Component Component … … Slim down with svn:externals “Me” (Us) “Vendor” (More of Us) … Exported Site Info Customization “Real” Chat Exported Gradebook Bug fix “Real” Roster Exported Content Exported Gradebook Feature … “Real” Wiki Exported DB “Real” Component … Local

  10. Sakai Goodness = Collaboration Develop Locally. Merge Globally. Sounds like Subversion branching…. http://thread.gmane.org/gmane.comp.cms.sakai.devel/19331 http://www.nabble.com/Re%3A-making-%22massively-inclusive-Subversion%22-happen-td17105598.html

  11. Site Info Site Info Chat Chat User User Roster Roster Gradebook Gradebook Wiki Wiki Component Component … … Collaborate in Single Repository Our work on Sakai Rest of Sakai Customization Branch … Site Info Chat Gradebook Bug fix Branch Roster Content Feature Branch … DB Component … Local

  12. Collaborate : Customization # Check out bspace branch for site-manage svn co \ https://source.sakaiproject.org/svn/bspace/site-manage/sakai_2-5-x \ site-manage svn merge -r 47112:47600 \ https://source.sakaiproject.org/svn/site-manage/branches/sakai_2-5-x \ site-manage # Deal with any conflicts, then merge for QA.

  13. Collaborate : Bug Fix # Enter Sakai JIRA. # Create local branch. svn mkdir …/bspace/gradebook svn copy …/gradebook/branches/sakai_2-5-x …/bspace/gradebook # Check out bspace/gradebook, create failing test, fix bug, commit. # Switch local “svn:externals” to local branch and test in QA. # Merge from local branch to checkout of trunk and fix any conflicts. svn merge –c 47111 …/bspace/gradebook/ \ [working-copy]/gradebook/trunk # Update JIRA and request merge from local branch to trunk: svn merge –c 47111 …/bspace/gradebook/ ../gradebook/trunk

  14. Collaborate : Multi-Project Feature # Create feature branch. svn mkdir …/bspace/SAK-13398 svn copy …/content/trunk …/bspace/SAK-13398 svn copy …/db/trunk …/bspace/SAK-13398 # Develop and test locally. Commit local branch. # If possible, deploy locally by merging to 2-5-x branch and editing svn:externals. # Test merge from local branches to check-out of trunk. svn merge -r45798:46217 .../bspace/SAK-13398/content content svn merge -r45798:46217 .../bspace/SAK-13398/db db # Request merge to trunk.

  15. Collaborate : The Future • Seth Theriault leading effort to enable top-level “institution” area • Community must supply administrators and other resources http://bugs.sakaiproject.org/confluence/display/MGT/Subversion+and+Maven+changes

More Related