We are proud to announce completion of milestone 1 for the #d8rules initiative. After a year of intense working on porting the Rules module to Drupal 8, we can now officially close the first round of implementation.
As Drupal 8 by itself was delayed, so did we spend more time trying to fix Drupal core issues. Yet, all in all good progress was made and we are happy to present the results: not only milestone 1 has been finished, we also trained dozens of new contributors and already started implementing parts which originally had been scheduled for later on. Before we get too deep into the details, here’s a quick overview, what happened so far:
How the #d8rules initiative came along
In the beginning of 2014, a year and a half ago, fago & me sat together to discuss the future of the Rules module. With Drupal 8 on the horizon and fago being busy with running his own company drunomics, working on Drupal 8 core itself and maintaining various Drupal 7 modules, we were pretty worried: without something to happen, the complex task of porting the Rules module to Drupal 8 would probably be delayed years after the release of Drupal 8
So we sat together and decided that a funding campaign would be an interesting idea to allocate money to free up development resources currently not available, but also to provide a structure & goal to help move the project forward. The #d8rules initiative was born and at Drupal Developer Days Szeged, we reached out to members from the community and captured their voices supporting for our cause. A month later, we started the crowdfunding campaign on drupalfund.us. Combined with corporate funding we were able to get milestone 1 funded by July 2014. EUR 18.000 could now be used by fago & klausi to finish ⅓ of porting the Rules module to Drupal 8
We finished milestone 1 and a lot more
These are the main achievements of the first milestone
Rules core engine, plugin architecture & interface
Worked on 27 core issues related to Rules in Drupal 8
Integrated the context system which is used for parameters and provided variables in Rules
Extended the conditions API and context system as needed
All the basic Rules expressions such as Actions, Conditions, Rules components, action sets etc. have been implemented.
While working on milestone 1, we also completed various additional tasks that originally were not planned for the first phase:
Basic developer documentation is already available, special thanks to fubhy & stevepurkiss
First stabs of a basic Rules UI have already been started working on including the ability to create rules components and conditions.
Integration with the configuration system has already been started: a default config example is available
Event support is already in place, built upon Symfony events
- Drupal Console integration for generating Actions has been started, more to be worked on
Many sprinters, 27 code contributors already
The #d8rules initiative for us is not only about asking for money to get something done. A major focus was also laid on sprinting with the global community of Drupal contributors to teach them Drupal 8 and allow to help out with porting the module.
So far, we conducted 11 sprints, 3 full training workshops and presented at various conferences about the status of the Rules module for Drupal 8. The sprinting experience over time got better and better: we developed a routine of getting contributors up to speed with new coding patterns for Drupal 8.
Newbies helped porting an extensive amount of conditions, actions & event integrations from D7 to D8. These tasks make for a great introduction to the plugin system, context API but also unit testing. Beyond the valuable part of porting those basic integrations, we saw a great amount of advanced & creative contributions already. Derivative plug-in tests, Flag action integrations, Rules documentation, Personas, Webprofiler & a mathematical expression lexer/parser are some examples that are listed in more detail in our Drupal Developer Days Sprints wrap-up.
What’s next? Our updated roadmap for #d8rules
Planning ahead is always a tricky task but it is good to have a goal. We identified some problems in our initial planning where for example event plugins and the Rules UI where planned too late in the development cycle. We realized that in order to accelerate momentum, we need those motivational gains earlier on and re-prioritized accordingly. The updated roadmap can be found on drupal.org, here's the current overview:
Developer preview after DrupalCon Barcelona
By the end of DrupalCon Barcelona, we want to ship a first developer preview with all the basic APIs in place needed for other module developers to write their integrations. In Drupal 7, over 300 modules come with Rules integrations so this is a major milestone to unblock development of the ecosystem.
Milestone 2: Rules core completion with basic UI
We have re-prioritized so that milestone 2 would be a MVP with the basic functionality needed to use Rules for early adopters on their Drupal 8 production websites. Most of the APIs will be complete and a minimal user interface will be provided.
Milestone 2 is estimated for 316h of remaining work (EUR 14.220 based on the community rate of EUR 45,-)
Milestone 3: Rules 8.x release
After the MVP has been released, milestone 3 completes a couple of Rules core engine follow ups, provides a more sophisticated user interface as well as the rules scheduler. Existing integrations are already pretty much done, but will also be completed then.
Milestone 3 is estimated for 240h of remaining work (EUR 10.800 based on the community rate of EUR 45,-)
How you can help
Together we can make this happen. Thanks a lot to everyone involved so far,
Josef / dasjo on behalf of the #d8rules team