Extending Open Source Projects
Geoff NicolPrincipal Architect
Perforce
John PalmerTechnical Sales Engineer
Perforce
Extending Open Source Projects
Extending Open Source Projects
Overview Background Our Approach Supporting Automation Required Community Traits Q&A
Why do we need to worry about this?
Extending Open Source Projects
GitSwarmHow’d we find ourselves in this situation?
Extending Open Source Projects
Our Approach
Extending Open Source Projects
Approach Don’t touch their files! Unless you have to Runtime extension
Extending Open Source Projects
Don’t touch their files!
Extending Open Source Projects
InPlace Extension
Extending Open Source Projects
● Extend They have Foo We extend to OurFoo Noone uses OurFoo
Extending Open Source Projects
Prepend
<Image was too Scary>
Extending Open Source Projects
Runtime Extension
Extending Open Source Projects
Other Extensions Gems Database Migrations Views CSS/Sass JS/CoffeeScript Tests/RSpec/Spinach
Extending Open Source Projects
Automation
Extending Open Source Projects
Importing from Community
Extending Open Source Projects
Test Automation
Extending Open Source Projects
Test Automation
Extending Open Source Projects
Merge Automation
Extending Open Source Projects
Resolve Automation
Extending Open Source Projects
Community Traits
Extending Open Source Projects
Community Traits Extensible Language/Framework Small Methods Community Tests Active Receptive to Change
Extending Open Source Projects
Recap! Programatic Extension Automate! Verify Community/Project Suitability
Extending Open Source Projects
Extending Open Source Projects
THANK YOU!
Geoff Nicol
[email protected]
Extending Open Source Projects