Sakai Best Practices
Alan Berg, Interim QA Director, Sakai Foundation
Aaron Zeckoski, Software Engineer, Unicon and Maint Team Lead, Sakai
Agenda• Introduction to a do-ocracy • Sakai Infrastructure
• Sakaiproject.org• Confluence, svn (+contrib), QA network• Static code review / Internationalization report• Jira/ Nightly• Sakai 3 • Distribution lists
• Eclipse / Maven/ Findbugs• My first Jira• Top five best practices• Question and Answers
March 2010 2European Sakai Conference – Valencia - Spain..
Introduction to a do-ocracy And now here’s a…
March 2010 European Sakai Conference – Valencia - Spain.. 3
Do-ocracy
• A community in which if an individual sees work that needs to be done, he or she does it.
• A Do-ocracy can only work efficiently if the community is polite and supportive
• Those who do things are in charge of them, and if one wants a say in how things are done then one must to do things too
• The mentality is best summed up by the phrase, If you think that you can do it better then do so.
• The most effective best practice is to get involved.*
* assuming you are willing to try hard
Plug for the Sakai Book
And now here’s a…
March 2010 European Sakai Conference – Valencia - Spain.. 6
http://www.packtpub.com/sakai-courseware-management-the-official-guide
Confluence ~ WIKI • Information available to the whole community• Things change • http://confluence.sakaiproject.org/dashboard.action• Work Groups /Discussion Groups
• QA• Internationalization• http://confluence.sakaiproject.org/display/SPANISH/Home• Release Management, etc
• Contrib Projects• Conferences• Projects• Ad hoc info
Subversion for Sakai 2.x
• Revision control system• https://source.sakaiproject.org/svn/sakai/
• Trunk - Latest and greatest• Tags - 2.5.6,2.6.2• Branches – 2.x.x
• https://source.sakaiproject.org/contrib/• Lots of tools and enhancements• Product council shepards the best into Sakai
Running a QA server or testing
• Get to understand the rough edges of Sakai
• Good boot camp for learning how to run in production or potential issues
• Intuitively understand the Quality of the next version of the product
• Makes you more attractive, so your organization should really do this
Jira
• Bug tracking database• http://jira.sakaiproject.org/secure/Dashboard.jspa• X Thousands of reports• Currently being worked through by the Maintenance Team with
support from the central Quality Assurance• Before making a report, search.• Maintenance team, starting to redefine Jira standards.• Redefinig workflow
Static Code ReviewAggressive attack vector for 2.7
• http://jira.sakaiproject.org/browse/SAK-17647• Remove NPE’s• Resource leaks• Obvious defects• Should be timeboxed• Part of a QA cycle, testing is cheaper
• Will repeat a number of times
Distribution lists
• http://sakaiproject.org/join-email-lists• Dev• QA• Management• Announcements• And the lists go on
Eclipse, Maven, FindBugs
And now here’s a…
March 2010 European Sakai Conference – Valencia - Spain.. 19
Eclipse – Sakai guide
• Follow the Sakai guide
March 2010 European Sakai Conference – Valencia - Spain.. 20
Eclipse – m2eclipse plugin
• Use the m2eclipse plugin to do imports
March 2010 European Sakai Conference – Valencia - Spain.. 21
• File -> Import -> Maven Projects
• Uncheck Resolve workspace projects and Separate projects for modules
Eclipse – hidden tricks
• Eclipse tricks on Stackoverflow• ctrl-space – trigger autocomplete assist• ctrl-shift-r - open resource (e.g. file)• ctrl-shift-t - open type (e.g. class)• ctrl-1 (quick fix the current error)• Camel case support (System.cTM -> currentTimeMilliseconds())• Code templates (for, npe, syso, etc.)• Knowledge is power (and efficiency)
March 2010 European Sakai Conference – Valencia - Spain.. 22
How to make a JIRA issue
• Community Guidelines• Search JIRA first!• Search mailing list (nabble)• Email the dev list• Create an issue
• Steps to reproduce• Stacktrace, logs, screenshots• Use cases and test plan
March 2010 European Sakai Conference – Valencia - Spain.. 24
Top five best practice
And now here’s a…
March 2010 European Sakai Conference – Valencia - Spain.. 25
Best Best Practices
• Automated testing (again)• Work together/review• Use Findbugs/PMD• Write simple code and avoid chaining
(maintenance costs higher than create costs)
• Logging and Exception handling
March 2010 European Sakai Conference – Valencia - Spain.. 27
Complete listing of best practices for development