I have a theory. My theory is that every single person / organization who is considering building a site on Drupal 8 has created some variation of the exact same spreadsheet. The spreadsheet tracks rows with information, such as which contributed projects the site needs, what URL those projects live at, who the maintainers are, what the project's current porting status is, etc. To figure this out, you go to each of the respective project pages and look for an 8.x version. If that comes up empty, you attempt to search the issue queue for variations of "Drupal 8," "D8 port," etc. Worst-case, falling back to good ol' Google. Repeat every few weeks. Man months have probably been spent on this duplication of effort so far. To further build on that theory, I'm guessing that these spreadsheets do not always jive with current reality. Because you might have missed the update that contributor X gave on Twitter one time about her predicted module's release date. Or you might not have been sitting next to contributor Y at dinner during DrupalCon and found out that her module's actually being ported on GitHub or BitBucket, only being moved to Drupal.org when it's complete. Or you didn't get the chance to actually install the project yet to determine that even though this one has just a -dev release, it's actually quite stable, and even though that one has a beta release, it's changing APIs every 6 minutes. Or whatever.
Enter the Drupal 8 Contrib Porting Tracker! This is a "meta" project that holds issues that represent the porting status of various projects, and allows us to work as a unified Drupal community to combine our collective observational super powers into one data set that can be used by anyone considering building on Drupal 8.
How does it work?
Issues within the project move through an issue status workflow of:
- Not started a.k.a "Active:" No port has been started yet.
- In development a.k.a. "Needs work:" D8 development has started but is not yet usable.
- Usable a.k.a "Needs review:" Project has Alpha or Beta D8 releases available for testing.
- Stable a.k.a. "Reviewed & tested by the community:" Project has a Release Candidate (RC) D8 release.
- a.k.a. "Fixed:" Project has a stable D8 release.
(There are also a couple of special statuses that fall outside the general workflow.) The goal is to get 100% of the projects in the list to "Fixed," as quickly as possible, to help enable widespread adoption of Drupal 8. Each issue follows a standard template, which includes information such as who's porting the module, where to find the code, and what help is needed by the maintainers to expedite porting.
Why do we need this project?
Back when I first started at Acquia in May 2011, Drupal 7 had just recently come out and one of my first tasks was to facilitate a community-wide effort to get the big projects ported. This took the form of a standardized issue tag used in each of the projects' Drupal 7 tracking issues, and an external site to track status, which was more-or-less a public version of the Upgrade Status module with an opinionated list of projects. However, this approach ran into a few problems:
- Issue tags are easy to misspell/misplace, and require 'insider' knowledge to learn/remember the names.
- Searching for the status of a module you cared about was difficult, because that status might be spread over multiple issues, or the module maintainer might not have gotten around to making a tracking issue yet.
- Promoting an external, non-D.o site was difficult, as was performing those updates to the information that had to be done manually.
So I'm really excited about this project, since it eliminates all of these issues. It creates a single, canonical, searchable source for info, on Drupal.org in an "official" capacity, and with the ability to consistently track additional metadata such as estimated release timeline and how to help. I'm also excited that it enables people like project managers, folks at sprints without a lot of prior D8 experience, etc. to make meaningful contributions to Drupal 8.
The Drupal 8 Contrib Porting Tracker is a joint effort bootstrapped by many people before and during DrupalCon, including:
- Thomas Howell, Jeff Beeman, John Kennedy, and Craig Norris from Acquia for initial brainstorming/prototyping of this idea.
- Sascha Grossenbacher (Berdir) from MD Systems for inspiration and encouragement to take on this problem in the public sphere, as well as conscripting Giancarlo Sotelo (giancarlosotelo) to perform some initial data entry of many modules.
- Aimee Degnan, Kristen Pol, and Jeff Mahoney at Hook 42 for their detailed review and improvements of documentation, templates, etc.
- Christian Sieber of Commerce Guys for further review and encouragement / spurring initial seeding of projects.
- Jakob Perry of the Drupal Association for developing code to tie this project in more directly with D.o project pages.
- Matt Glaman for setting up an awesome kanban view of modules!
So, bottom line, regardless if you're the module maintainer or not, "if you see something, say something" — please share whatever knowledge you have about various modules' porting status and/or places to help, so we can get all of these to green as quickly as possible, and Drupal 8 can achieve world domination! :D