Drupal 9

I am an initiative coordinator on Drupal 9, here is my writing on tools and processes getting there.

Thanks for making a difference at Drupal 9 Porting Weekend!

I organized Drupal 9 Porting Day for April 28 as part of my #DrupalCares funding sub-campaign to help the Drupal Association bounce back from their financial losses due to the ongoing pandemic. It was a lot of fun with Lee Rowlands, Vladimir Roudakov, Adam Bergstein and Mike Lutz helping lead the contribution before and after my time of availability. 126 issues were worked on and 43 newly Drupal 9 compatible releases were made then.

Given how fun it was, with Drupal 9 coming out next week it was logical to do another event. Last Friday would have been a great opportunity in person at DrupalCon Minneapolis if not for the pandemic (again). So I decided to schedule the event for that weekend. Surabhi Gokte and Gabriele Maira helped a lot in getting the event off the ground and we announced Drupal 9 Porting Weekend for May 22-23 to accommodate people available on the workday as well as the weekend.

With more time to prepare, a lot more interested folks signed up to help lead the event in their respective timezones. 14 leads signed up and helped contributors for 52 hours, while the event lasted. Thanks Vladimir Roudakov (VladimirAus), Janna Malikova (JannaKha), Vaibhav Jain (vaibhavjain), Tsegaselassie Tadesse (tsega), Gabriele Maira (gambry), João Ventura (jcnventura), Oleh Vehera (voleger), Matthew Radcliffe (mradcliffe), Michael Lutz (mikelutz), Adam Bergstein (nerdstein), Kristen Pol, Qiangjun Ran (jungle), Jaideep Singh Kandari (JayKandari) and Digant Jagtap (digantdj), you were fantastic!

Kristen Pol and Tsegaselassie Tadesse were also very active in the planning stage, Kristen published a very detailed guide to the weekend, Tsega wrote up and posted developer tips. The Bassam Ismail posted this video based on those guides of an actual Drupal 9 project update running with Upgrade Status and Rector, ending in submitting the patch:

So with everything well prepared, Vladimir and Janna started the weekend and the leads were handing off responsibilities to each other throughout the whole event. This is how time coverage looked like for the whole 52 hours. There was not a single time when someone was not there to help:

We had a lot of fun and learned a ton from each other. While numbers will not explain the event, that is all we have after the fact to look at, so here they are:

When looking at project releases, the weekend also supported a major increase in daily newly Drupal 9 compatible releases also with several days of after-effects (I am counting these with my own script):

New releases at the weekend and shortly after included fun modules like Pirate but also seriously cool modules like the Tome static site generator, Quicklink and top 200 most used modules like Views Accordion and Schema.org Metatag.

As luck would have it Drupal 9.0.0 RC1 was also released on this weekend, which meant that people testing their updated projects also gave the Drupal 9 release candidate a test drive right away.

For me this event was amazing to organize. The results in new Drupal 9 compatible projects before the stable core release and the additional testing of the release candidate are all good material outcomes. The raised awareness around the porting process and tools as well as the know-how shared will last even longer as people use what they learned and teach others as well. Also the concentrated increased use of the tools resulted in more improvement suggestions, so we can make them even better for the next wave of porters to come.

Thanks all for your involvement, you made a lasting difference. Keep spreading your know-how and all the good things about Drupal 9!

Ps. Next up is celebrating the release on June 3rd, 2020! Post your artwork, selfies, videos and events at https://celebratedrupal.org/ and let's have some fun together.

Drupal 9 porting day was huge, we raised a lot of money for the Drupal Association!

When I announced the Drupal 9 module porting challenge two weeks ago, I did not fully understand what was gonna come. I offered to donate €900 to the Drupal Association #DrupalCares campaign for 100 projects newly ported to Drupal 9. Then more funders started to appear. Ron Northcutt offered another €900, Ofer Shaal put in another €450. QED42 offered to match Ron's €900. It certainly grew much bigger than I anticipated so it was time to step up the game.

So last week I announced and started organizing Drupal 9 porting day for April 28, 2020 to not let our funders keep their money. While my funds were almost gone in the first week, there was still the rest of the funds to get donated. The idea of the porting day sounded good because we raise funds for the Drupal Association, we get people together to do their first Drupal 9 releases, we help others' projects out, drive the tools to their boundaries, do Drupal 9 core quality assurance and grow the ready module pool before Drupal 9's launch all at the same time. Some people would learn how to get ready for Drupal 9 for the first time, so we would spread some know-how and confidence in the release as well. That is like a win-win-win-win-win-win.

Nonetheless I was still blown away by the interest to participate. Lee Rowlands and Vladimir Roudakov signed up to start leading porting day in Australia / New Zealand while I was still well asleep. By the time I woke up there were already various new releases and issues opened. I started providing feedback there and then worked my way through the top 50 used projects that needed info file changes and releases. I made sure to do the deepest research and support maintainers to do the next steps. I also started getting patches for my own projects and even though I did not think it would be even feasible, thanks to contributors, we made one of my projects, Upgrade Rector Drupal 9 compatible as well. I also helped fix a critical core bug in Drupal 9 that Christian López Espínola found while porting the Lingotek module suite. At least two companies, QED42 and Srijan had groups of people internally gathering to rally and contribute. In my afternoon, Adam Bergstein and Mike Lutz came in from the United States to continue leading the day onwards.

Closing for the day. We had an awesome contribution effort today. It is incredible to see so many contributors participating and making this day wonderful. ❤️ Thank you… #DrupalCares - Jaideep Singh Kandari

