Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Melbourne hackfest July 2015

From MoodleDocs
Revision as of 15:19, 13 July 2015 by David Mudrak (talk | contribs) (Add some record from the discussion doc)
hackfestau15.jpg

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

hackfestau15marina.jpg

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:

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: