There are a number of folks flying into the Drupal Association offices for a DrupalCI (modernizing testbot) sprint on March 31 - April 2, 2015 (remote participation welcome! join #drupal-testing on IRC). This sprint is being funded through D8 Accelerate, since testbot currently accounts for at least 3 release blockers for Drupal 8.0.0.
We had a call today where we discussed a tentative hit-list/goals and wanted to make this public for folks, since there's still a couple of weeks before the sprint for folks to raise additional points/questions, start tackling some of these issues prior to the sprint, etc.
You can find the full battleplan here: https://docs.google.com/document/d/1dtF2TkmJaLjf2QCamNCz1szM7a-grI5IaV0x... That's the canonical version and should be used as the main point of reference. Here's the TL;DR version:
Deliver a MVP product on production hardware, with integration to Drupal.org, which can be used to demonstrate a full end-to-end D8 core ‘simpletest’ test run request … from Drupal.org through to results appearing on the results server.
- Demo per-commit integration with Drupal.org
- Demo patch integration with Drupal.org
- Demo core+contrib testing with Drupal.org
(There are also some stretch goals listed if things go really, really well.)
Click each item in the list for a full set of issues planned to be tackled at the sprint. I've also attempted to enumerate some of the skills each team is looking for so folks playing along at home can try and find a home. There's a wide variety of ways to participate from documentation to theming to Drupal 7/8 development to devops hotness like Docker and Puppet.
- Test Runner (jthorson / ricardoamaro / dasrecht / chx): DrupalCI: Test Runner is basically the "core" of the testbot that handles downloading the code, executing the tests, etc. Getting this all working well will be the main area of focus during the sprint.
- Docker Containers (dasrecht / isntall / ricardoamaro): Docker containers house the infrastructure configuration for testbots so they can be spun up quickly. Some kinks need to be worked out to make sure they're ready.
- Drupal.org Integration (drumm / mikey_p / jhedstrom): DrupalCI: Drupal.org Integration handles kicking off the test runner from Drupal.org, via patch uploads, contrib project manual tests, etc.
- API (nick_schuch / drumm / Mile23): DrupalCI: API handles sending / receiving requests to the test runner. Need to ensure the API has everything necessary to for test runner / Drupal.org integration, so requires close collaboration with D.o integration team.
- Skills needed: PHP, Silex, REST API architecture experience, code documentation
- Results (nick_schuch / ricardoamaro): DrupalCI: Results is the part that will live at https://results.drupalci.org/ (replaces qa.drupal.org) and displays the output of test bot runs. This part needs to be hooked up to the test runner and dispatcher.
- Skills needed: Theming, Bluecheese, functional testing
- Dispatcher (nick_schuch / isntall / basic) DrupalCI: Dispatcher handles passing things to and fro the Jenkins. Need to make sure this is integrated with the test runner.
- Skills needed: PHP, devops, Jenkins, automated testing, code documentation
- Puppet Scripts (isntall / basic / jthorson) DrupalCI: Puppet Scripts is where all the Puppet configuration scripts to build out various servers live.
- Skills needed: devops, Puppet
- Infrastructure Infantry (basic / isntall / Mixologic) Helping out to generally unblock folks wherever they're stuck: spinning up servers, helping with architectural decisions, etc.
- Coordinate and document ALL the things (hestenet / Shyamala / webchick) This team will help coordinate efforts and document all of this so it's clear what's going on. :) More documentation help warmly welcomed!
- Screencast showing operation of what we have working so far right now
- Nick’s DrupalSouth session: LINK ME when video is up
- Diagram of DrupalCI Roundtrip from Nick's blog post at https://www.previousnext.com.au/blog/architecting-drupalci-drupalcon-ams... which provides a lot of context-setting.
- DrupalCI Container stack diagram which explains how the Docker containers are set up.
- Modernizing Testbot Meeting Minutes: Good for a running list of what's been worked on recently and who's doing what.
- Archie’s DrupalCI component list: Some copy/paste commands on how to get everything.
- Jeremy’s The November 11 TODO notes: Big brain-dump of where each component was at late last year.
- Shayamala’s DrupalCI status tracker: Matrix of outstanding tasks / corresponding issues per component