TODO list: Eventual Version Control migration for drupal.org

You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!
public

This is a loose checklist of items that need to be taken care of to get Version Control API working on drupal.org.

NOTE: This effort has been postponed until after the d.o is upgraded to D6. There's too much here and the versioncontrol* suite is just not yet ready for prime time.

  1. script for migrating from cvs module to versioncontrol_cvs -- in progress
  2. script for migrating from cvs module to versioncontrol_project -- done, but could use more testing
  3. http://drupal.org/node/216371 -- Move item handling and commit branches into the API module -- in progress
  4. http://drupal.org/node/216373 -- Provide direct hook access to the commit retrieval query
  5. http://drupal.org/node/216375 -- Port Version Control API & friends to Drupal 6
  6. http://drupal.org/node/208476 -- add 'commit' as a valid GET arg -- done, but mostly deprecated by the following point:
  7. http://drupal.org/node/209402 -- add legacy 'cvs' menu path, to prevent link rot
  8. http://drupal.org/node/229350 -- Extend the CVS backend so that it supports the optional API function get_directory_contents(), so the release node integration can determine whether or not to package files of a specific branch or tag.
  9. release node conversion
  10. Port the package release scripts to use the new infrastructure
  11. Port or rethink the Form API magic that transforms the harmless file-based release page into a multi-form CVS release drupal.org specific form monster
  12. install CVS dummy repo at http://project.drupal.org
  13. full test install on p.d.o

URL rewrites?

dww - Fri, 2008-01-11 16:22

how do you see these rewrites happening? Seems like we want settings in each module to add menu items @ the legacy locations that redirect to the new ones, no? I don't think we want a custom hack for d.o, since anyone migrating from cvs.module will want this. Thoughts?

hm...

jpetso@drupal.org's picture
jpetso@drupal.org - Sun, 2008-01-13 02:16

Sounds pretty reasonable, even if I'd like a "Legacy cvs.module paths for Version Control API" module even better :D


I can't edit that page,

jpetso@drupal.org's picture
jpetso@drupal.org - Sun, 2008-01-13 01:21

I can't edit that page, error message:

An illegal choice has been detected. Please contact the site administrator.

My guess is on the groups checkbox, because I'm not in the Access Control group and thus can't select that one when saving. But maybe it's something different.


More stuff

jpetso@drupal.org's picture
jpetso@drupal.org - Sun, 2008-01-13 02:13

add 'commit' as a valid GET arg - done, and also the issue about removing the source_revision table (which was not yet in that list).

As for release node integration stuff, the following todo items are crossing my mind:

  • Determine whether the release node conversion should be done quick-and-dirty for CVS only (like is the current state of the packaging script) or if it should go all the way with proper caller/API/backend modularization. Considering that hunmonk wants this to get done as quickly as possible, I guess the reasonable thing to do is to follow the quick-and-dirty approach and leave the rest for a time when drupal.org is running on Drupal 6 already.
  • Extend the CVS backend so that it supports the optional API functions get_item_branches() and get_item_tags() at least (so that a project's branches and tags can be retrieved, by directly querying CVS). For a "proper" solution we might need more hooks being implemented ("ls" aka get_directory_contents(), and probably a not-yet-existing "cvs export" like function, maybe even more), but for now we should get by with the mentioned tag/branch retrieval functions.
  • Port the package release scripts to use the new infrastructure.
  • Port or rethink the Form API magic that transforms the harmless file-based release page into a multi-form CVS release drupal.org specific form monster. That's the only part that's left in cvs.module and hasn't been reworked into Version Control API based code by now.

More items:

  • Introduce a commit<->node association table in versioncontrol_project, as discussed on IRC. When we have this, adapt versioncontrol_project and commitlog so that it asks the API for commit numbers rather than paths.
  • Depending on how well it runs by then: optimize path and branch based commit queries by letting backends alter the query, those doing stuff more efficiently than the API module can do without having detailed knowledge of the backend's table structures. Imho this screams for a query builder, we might have a closer look at depending on Views for that purpose or wait for Drupal 7. Anyways, having commit<->node associations, I don't believe that we will need this.

Even more stuff

jpetso@drupal.org's picture
jpetso@drupal.org - Thu, 2008-01-31 18:21

As expected, the GHOP backend module projects are yielding good input, so I've opened up a couple more issues that would now be the most pressing ones:

http://drupal.org/node/216371 - Major issue #1a: Move item handling into the API module
http://drupal.org/node/216401 - Major issue #1b: Move commit branches to the API module
http://drupal.org/node/216373 - Major issue #2: Direct hook access to the query (optional in case the former two are implemented)
http://drupal.org/node/216375 - Major issue #3: Port to Drupal 6


have no ph33r

jpetso@drupal.org's picture
jpetso@drupal.org - Thu, 2008-01-31 18:26

Note that none of these issues is expected to change the public API (only one added API function), so the only cause of #1a, #1b and #2 will be yet another change of the table structure. We're getting there, though, this will be cleaner and remove the performance bottleneck that we would experience with the current state of the module. (So, I'm not doing this because I like shifting table structures so much.)

I'm probably off for skiing holidays now, see you in 10 days or so.