Note:

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

Czech Hackfest 2009 notes: Difference between revisions

From MoodleDocs
(QA testing)
(performance and cron)
Line 123: Line 123:
* Looking at implementing [http://www.phpundercontrol.org phpUnderControl] (Jordan)
* Looking at implementing [http://www.phpundercontrol.org phpUnderControl] (Jordan)
* Will look at reimplementing fake db during the 2.0 beta period
* Will look at reimplementing fake db during the 2.0 beta period
==Performance and cron==
See [[Scheduled Tasks Proposal]]

Revision as of 11:23, 9 December 2009

Hackfest participants, if anything we discussed has been been missed out, please edit the page and add it!

Moodle 2.0

DB stuff

  • New development area in admin menu, new feature in db layer - db session
  • Use db for session information setting (on by default)
  • things which really need testing - sessions, large scale
  • migrating data from one db to another db server
  • development > experimental > database transfer
  • development > experimental > database export
  • to learn sql write stats code, write unit test to check if sql is correct
  • DML functions

Plugins

  • Every plugin should have support for install, upgrade, access etc
  • Complete list of plugin locations available
  • previously stuff was hardcoded, now cleaned up
  • to do: work on lang pack part

File API

  • previously teachers moving, renaming files and linking them from everywhere e.g. backup and restore includes all course and site files just in case
  • can be lots of files in course files not used at all, people upload new version, same file put in lots of courses
  • 2 character directory names
  • things which really need testing - copying of files during upgrade
  • need to warn admins in upgrade notes
  • no longer course files for teachers
  • in 2.0 file link will contain lots of info - path, file name
  • if teacher uploads new version of file, students immediately see new version
  • re draft files, previously editing files in place, no undo, when editing set of files copy of old files made, copied to draft area, after editing click save then option to submit or cancel / discard
  • no direct editing of files, done in separate area, instead of using course files, use file picker, save rubbish elsewhere
  • missing piece - management of personal files
  • interface needs optimizing
  • not yet done: quotas
  • editing activity content section ajaxy

Navigation

  • Needs to be a block
  • 2 dimensions - context (site, course, activities) and page type (course-view, mod-quiz-view etc)
  • moodle theme changes, base class, page class
  • mod/quiz/lang - lang file in plugin folder (same for core and contrib)
  • mod/quiz/theme - theme file in plugin folder (same for core and contrib)
  • base theme as simple as possible, install theme will be different - nice-looking theme
  • no more standard red, blue etc, config options to change colours instead, easier to customize
  • 2.0 themes should have much better performance
  • should be easy to install new icon sets e.g. tango
  • sam going to convert/redevelop one theme for 2.0 then patrick to develop 20

Web services

Roles

  • 2.0 has admin tools for managing roles, but still difficult for sites with large numbers of users, looking at how other systems manage roles
  • For each capability, have allowed roles and prohibited roles (or even remove prohibited role column completely) - see http://skodak.org/blog/?p=29
  • Manager role without doanything capability, fixed admin role with doanything cap only
  • Changes in role archetypes,changes in role enrolments, so students assigned site-wide and enrolments separate
  • No changes in DB or API only internal

Enrolments

See Enrolment rewrite and role tweaks proposal (written in March 2009)

  • Currently enrolment data stored in the enrolments table, guest access + passwords cause problems in 1.8, 1.9, can't disable built-in features such as guest access
  • How to improve performance and improve plugins?
  • Need instances of enrolment plugins in each course e.g. paypal instances in same course each with different cost
  • Course password (enrolment key) separate for guests and students, settings e.g. course cost kept in enrolment plugin, each course only has plugins which are enabled
  • Suggestion - change course settings page, perhaps have enrolments as separate link in course admin block
  • Question: should enrolment plugins work in different contexts - course, category?

Site-wide groups

See Site-wide groups

Backup and restore

See Backup 2.0

Gradebook 2.0

Grade settings provided by gradelib like groups settings on mod_edit.php

Gradinglib also needs to provide more of the grading interfaces that modules use in their grading interfaces, such as ratings.

Separate ratings API (like comments) ratingslib.php ratings table, and ratings parameters on the course_modules table

Also, to deal with gradebook hiding issues:

  1. Hiding of grades only applies to user report. Conditional activities and grader report always should show them.
  2. Add one option to only aggregate visible items (or not).

Languages

See Languages and Development talk:Languages

Testing

QA testing

  • Moodle 2.0 QA testing
  • Tracker project, MDLQA, one bug for each release, subtasks for every feature/piece of functionality (up to 10 steps)
  • Workflow – passed, failed, obsolete
  • If a test fails, link to MDL issue
  • Dual purpose – list of features/functions defines what Moodle is, page Features out-of date and not maintained, whereas new lists Category:Functional testing will list all Moodle features
  • Ask Moodle community to help test before release, testers group to sign things off
  • Before Moodle 2.0 is released, 100% tests passed
  • Duplicate for Moodle 2.1, reset, add new stuff for 2.1
  • QA/functional testing to be run after beta version, if a developer makes changes to a module which has chance of regression they should go and reset the QA tests for the module
  • To do: document QA testing process, rewrite Tuesday testing process, review members of testers group (group can be the same for QA testing and Tuesday testing), asking people to confirm whether they wish to remain in the testers group

Unit testing

  • Site admin > Development > Unit testing
  • Currently using simple test, but not designed for php5
  • Aim to encourage people, including contrib devs, to write unit tests

Summary:

  • Looking to move to PHPUnit before Moodle 2.0 (Sam H to work on spec for converting to PHPUnit and post in Gen Dev forum)
  • Looking at implementing phpUnderControl (Jordan)
  • Will look at reimplementing fake db during the 2.0 beta period

Performance and cron

See Scheduled Tasks Proposal