The Semantics of Versioning: Planning for DevShop 1.0.0

Romanesco Cauliflower

After four years of hard work, we're headed to DrupalCon this year with reason to celebrate: The release of DevShop 1.0.0.  

Why, you ask, did it take four years to reach 1.0?

Semantics

One year ago, we decided to reset DevShop back to zero with Semantic Versioning.

DevShop started as extensions to the Aegir Project in February of 2012, so we started by following Aegir versioning: 7.x-1.x. In the Fall of 2014, we realized that this was much more than a multisite hosting tool, and started redesigning DevShop as a separate product. In February 2015, we decided to revert our versions back to 0.1.0, launching a 0.x branch.

In short, we wanted freedom. Freedom to release on our own schedule, and the freedom to change as much as we needed without upsetting too many users!  When I read Item #4 of Semantic Versioning, I knew we needed to have a 0.x phase:

Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.

Some people probably read this as a bad sign, to be in "Major Version Zero". However, we knew we had a lot of work ahead of us, and we really would want to change a lot to improve the product: Back then the front-end was still on Drupal 6, being based on Aegir2.  We knew back then, we absolutely must upgrade to Drupal 7 and Aegir 3 before we could call it DevShop 1.0. 

Semantic versioning encouraged us to release bug fixes as often as we found them, it was a lot of fun putting out two, sometimes three releases a day.

We've acheived our goals: We've had 27 releases in the 0.x branch, had 4 1.x-alpha releases, and now have our first beta!

The 1.x branch is passing. DevShop is now feature complete: Hosting is easy. Testing is easy. But most important to us... Site Building (and deploying those structures) is now really, really easy.

Completing the Vision

We wanted to make sure we finished creating awesome site building tools.

We've got Config Export and Import buttons, Recreate Features and Download Modules buttons. Combine that with Commit Code button, and you empower Site Builders to create Drupal structure that they can immediately commit to code.

For the professional drupal developer this means you can break the endless cycle of Drupal 7 Features-driven-development: No more re-create, download, extract, review, commit, merge fix, push, revert, repeat. OH MY.

For managers, this means they can actually see what their team is building on separate environments, on separate URLs, with automated tests confirming that everything is in it's right place.

DevShop is now a powerful creative tool: enabling a True Site Building experience, yet fully integrated with version control, testing, and continuous integration.

Ready for Launch.

We look forward to putting DevShop 1.0.0 finally out into the world. We're looking even more forward to what's coming next.