CI on a large open
source project: Plone
Ramon Navarro Bosch
r.navarro@iskra.cat
• Content types
• Object Oriented DB (no SQL/%·(/“&·)
• Scalable
• Multilingual content
• Theming easy experience
• Integration external
• Security/workflow
• General purpose
• Cheap to host (docker/heroku)
• Big documentation
• Great active community ( +964 add ons)
Clean and tested!
252 python packages
353 contributors
10 sprints on 2014
plone/buildout.coredev
Plone Testing
VERSION CONTROL
AUTOMATED BUILD
TEAM AGREEMENT
BROKEN
CI RULES
http://buildoutcoredev.readthedocs.org/
1) Don’t Check In on a Broken Build
2) Always Run All Commit Tests Locally before Committing
3) Wait for Commit Tests to Pass before Moving On
4) Never Go Home on a Broken Build
5) Always Be Prepared to Revert to the Previous Revision
6) Time-Box Fixing before Reverting
7) Don’t Comment Out Failing Tests
8) Take Responsibility for All Breakages That Result from
Your Changes
9) Break the Build and Buy Caipirinhas for Everybody
collective.xmltestreport
pytest
Coverage
Cobertura
Testing
Testing
collective.xmltestreport / pytest / Coverage / Cobertura
Robot Framework / Saucelabs
Robot
Framework
Robot / Saucelabs Jenkins Plugins
Static Code Analysis
Pep8 / Pyflakes / Pylint / plone.recipe.codeanalysis / Violations Plugin
Notifications
Emails to authors
Emails to testbot
Emails to plone-cvs
Github Notifications
Following trace
http://jenkins.plone.org/roboto/coredevjobs
Scalability
Release process
Now is manual with helpers
Soon:
Night deployment of green status using:
zest.releaser
Jenkins Build Pipeline
Heroku continuous deployment
Improvement process
PLone Improvement Proposal - PLIP
http://dev.plone.org/report/24
configuration file on buildout.coredev
jenkins job for PLIP
FrameworkTeam
UITeam
DocumentationTeam
TestingTeam
Plone 5 is here!
codename: barceloneta
FRONT END JS/CSS
Mockup/patternslib - Widgets out of the box
Inline RequireJS/LESS integration out of the box
TTW
content types creation
workflow definition
theme installation
theme editing
less vars customization
js/css editing
css/js compilation
Plone Theme Barceloneta
Automatic CSRF
Dexterity content types
…
and tons of other features
Documentation
http://docs.plone.org
Jenkins
http://jenkins.plone.org
Mr.Roboto
http://jenkins.plone.org/roboto
Plone
http://plone.org
THANKS!

CI on large open source software : Plone & Plone 5 is here!