Add a major-version-agnostic façade endpoint for stranded d8 projects.
>>> [!note] Migrated issue
<!-- Drupal.org comment -->
<!-- Migrated from issue #3227031. -->
Reported by: [Mixologic](https://www.drupal.org/user/391689)
>>>
<h3 id="summary-problem-motivation">Problem/Motivation</h3>
<p>There are many sites that are unable to upgrade from drupal 8 to drupal 9 because they have a project that has not made itself compatible with drupal 9 yet.</p>
<p>Many of these projects are only incompatible in declaration, many more have minor, automatically fixable deprecations.</p>
<p>The project update bot has been posting patches to many of these projects, but maintainers have not been committing them, or maintaining their projects in a timely manner. </p>
<p>The primary problem that we aim to solve is that there is no great way to allow composer to download the incompatible project, patch it to be compatible, and allow the site owners to upgrade to drupal 9. </p>
<p>There are a couple of workarounds, but they require a lot of effort for each module that a site needs to upgrade, which can be burdensome:<br>
See:<br>
<a href="https://www.computerminds.co.uk/articles/apply-drupal-9-compatibility-patches-composer">https://www.computerminds.co.uk/articles/apply-drupal-9-compatibility-patches-composer</a><br>
<a href="https://www.mediacurrent.com/blog/how-fix-catch-22-problem-drupal-9-fixes-composer/">https://www.mediacurrent.com/blog/how-fix-catch-22-problem-drupal-9-fixes-composer/</a></p>
<h3 id="summary-proposed-resolution">Proposed resolution</h3>
<p>1. Create an additional composer endpoint that advertises the modules who do not have a core_version_requirement set as being compatible with any version of drupal.<br>
2. Instruct users of composer 2 to add this endpoint to their composer.json. (this will not work for composer 1 as smoothly because of the lack of repository prioritization),<br>
3. Instruct users to use cweagans/composer-patches to utilize the patch that the project update bot has created so that they can download the d8 module, and patch it to be d9 compatible.</p>
<h3 id="summary-remaining-tasks">Remaining tasks</h3>
<p>1. Generate the facade metadata<br>
2. Implement the facade endpoint<br>
3. Document the procedure for updating a module that requires a patch using this mechanism.<br>
4. Document the procedure for migrating from a patched module back to a maintained version once a version is committed.</p>
<h3 id="summary-ui-changes"></h3>
<p>The primary value of this approach is that there is no blockers on what an end user developer is able to do to get their site upgraded to drupal 9. Even if a d8 module is severely broken in drupal 9, this will allow an interested dev to take a deliberate step to enable this feature (adding the endpoint to composer.json), and create a patch/MR to repair the module, contributing back to the issue for that module.</p>
<p>This mechanism would allow a site owner to make one change to their composer.json in order to be able to patch all modules that needed upgrades.</p>
> Related issue: [Issue #3168047](https://www.drupal.org/node/3168047)
issue