21 December 2016

Module A Week: Team Feedback with Simplytest.me

By Dieuwe de Boer

This is a blog in a series relating to a talk we made at DrupalSouth 2016 on the Gold Coast in Australia. You can read Dave's blog post here, and you can watch the full presentation: youtu.be/OrpZzVMcQV8.

We needed a way for the whole team to participate in Module A Week.

Writing the code is the easy part in open source contributions. Near the end of our very first week we realised that we needed a way for everyone to be able to effortlessly get involved in testing and providing feedback. Setting up new dev boxes or testing environments for everyone is tedious work, and arguably not a feasible thing to do. This is where simplytest.me came in.

Simpletest.me - Evaluate Drupal project online

Simplytest.me

Simplytest.me allows you to "evaluate Drupal projects online" by giving you a way to build a temporary Drupal site that lasts for 24 hours at the click of a button. Some features of simplytest.me aren’t that obvious, and it can take careful reading of the question and answer section to find out some of the more obscure features.

Here is a sample URL that I ended up constructing for the team:
simplytest.me/project/2778839/7.x?add[]=masonry&add[]=masonry_fields&add[]=field_formatter_settings&add[]=ctools&add[]=views&add[]=file_entity&add[]=media&add[]=oembed&patch[]=https://www.drupal.org/files/issues/trial_run-2779905-7.patch

Let’s break it down.

Project and version

The main part of the URL consists of 2 simple arguments: simplytest.me/project/2778839/7.x

If you have a full project, the shortname should be used, but because we're testing a sandbox, the project ID has to be used. After that, we can specify a version or branch number. You can be as specific or unspecific as you need.

Modules

Additional modules can be installed using a query parameter array: &add[]

While simplytest.me will  (usually) resolve dependencies for your own module, it will not do so for added modules, so make sure you chain the required dependencies. In the case of Photoswipe Extras, we have a number of modules that can enhance features, so it is nice to be able to test those integrations.

Patches

Patches can be applied using a query parameter array: &patch[]

The patch in the demo URL has been committed to the project, so it will probably fail to apply, but if you go and check it out, you will see it adds a make file that installs several libraries.

Makefiles

Make files will be executes if included in the project: see photoswipe_extras.make

In our example, we need a few libraries to make everything work, but simplytest.me doesn’t know what libraries it might need. So, if you have a make file in your project, simplytest.me will run it. The patch linked to in the example above added the make file to the Photoswipe Extras project, and we could test the patch straight away.

A sample testing URL

Winning with Collaboration

The whole team can now get stuck in and help you contribute to Drupal.org, what are you waiting for?