a) backups created using assignment 2.2 to be restored transparently to the new mod_assign
b) support for mapping of old urls to mod_assignment, to the new mod_assign with a different id.
c) no support for creating new instances of assignment 2.2 in Moodle 2.7+
d) allow upgrades of existing instances of mod_assignment to mod_assign either before or after the upgrade to 2.7
e) allow plugins to upgrade themselves if they have a plugin for both mod_assign and mod_assignment (even as part of a restore operation)
So what we propose is that for 2.7, mod_assignment will be replaced by a stub that looks for a mapping from old to new assignment and redirects. The restore code and DB tables will remain in this stub. A hook will be added to the restore code to upgrade from mod_assignment to mod_assign immediately after restore. The upgrade code will be modified to record the old and new cmid after each upgrade to allow any old urls to continue working. The full mod_assignment will not be available in the plugindb or in core for 2.7+. Plugin sub-type support will remain in the stub, so that old plugins for mod_assignment, can still restore, and then participate in the automatic upgrade.
Please respond if you have any concerns or comments about this proposal.
That sounds like a good plan to me. However - would it be possible to postpone removal of Assignment 2.2 until Moodle 2.8?
My systems currently use Assignment 2.2 with local customisations and, although many/most of my customisations are implemented directly in mod_assign (thank you!), I don't think I'll be able to review/adapt the assignment upgrade, get staff buy-in, and get the activities migrated by May.
In a way I'm very pleased to see this plan, as it will help me convince people that we need to migrate ASAP - unfortunately it's schedule is a bit more rapid than I expected! Obviously it would be possible to stick with an older Moodle, but our upgrade schedule uses just odd-numbered versions, and I don't want to get too far behind...
I'm a bit concerned by this. We still use Assignment 2.2 for most of our assignment activities, and until very recently (Moodle 2.5 migration last September) we didn't use the new mod_assign at all due to limitations in functionality. There are still some issues (like MDL-33600) that would prevent us from adopting mod_assign on a larger scale at this time. You might argue that these would be fixed for 2.7, but at the moment this seems far from clear.
But more importantly, we widely use a custom "assignment type" plugin in Assignment 2.2 which hasn't been migrated yet, and (as far as I can see) cannot be easily migrated because the newly defined interfaces for subplugins in mod_assign wouldn't support this. This will require more work, and I'd be happy to contribute here (to the core interfaces, the local plugin is mine anyway), but it will be hard to get this done for 2.7.
While it might be appropriate to phase out Assignment 2.2 at some point, one would like to have much more advance notice for such a major step. Please keep in mind that anyone who wants to run a "maintained" Moodle during the 2014/15 academic year will *have* to upgrade to Moodle 2.7, given the current release calendar. Removing major features / plugins should therefore be done with care.
Might one solution be to drop assignment2.2 from core, but make it available as a plugin for those that need it in the short term? Im not sure whether this is feasible - perhaps one of the developers could comment?
This has been on the cards and publicised since 2.3 and the release of the new 'assign' module, but we still have people out there using 1.9, so Im sure we all realise how long it takes some institutions to transfer and make changes
a) it will not be directly installable without removing the "stub" code first
b) we do not want to encourage anyone to using it (because it will be un-supported on their Moodle version)
Also - yes we are doing a mod_assign sprint right now which includes most of the remaining features (by votes) from assignment 2.2 are in the sprint (MDL-34432, MDL-28448 and MDL-33600).