At the time of this writing, altogether 126 issues were worked on. According to my scripts identifying newly Drupal 9 compatible releases of projects, 43 newly Drupal 9 compatible releases were made, including top 50 projects like honeypot and adminimal_admin_toolbar and such developer modules as twig_xdebug and queue_ui. When I put this together with all the numbers in the challenge to date, it turns out these 43 projects exactly rounded out the second 100 projects. Yes I went back to double-check!

This means Ron will now donate his €900 (which will be matched by Dries and Vanessa Buytaert and Drupal businesses to €2700) and QED42 will also donate their €900, totalling to an impact of €3600 funding for the Drupal Association from this second milestone of the Drupal 9 porting challenge. (Including the first milestone's €900, the directly donated funds are altogether €2700, for a total matched impact of €6300 in the #DrupalCares campaign).

If you did not get to do a first Drupal 9 release on porting day, no problem! We made a ton of progress on projects other than the ones that got releases and that will result in more releases. Some of them could be very soon. In fact, this challenge is not over, as there are still two more days, and we just entered the final round for Ofer Shaal's fund of 50 newly Drupal 9 compatible releases (max €450) for #DrupalCares. So please keep the releases coming! Thanks all!

Ps. Kristen Pol wrote up her detailed steps of working on Drupal 9 compatibility of others' projects. I suggest reading her tips for how to ensure compatibility and work with maintainers respectfully.

First week's update on the Drupal 9 Module Porting Challenge; organising a porting day on April 28, 2020

I launched the Drupal 9 Module Porting Challenge a week ago, and wow it is going well! I pledged to donate €9 for each newly Drupal 9 compatible drupal.org project to the #DrupalCares campaign up to a total of €900. Since then Ron Northcutt joined on April 20 with another €900 and Ofer Shaal joined on April 21 with another €450, so the challenge now goes to a total of €2250! Our donation will potentially be matched by Dries and Vanessa Buytaert and then a group of organisations will match it again for a potential total of €6750 donated.

State of the challenge

After a week, my original budget is almost spent, so I am preparing to donate it tomorrow! Let's make Ron and Ofer donate their whole pool as well! We are standing at €837 of €2250 covered by 93 newly Drupal 9 compatible projects in one week.

According to our static analysis at least, over 3600 projects only need a single line info.yml file change and a new release. It is worth checking if one of your projects are in there so we don't let Ofer and Ron keep their money either! ;)

Porting day on April 28, 2020

Some projects will admittedly not be as easy as a one line change though, so I am organising a Drupal 9 porting day for April 28, 2020. I commit to be available in European times to consult on fixing deprecation issues and would love to see you there! Let's meet online in the #d9readiness channel on Drupal slack (drupal.org/slack). We'll use slack threads to discuss projects to help coordinate the work. We may use other tools as needed to speed up the process, still exploring the possibilities. Stay tuned! For now, if you can be available for even one hour, you are welcome to join!

Port your module to Drupal 9 to make me donate more to #DrupalCares

The #DrupalCares program is all around the Drupalsphere. Project lead Dries Buytaert broke the news on March 25th, that the Drupal Association needs our financial help to overcome challenges due to the COVID-19 pandemic. I almost immediately donated and if you have the financial means, I would suggest you do so as well. However this is a tough time for many, and even without COVID-19, unfortunately not everyone is financially privileged to have money to spare.

I am among the lucky ones who get to keep their job, already worked from home and can even support the Drupal Association financially. At the same time, my workdays are focused full speed ahead on preparing Drupal 9 for release (among many other people). And we definitely need contributed modules to come along soon. Updating modules for Drupal 9 is much easier than it was for previous major releases and most modules can still stay compatible with Drupal 8. So I decided to join the two and turn your updated modules into monetary donations to #DrupalCares as well! How? Here are the ground rules:

  • For any drupal.org project that already existed yesterday
  • If the project did not yet have a Drupal 9 compatible release yesterday
  • But you are making a Drupal 9 compatible release available in the next two weeks (until the end of April)
  • I'll donate €9 to the #DrupalCares fund.
  • Up to at most €900
  • At the end of April.

I'll make sure to send the donation before the end of April to participate in Dries and Vanessa Buytaert's fund matching.

While this will only be a drop in the ocean in the fundraising efforts, I hope it will allow those who don't have the financial privilege but have the time available and interest to learn updating projects to Drupal 9 to contribute their way as well. I previously built a tool at https://dev.acquia.com/drupal9/deprecation_status that allows you to review project readiness and find which project maintainers to work with, eg. ones that have a Drupal 9 plan and only need their info.yml files updated. Earlier today I published a video on using Upgrade Status to verify results locally and drupal-rector or Upgrade Rector to generate patches.

I'll monitor new project releases and keep you posted on how this is going!

Ready, set, go!

Upgrade Status April 2020 update and introducing Upgrade Rector

Upgrade Status is growing to be an almost (if not entirely) indispensable tool for Drupal 8 sites to asses and prepare for their upgrade to Drupal 9. With the latest additions of the Drupal core version and environment checklist as well as additional deprecation checking for Twig, deprecated libraries, deprecated theme functions, info.yml files and composer.json files, the results are much more complete. Unfortunately not all of those are possible in drupal-check due to Drupal not being bootstrapped there. With the addition of two drush commands though, this expanded set of results is available for the command line as well, including for CI system integration.

A relatively new development is Palantir's drupal-rector which is amazing at providing automated fixes for an increasing number of deprecated APIs. I also built a UI on top of that called Upgrade Rector to make it easier to propose fixes for your team's custom modules as well as your contributed modules. You should always keep the Drupal 9 plan of projects in mind, and contributed in accordance with their indicated Drupal 9 plan, which is well facilitated if you use Upgrade Rector within the Upgrade Status UI. Check out this demo video where I walk through the latest improvements:

I hope you find the tools useful and continue to contribute to both projects to help make the upgrade path to Drupal 9 even easier.