Problem/Motivation
Once Drupal 8 itself has been marked unsupported on Drupal.org, we will be marking any contributed project releases that are only Drupal 8 compatible unsupported as well.
Will Drupal 7 releases be affected?
No, Drupal 7 is still supported by the community until November 2022 and a Drupal 7 Extended Support program will be available from vendors.
What about releases compatible with both Drupal 8 and Drupal 9?
Releases compatible with both Drupal 8 and Drupal 9 will not be affected.
Will my project page itself be affected?
No, we will not be marking whole projects unsupported, just the D8-only compatible releases.
How do I make a release of my project compatible with Drupal 9?
[Needs a link to the current preferred guide]
Once done, go to your project page on www.drupal.org, click “Administer releases” and mark the release series as supported.
How do I update Automated Testing for my project?
We recommend reviewing the Automated Testing tab linked at the top of your Project Page. The option to test against Drupal 8 will soon be removed, and if you were only testing against Drupal 8, you will want to make sure you have testing for Drupal 9 correctly enabled. Please follow these instructions.
Remaining tasks
Perform this bulk update once cleared by security team and core stakeholders
Implementation
Query for auditing in-use core_version_requirements:
SELECT DISTINCT pcc.core_version_requirement FROM project_release_supported_versions prsv INNER JOIN node n ON n.nid = prsv.nid AND n.status = 1 AND n.type != 'project_core' INNER JOIN field_data_field_release_category fdf_rc ON fdf_rc.entity_id = prsv.latest_release AND fdf_rc.field_release_category_value = 'current' INNER JOIN project_composer_component pcc ON pcc.release_nid = fdf_rc.entity_id AND pcc.component_role = 'primary' WHERE supported = 1 GROUP BY prsv.nid, prsv.branch;
+--------------------------+
| core_version_requirement |
+--------------------------+
| ^9.3 |
| ^8.8.6 || ^9 |
| ^8.7.10 || ^9 |
| ^8.8.2 || ^9 |
| ^9 |
| ^8 || ^9 |
| ^9.2 |
| ^8.7.7 || ^9.0 |
| ^8.9 || ^9 |
| ^8.7.7 || ^9 |
| ^9 || ^10 |
| ^8.9.11 || ^9.0.10 |
| |
| ^8.9 || ^9.1 |
| ^8 || ^9|| ^10 |
| ^8.8 || ^9 |
| ^8.7.12 || ^9 |
| ^8 || ^9 || ^10 |
| ~9 |
| ~8 |
| ^8.9 || ^9.0 |
| ^8.5 || ^9 |
| ^8.8.4 |
| ^8.8 || ^9.0 |
| ^8 | ^9 |
| ^8.8.0 || ^9.0 |
| ^8.8.6 || ^9.0.0 |
| ~8.9.1 || ^9 |
| ~9.0.0 |
| ^9.1 |
| ^8.7 || ^9 |
| ^8.8.4 || ^9.0 |
| ^8.8.3 || ^9 |
| ^8.4 || ^9 |
| ^9.1.0-alpha1 |
| ^8.0 || ^9.0 |
| ^8.8.0 || ^9.0.0 |
| ^8.8.4 || ^9 |
| ^8.8 |
| ^8 ||^9 |
| 9.x |
| 8.x || ^9 |
| ^8.0 || ^9 |
| ^8.9.0 || ^9 |
| ^8.7.7 || ^8.8 || ^9 |
| ^8.7.7 || ^9 |
| 8.x || 9.x |
| ^8.6 || ^9 |
| ^8.8.0 |
| ^8.7.12 || ^9.0 |
| ^8 |
| ^8.8 || ^9 || ^10 |
| ^8.8.0 || ^9 |
| ^8.7.7 |
| ^8.8 ||^9 |
| ^8.8.1 || ^9 |
| ^9.0 |
| ^9.2 || ^10 |
| ^8.7.7 ||^9 |
| ^8 || 9 |
| ^8.8 || ~9.0 |
| ^8.8.3 || ^9.0 |
| ~8.8 || ^9 |
| ^8.8 | ^9 |
| ^8.8 || 9 |
| ^8.9.0 || ^9.0 |
| ^8.9 || ^9 |
| ^8.9|^9.0 |
| ^8|| ^9 |
| ^8 |^9 |
| ^9. |
| ^8|^9 |
| ^8.9 || ^9.2 |
| ^8.8|| ^9 |
+--------------------------+
Query for supported release series on published projects, that are “current” (semver or 8.x- prefix), where the primary component has a core version requirement that’s empty or a known “8-only” constraint from the list above:
SELECT n.nid, n.title, prsv.branch FROM project_release_supported_versions prsv INNER JOIN node n ON n.nid = prsv.nid AND n.status = 1 AND n.type != 'project_core' INNER JOIN field_data_field_release_category fdf_rc ON fdf_rc.entity_id = prsv.latest_release AND fdf_rc.field_release_category_value = 'current' INNER JOIN project_composer_component pcc ON pcc.release_nid = fdf_rc.entity_id AND pcc.component_role = 'primary' WHERE supported = 1 AND pcc.core_version_requirement IN ('', '^8.8', '^8', '^8.7.7', '^8.8.4', '^8.8.0', '~8') GROUP BY prsv.nid, prsv.branch;
Query for admin releases maintainers of those projects:
SET group_concat_max_len = 1000000; SELECT u.name, u.mail, group_concat(DISTINCT concat(n.title, ' ', prsv.branch, '*') SEPARATOR ', ') project_branches, group_concat(DISTINCT concat('https://www.drupal.org/', ua.alias) SEPARATOR ', ') project_urls FROM project_release_supported_versions prsv INNER JOIN node n ON n.nid = prsv.nid AND n.status = 1 AND n.type != 'project_core' INNER JOIN field_data_field_release_category fdf_rc ON fdf_rc.entity_id = prsv.latest_release AND fdf_rc.field_release_category_value = 'current' INNER JOIN project_composer_component pcc ON pcc.release_nid = fdf_rc.entity_id AND pcc.component_role = 'primary' INNER JOIN url_alias ua ON ua.source = concat('node/', n.nid) INNER JOIN project_release_project_maintainer prpm ON prpm.nid = n.nid AND prpm.administer_releases = 1 INNER JOIN users u ON u.uid = prpm.uid AND u.status = 1 WHERE supported = 1 AND pcc.core_version_requirement IN ('', '^8.8', '^8', '^8.7.7', '^8.8.4', '^8.8.0', '~8') GROUP BY u.uid;
Query for making the update:
UPDATE project_release_supported_versions prsv INNER JOIN node n ON n.nid = prsv.nid AND n.status = 1 AND n.type != 'project_core' INNER JOIN field_data_field_release_category fdf_rc ON fdf_rc.entity_id = prsv.latest_release AND fdf_rc.field_release_category_value = 'current' INNER JOIN project_composer_component pcc ON pcc.release_nid = fdf_rc.entity_id AND pcc.component_role = 'primary' SET prsv.supported = 0, prsv.recommended = 0 WHERE prsv.supported = 1 AND pcc.core_version_requirement IN ('', '^8.8', '^8', '^8.7.7', '^8.8.4', '^8.8.0', '~8');
TRUNCATE cache_project_release_download_table;
Comments
Comment #2
drummAdding queries that will be used. This currently will affect 5,098 project/branch-series combinations.
Comment #3
drummAdding query for people who can make releases for those projects, currently 4,126 of them.
Comment #4
drummAdd
group_concat_max_lenComment #5
drummComment #6
drummAdding Query for making the update
Comment #7
drummAlso clear the recommended bit along with supported.
Comment #8
drummDrupal-8-only contrib releases are now marked unsupported.