Upgrading COD to Drupal 7: Sprint 1 - San Diego

As recently posted, the San Diego Drupal user group recently put together a sprint to get COD upgraded to Drupal 7. Here is an account of what went on and what we accomplished.

We started out with a few basic overarching steps.
1. Install D6 COD
2. Install a separate instance of D7 core
3. Grab a feature and start recreating it in D7
4. Once recreated, export it as a feature of the same name into a git checkout of cod_support, overwriting the feature of the same name
5. Find the appropriate upgrade issue in the cod_support issue queue
6. Post a patch to this issue

Because COD is a distribution primarily made up of features housed within the COD Support project, they mostly have to be re-created manually in Drupal 7. There's not really a reliable way to just upgrade the code since so much has changed in core and in the contrib modules that are it's dependencies. So the manual approach is being taken.

The first step was to make sure everyone could get setup with the most recent Drupal 6 version of COD. This was a technical challenge for many when trying to use the recommended way of using Drush and the Drush Make file provided by the COD distribution. But we came up with some steps that proved to be very helpful, at least to those not on Windows. These steps were added to the handbook page for COD.

  1. Install Drush:
    $ git clone --branch 7.x-4.x http://git.drupal.org/project/drush.git
  2. Install the Drush Make extension: within ~/.drush/commands/, type:
    $ cd .drush
    $ git clone --branch 6.x-1.x http://git.drupal.org/project/drush_make.git
    $ cd drush_make
    $ git checkout tags/6.x-2.2
  3. Setup your folder structure: (Note: this is to store the D6 and D7 versions of COD)
    $ cd ~/Sites/ (or wherever you usually setup your localhost sites)
    $ mkdir cod
  4. Get the COD Profile:
    $ cd ~/cod/
    $ git clone --branch 6.x-1.x http://git.drupal.org/project/cod.git cod6
    Note: last param defines the new subdir to create for this dev install of cod
  5. Switch into your cod6 directory and run the cod-dev.make
    $ cd ~/cod/cod6
    $ drush make cod-dev.make (requires two "y" confirmations)
    Note: this should download Drupal core as well as all of the modules you need to install COD
  6. Go to your actual Drupal install in your browser and at /install.php you should be able to choose the Conference Organization Distribution

In tandem, we created an issue for each component of COD Support within the COD Support issue queue and tagged them 'codesprint'. This gave us an easy way to keep track of each component's upgrade progress. We accomplished creating initial patches for 3 of the components: cod_base, cod_news, and cod_community. As well, there was some good discussions on how to deal with many of the other features, though much of this was in IRC and not recorded well in the issue queues.

There was also some lower level work on COD's Make file, which consisted of removing the patches not relevant to the Drupal 7 versions of the dependent modules, and a decent status list of the state of many of the dependencies.

Also of note is that we recorded much of this work throughout the day utilizing a Lullapad which gave us real-time collaboration on documenting everything as we went. This information was then translated into the various wiki pages (mainly http://groups.drupal.org/node/133524) that we have going on the COD group.

As well as having a great physical turnout in San Diego (roughly 15 people throughout the day) many people showed up in IRC (#drupal-cod on freenode) to help out. The wonderful people at GVS were mainly working on some of their itches which still persist in the Drupal 6 issue queue, and guiding the rest of us when we had questions while rebuilding these features.

In reflection, many of the people spent a lot of time just trying to get setup using Drush and Drush Make, and seeing as how there were many people having problems with this, it may be way simpler for the next sprint to simply get the distribution from the COD website itself, where it is already packaged for Drupal 6. With this and a separate clean Drupal 7 install, a lot of time could probably be saved on setup in order to get to the actual conversion process.

Comments

By volunteers sharing process & Git details, I feel that encourages us who did not attend to join in and help from home.

The instructions seem simple enough - thank you so much for taking the time to put this up - Adam

Add new comment

Filtered HTML

  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <h3> <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.