managing local sakai builds: vendor drops and alternatives

15
Managing Local Sakai Builds: Vendor Drops and Alternatives Ray Davis University of California, Berkeley July 3, 2008 [email protected]

Upload: traci

Post on 01-Feb-2016

31 views

Category:

Documents


0 download

DESCRIPTION

Managing Local Sakai Builds: Vendor Drops and Alternatives. Ray Davis University of California, Berkeley July 3, 2008 [email protected]. Subversion Goodness = Single Repository. No support for inter-repository operations … not even on same server … despite the lack of error messages. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Managing Local Sakai Builds: Vendor Drops and Alternatives

Managing Local Sakai Builds: Vendor Drops and

Alternatives

Ray DavisUniversity of California, Berkeley

July 3, 2008

[email protected]

Page 2: Managing Local Sakai Builds: Vendor Drops and Alternatives

Subversion Goodness = Single Repository

• No support for inter-repository operations• … not even on same server• … despite the lack of error messages.

Page 3: Managing Local Sakai Builds: Vendor Drops and Alternatives

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

Page 4: Managing Local Sakai Builds: Vendor Drops and Alternatives

Source forV1.1

Vendor Drop

Customization

Local

Me Vendor

Source forV2.1

svn_load_dirs.pl

Page 5: Managing Local Sakai Builds: Vendor Drops and Alternatives

Exported Rev 4215

Exported Rev 4039

Exported Rev 3920

Exported Rev 3753

Sakai Maintenance Branch“Vendor Drop”

Bug fix

Feature

Customization

Local

“Me” (Us) “Vendor” (More of Us)

……

Page 6: Managing Local Sakai Builds: Vendor Drops and Alternatives

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.

Page 7: Managing Local Sakai Builds: Vendor Drops and Alternatives

Slim down with svn:externals

# Local customizations in local repo

# Modules in Contribdiscussion \ https://source.sakaiproject.org/contrib/deprecated/discussion/branches/sakai_2-5-xopencast \ https://source.sakaiproject.org/contrib/ucb/webcast/.../

# Untouched modules in 2.5.xaccess https://source.sakaiproject.org/svn/access/branches/sakai_2-5-xalias https://source.sakaiproject.org/svn/alias/branches/sakai_2-5-x…

Page 8: Managing Local Sakai Builds: Vendor Drops and Alternatives

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/

Page 9: Managing Local Sakai Builds: Vendor Drops and Alternatives

Site Info

Component

Gradebook

Roster

User

Chat

Wiki

Site Info

Component

Gradebook

Roster

User

Chat

Wiki

Slim down with svn:externals

Bug fix

Feature

Customization

Local

“Me” (Us) “Vendor” (More of Us)

… Exported Site Info

“Real” Component

Exported Gradebook

“Real” Roster

Exported Gradebook

“Real” Chat

“Real” Wiki

Exported Content

Exported DB

Page 10: Managing Local Sakai Builds: Vendor Drops and Alternatives

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

Page 11: Managing Local Sakai Builds: Vendor Drops and Alternatives

Site Info

Component

Gradebook

Roster

User

Chat

Wiki

Site Info

Component

Gradebook

Roster

User

Chat

Wiki

Collaborate in Single Repository

Bug fix Branch

Feature Branch

CustomizationBranch

Local

Our work on Sakai Rest of Sakai

… Site Info

Component

Content

Roster

Gradebook

Chat

DB

Page 12: Managing Local Sakai Builds: Vendor Drops and Alternatives

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.

Page 13: Managing Local Sakai Builds: Vendor Drops and Alternatives

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

Page 14: Managing Local Sakai Builds: Vendor Drops and Alternatives

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.

Page 15: Managing Local Sakai Builds: Vendor Drops and Alternatives

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