how integrators bring you a better moodle
TRANSCRIPT
Dan PoltawskiIntegrator
Moodle HQ
How integrators bring you a better Moodle
#mootau13 @dan_p
iTeam, bringing you a better Moodle
How we used to integrate changes
New Development
Release
How we used to integrate changes
New Development
Release
This was problematic:
How we used to integrate changes
New Development
Release
This was problematic:• Developer may be only person
aware of a change
How we used to integrate changes
New Development
Release
This was problematic:• Developer may be only person
aware of a change• Unintended consequences from
lack of awareness
How we used to integrate changes
New Development
Release
This was problematic:• Developer may be only person
aware of a change• Unintended consequences from
lack of awareness • Formalised testing and review not
enforced
How we used to integrate changes
New Development
Release
This was problematic:• Developer may be only person
aware of a change• Unintended consequences from
lack of awareness • Formalised testing and review not
enforced• Only trusted developers could
‘commit’
How we used to integrate changes
New Development
Release
This was problematic:• Developer may be only person
aware of a change• Unintended consequences from
lack of awareness • Formalised testing and review not
enforced• Only trusted developers could
‘commit’...It did work though :)
Integration Process
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
Integration Process
Process to increase quality:
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
Integration Process
Process to increase quality:
• 3 sets of eyes on each change
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
Integration Process
Process to increase quality:
• 3 sets of eyes on each change
• Increased code quality through review and iterations
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
Integration Process
Process to increase quality:
• 3 sets of eyes on each change
• Increased code quality through review and iterations
• Large focus on testingAutomated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
Integration Process
Process to increase quality:
• 3 sets of eyes on each change
• Increased code quality through review and iterations
• Large focus on testing
http://docs.moodle.org/dev/Process
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
New Development
• Accessible to anyone in community• No longer need to restrict process to
known ‘trusted’ developers.• Large developments discussed with
community in Future major features forum
• Specification developed on MoodleDocs
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
Peer ReviewTechnical Review from another developer
• Checking code against standards
• Discuss the approach to solving problem
• Suggest improvements Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
Automated Checks
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
• Coding standards
• Keeping Moodle maintainable and sustainable
Integration Review
Final review by ‘gatekeepers’
• Focus on quality and stability
• Facilitate communication between different area experts
• Bring historical context
• Ensure changes meet the needs of whole community
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
Automated Tests
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
• Over 6000 tests being run automatically every day
• Upgrade tests between versions checking compatibility
• Additional tests added each day
Testing
• Tester assigned to each issue
• Runs through a test plan created by developer
• Looks out for problems and inconsistencies in the change
• Very time-intensive process
• But frequently worthwhile!
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
Release
Automated Tests
Automated Checks
New Development
Peer Review
Integration Review
Testing
Release
• Each week focus on all issues tested and passed
• Failing issues get fixes or backed out
• Weekly release produced and distributed through download.moodle.org and git
Is it making a difference?
9%
15%
75%
Integrated Issues
Accepted Problem during integration reviewProblem during testing
•Yes!•1104 changes
rejected..!•Standards increasing
week by week
Questions?
?http://blog.danpoltawski.co.uk/2012/04/integrating-a-bug-fix-into-moodle-core-the-mechanics/