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

24
CI on a large open source project: Plone Ramon Navarro Bosch [email protected]

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

CI on a large open source project: Plone

Ramon Navarro Bosch [email protected]

• 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/CSSMockup/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!