Apereo OAE development and release process

15
Development and release process

description

Brief overview of the Apereo OAE development and release process.

Transcript of Apereo OAE development and release process

Page 1: Apereo OAE development and release process

Development and release process

Page 2: Apereo OAE development and release process

• Perfect slice

• Stakeholders

• Design process

• Development process

• Performance testing

• Release process

Page 3: Apereo OAE development and release process

Perfect slice• Develop feature from top to bottom

• Design, testing, development, review, performance testing, model loader additions, internationalisation reach-out, QA, release, roll out into production, further testing

• Make it ready to be used in large-scale production environment

• Prioritising slices becomes very important

Page 4: Apereo OAE development and release process

Stakeholders

• OAE has multiple institutions as stakeholders

• All have unique (edge case) requirements

• Need to deal with this as an OS project

• Need to keep the UI simple

• Shared edge cases can be layered away

Page 5: Apereo OAE development and release process

Design

• Starts with a need

• Create wireframes

• Go through user testing

• Deliver finished designs to development

Page 6: Apereo OAE development and release process

Development• HTML, CSS and JavaScript implementation in front-end

• Back-end REST APIs

• Write tests to verify the implementation

• Front-end: CasperJS (headless webkit)

• Back-end: Mocha (through REST APIs)

• Code review

• Merge into master (more on this later)

Page 7: Apereo OAE development and release process

Performance testing

• Tsung

• Simulate users in order to test scalability (stress testing)

• Decrease in performance === investigate/hold off release

• Before every release (major or maintenance)

• Analysis of Tsung graphs and Circonus data

Page 8: Apereo OAE development and release process
Page 9: Apereo OAE development and release process
Page 10: Apereo OAE development and release process

Release• A major OAE release is usually defined by the

implementation of a new user facing piece of functionality (e.g. `Following` feature)

• An OAE maintenance release is usually defined by a set of refinements to already existing functionality (e.g. Design refinements to `Following` feature or non-user facing functionality)

• All releases (major or maintenance) go through the same workflow

Page 11: Apereo OAE development and release process

Release

• Decide to release

• Bug bash (on optimised build)

• Triage bugs, fix blockers first

• Reiterate

• Start final release process

Page 12: Apereo OAE development and release process

Release front-end• Update version in package.json

• Fix versions for used node modules

• Note: In development we use the latest modules to detect any problems when those change to a newer version

• Clean out node_modules and test with fresh install one final time

• Tag new version in Github (e.g. 1.0, 2.3)

• Tagging ‘copies’ and ‘freezes’ the code at the point the tag was created.

• `grunt release` and publish to a VM and test

Page 13: Apereo OAE development and release process

Release back-end• Update version in package.json

• Fix versions for used node modules

• Note: In development we use the latest modules to detect any problems when those change to a newer version

• Clean out node_modules and test with fresh install one final time

• Tag new version in Github (e.g. 1.0, 2.3)

• Tagging ‘copies’ and ‘freezes’ the code at the point the tag was created.

• Publish PPA

• `grunt release` and publish to a VM and test

Page 14: Apereo OAE development and release process
Page 15: Apereo OAE development and release process

Sources• https://www.slideshare.net/bertpareyn/oae-

development-and-release-process/

• http://oaeproject.org/blog

• http://crowdin.net/project/apereo-oae

• https://github.com/oaeproject/3akai-ux

• https://github.com/oaeproject/Hilary

• https://oae.oae-qa0.oaeproject.org/