Melbourne hackfest July 2015
Developer meetings > Melbourne hackfest July 2015
When | Thursday, July 9th, 2015 - 9.00am to 5.00pm |
Where | Robert Menzies Building, rooms W204 and W210, Monash University, Melbourne - as a part of MoodleMoot AU 2015 |
Hashtag | #mootau15 |
Support | Moodle Hackfest Melbourne 2015 course at dev.moodle.org and mootau15 devpad |
Schedule
Time slot | Room A | Room B |
---|---|---|
09:00 - 10:30 | Contributing to Moodle development Introduction to Moodle plugins development |
Moodle developer's First aid station |
11:00 - 12:30 | Hacking group 1: Course Archiving and Roll-over | Hacking group 2: Assessment Analytics |
13:30 - 15:00 | Unit and behaviour testing in Moodle: Introduction to PHPUnit and Behat | Javascript modules in Moodle 2.9 and higher |
15:30 - 17:00 | "Show and talk" micro-sessions | - |
Contributing to Moodle development
Introduction session led by Marina Glancy, Moodle HQ's development process manager, was there for those new into Moodle development. Useful information and/or clarification for existing contributors was provided, too. A short overview of Moodle development practises, documentation, APIs, processes and tools discussed and demonstrated.
Relevant docs links:
- Main dev docs page - overview of all development docs
- Moodle versions - how Git branches are organised
- Git for developers - general overview of the pull model of the moodle develoment
- Coding style
- Tracker tips
- Moodle Development kit
Discussion:
- To obtain the "Diff URL" value for your contribution hosted at your Github, use their button "New Pull Request". It does not immediately create a new pull request. Also note we have own process for contribution and we do not use the Github's pull requests.
- For bug fixes, contributors are encouraged to provide patches for all supported versions. This is different process to that for security patches (which can't use public branches for obvious reasons).
- For improvements or new features you only need to create a patch on master. Improvements are only integrated in the future versions but can be backported later (different process).
- Q: Are there any guidelines / rules around when to create more than one commit within a tracker item? It seems that sometimes one request is integrated with multiple commits - is this ok?
- A: Yep. Generally one commit per logical change. So if your change involves two significantly different things to solve one issue, two commits is good. In a lot of cases one commit is fine.
- Q: Is there a better way to 'undo' your changes if you need to modify your commit than git reset HEAD^ ?
- A: If you want to change your commit, just edit files, git add and then do git commit --amend. Then that commit will be modified - Excellent! Thanks.
- A: google for command "git rebase -i", it allows you to do all the crazy stuff with commits - change sequence, squash, etc. Love it! --Marina
- Q: Can you recommend the best toolset/IDEs to assist rapid faster code development/debugging? e.g. Eclipse/etc.? (Preferrably cross-platform, and free :D)
- A: Sublime is quite nice and easy to use. Atom.io is a good free alternative. A lot of people at HQ use phpstorm. Rapid development & debugging is more to do with how much you learn than what tool you use :)
- Q: Are there any MOODLE core release versions where upgrading (e.g. db schema) features break/are particularly problematic? (Or is that a stupid question?)
- A: 1.9 to 2.0? ;) We try to make the upgrades between each version as smooth an easy as possible.
- Yep, thought as much, just aware of the vast version differences between 2.0->2.9
- Always look at lib/upgrade.txt and the upgrade.txt files in your plugin folder, for example mod/upgrade.txt , blocks/upgrade.txt , themes/upgrade.txt , etc. They list API changes and other things that may affect upgrade
- Great tip (above)
- Moodle 2.6 has lots of API changes and deprecations, especially contexts https://github.com/moodle/moodle/blob/master/lib/upgrade.txt#L294
Introduction to Moodle plugins development
Overview of plugin types and common files and structures found in all plugin types provided. Contributing into the Moodle plugins directory. Guidelines and checklists. Led by David Mudrák.
Relevant docs links:
Discussion:
- Better code examples/templates for quickly deploying new plugins from scratch (e.g. like https://github.com/moodlehq/moodle-mod_newmodule) would be good to have.
- Some video crash courses would be great (e.g. similar to the concept of http://railsforzombies.org/) and/or audio/podcasts - for listening to in the car/walking/etc.