End Install Profile Packaging on Drupal.org in August 2023

Created on 28 February 2022, over 2 years ago
Updated 20 September 2023, 12 months ago

Problem/Motivation

The method for packaging install profiles into distributions on Drupal.org is very dated and being used by just a handful of projects. Maintaining it is both a drain on limited resources and a potential security issue. While D7 has been given yet another EoL extension, a shift of resources to the current version of Drupal and a modern approach to packaging is long overdue.

The current D7 install profile/distribution packaging relies on drush make. The last version of Drush to support the make command was version 8. Drush 8 is still listed as being EoL in Nov 2022 on https://www.drush.org/latest/install/#drupal-compatibility.

While the team managing Drush may or may not extend that project's EoL, the regex the Licensing Working Group (LWG) maintains in https://www.drupal.org/packaging-whitelist is also problematic. The volunteers (before the LWG was formed) and the LWG members have only been checking these projects for licensing compliance at the time of the request. In the decade since some of these libraries were approved, the project's licensing or Drupal.org policy has changed.

Our approach of checking specific paths to project repositories/downloads and not the licensing and security of each version also allows projects on Drupal.org to continue to include libraries with known licensing and security issues.

While using regex to manage which libraries could be included was an "innovative" approach when it was launched a decade ago , it has some serious shortcomings. Looking to the future, commands like composer outdated and composer licenses give us a structure to build packaging solutions that solve many of the short comings of the drush make approach.

The way the distribution packaging works now, we have several D8 distributions appear to be supported. Users aren’t warned of the problem until after the install.

With CKEditor in core, the security issues in the older versions of the library are well known. https://www.drupal.org/node/1403548 allows these older versions to be included with a secure version of Drupal core with no warning to the user even after install.

We also have projects with libraries using licenses that should have never been approved like https://www.drupal.org/node/1597494 LGPL-3.0 or https://www.drupal.org/node/1695056 AGPL-3.0.

If you look at the top 25 D7 distributions by reported installs, only 3 have been updated using the drush make packaging in the last 6 months; Panopoly, Opigno LMS and farmOS.

Beyond the top 25, the percentage of active D7 projects in the other ~300 projects is even less.

Proposed resolution

We should start phasing out the packaging of install profiles on Drupal.org now and no longer create packaged, downloadable D7 distributions as releases on Drupal.org after the previous D7 EoL date in November 2022.

Some steps in this process might include;

  • Communicate the timeline for ending support for packaging on Drupal.org with Install Profile maintainers giving them an opportunity to transition to another process if they want to continue distributing a downloadable package. (ie. FarmOS already has a packaged install available on GitHub)
  • Officially make https://www.drupal.org/packaging-whitelist read only
  • Remove releases from install profile projects that include a version of Drupal core that is unsupported or has known security issues (80-90% of distribution projects with downloadable releases including D8 projects like https://www.drupal.org/project/brainstorm_profile )
  • Stop running drush make on Drupal.org in November 2022.
  • Remove releases from remaining install profile projects with the first D7 security update after November 2022.
🌱 Plan
Status

Fixed

Component

Packaging

Created by

🇺🇸United States kreynen

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

Production build 0.71.5 2024