Problem/Motivation
With the Drupal 7 to 8 transition, we had the Contrib porting tracker at https://www.drupal.org/project/contrib_tracker. That was in many ways a hack. It would be great to give control to project maintainers about their plans. We can automate checking if we found any compatibility issues so we can display the state, however the plans of the maintainer we don't know.
Proposed resolution
Add a textarea on project nodes where project maintainers can specify their plans for Drupal 9 or a textfield where they can link to a page/issue with their Drupal 9 plans to learn more. Some possible things people could explain here are:
1. Leave this project alone now, I don't have bandwidth for this, will start thinking about it later in 2020.
2. For Drupal 9 there is a better project at X, see that.
3. I need funding to work on the Drupal 9 port, here is my funding mechanism (hire me, donate to this open collective, patreon, etc)
4. I prefer working in a big megapatch or split patches like this. Also see the existing porting issues at [link]
5. Get involved in the Z initiative to help port this project.
We'd love to display a pointer to these instructions in the Drupal in-site Upgrade Status D8 module so people using that to asses site readiness can directly be informed about plans of maintainers and maintainers can get the most value. Eg. no random patches when they are not necessary, too early or too distracting. Possible funding when maintainers need it, etc.
Remaining tasks
Finish drafting and reviewing.
Deployment
- Bluecheese deployment for https://git.drupalcode.org/project/bluecheese/commit/88f8f7e018cd124d7f0...
- Add fields in production and export
- Deploy other drupalorg changes
User interface changes
Projects would have a new field. The content of this field would be displayed in a new "Drupal 9" section of project pages (where the project maintainer filled it in).
For project maintainers:
Label: Drupal 9 porting info
Description:
The Drupal 9 porting status of your project. For example:
<ul>
<li>Help port this project at [#issue number]</li>
<li>Identified issues are not yet actionable. See [link]</li>
<li>Read more about this project’s readiness at [link]</li>
<li>Fund the port of this project at [link]</li>
<li>Use this project instead: [link]</li>
</ul>
For people viewing the project page:

API changes
None.
Data model changes
New field on project_module, project_theme, project_distribution nodes.
| Comment | File | Size | Author |
|---|---|---|---|
| #29 | 3046058-fields.php_.txt | 5.92 KB | drumm |
| #22 | Screen Shot 2019-05-10 at 4.23.44 PM.png | 38.03 KB | drumm |
| #20 | Screen Shot 2019-05-10 at 4.13.27 PM.png | 26.55 KB | drumm |
| #20 | 3046058-field-draft.php_.txt | 1.91 KB | drumm |
| #5 | Screenshot 2019-04-18 at 18.49.01.png | 139.41 KB | gábor hojtsy |
Comments
Comment #2
gábor hojtsyThis is probably not the right queue but I could not find the drupal.org project customizations one.
Comment #3
mikelutzComment #4
dww+1 to all this.
A text area seems good, instead of forcing a link to a separate page. Might not be too much to say, so let folks say as little or as much as they need.
I'd be happy for a very short doc page that includes the list of example topics from the summary here, and we link to in the help text on the field.
Thanks,
-Derek
Comment #5
gábor hojtsy@webchick and I spent some time on this today and firebugged a draft together. This assumes some automated reporting is happening on the project page which is then augmented by a link to a general page or if the maintainer decided to specify their own message here, their own message. The two variants would be like this:
For project not specifying their own Drupal 9 readiness text:

For project specifying their own text:

Comment #6
webchickDiscussing this with @Mixologic, he had concerns that we're exposing a lot of data here, and data that contains a lot of conditional logic (plural vs. signular, etc.). The bulk of the people visiting this page are not contributors to Drupal, but end users looking for easily digestable project info.
Would be perhaps better/simpler to do something more like:
[Yellow warning] Drupal 9 is planned to be released June 3, 2020. This project has detected compatibility issues with Drupal 9. [Read for more info]
[Blue box] Drupal 9 is planned to be released June 3, 2020. This project has no detected compatibility issues with Drupal 9.
And then "More info" outlines the specific issues, probably in a style akin to what Upgrade Status us doing @ #3040307: Design a "readiness report" for Drupal 8 => 9 migrations along with the text from the maintainer at the top of that page, if present. (In lieu of that, a link to general "how to port a module to Drupal 9" instructions.)
Comment #8
webchickAdding credit where credit is due! :)
Comment #9
drummThe next step on this issue looks like adding the field for maintainers. I’ll need
Comment #10
drummAnd does this mean we are removing the contrib_tracker messages?
Comment #11
gábor hojtsy@webchick posted this in the UX channel:
All I would add is we should make the default value a display dynamic default value rather than a field default value, because otherwise we'll end up with any edited project get this and very hard to fix the link, etc. later.
Comment #12
drummI believe editing existing projects will ignore the field’s default value. They will be blank, unless we back-fill data (which we won’t), or form alter it in for projects last updated before the time this launches.
Comment #13
gábor hojtsyYeah still then new projects created would get the verbatim default value saved which is not good IMHO. People will not notice and edit this field among the sea of fields on a project. So I would keep it empty for editing sake unless something actually custom was provided and display it as a default value if empty.
Comment #18
gábor hojtsyWe discussed it on the UX meeting with the people I just credited. For the first 36 minutes of https://www.youtube.com/watch?v=oJsljNYsoA8. Yeah.
Short summary, please correct me if I am wrong:
What did I miss?
Comment #19
drummUpdating Data model changes in the issue summary.
Projects are actually 7 content types. The ones I didn’t put in the issue summary to get the new field are:
Comment #20
drummAdding the
field_create_field()/field_create_instance()calls to make the field. This is the least-performance-degrading way to deploy new fields to Drupal.org.Putting drafts of the relevant field configuration under User interface changes in the issue summary.
For maintainers, this currently looks like

Also updating Remaining tasks in the issue summary to add deployment notes.
Comment #22
drummPushed a branch with the additions to the project page, which looks like:
Comment #23
drummSplitting off #3054064: Run weekly deprecation testing on Drupal 8 compatible drupal.org projects and add report on project page for adding the deprecation counts later.
And setting this to needs work since this could use a bit of review, and the field description needs copy.
Comment #24
gábor hojtsyComment #25
gábor hojtsyI would use these suggested texts:
I think those should cover it. The issue link is a good fallback for explaining more nuanced things.
Comment #26
webchickOk, Gábor and I met at #drupalcampby, and here's what we came up with:
Changes:
This should be good to go live! Thanks @drumm!
Comment #27
webchickAnother aspect we discussed was whether to put the D9 notice on all project pages, regardless of the content of the field.
Originally, I thought we should do that, linking to https://www.drupal.org/node/3032484 for more info on how people can get involved fixing things they see. However, @Gábor Hojtsy noted that until we get #3054064: Run weekly deprecation testing on Drupal 8 compatible drupal.org projects and add report on project page done, there's very little value in just blasting people in the face with this field unless there's actual info in there from the maintainer. I agree! ~50% of projects are already Drupal 9 ready and don't need any action. And there are better places to raise awareness about Drupal 9 coming (like the Drupal project page, maybe the download pages, etc.) than individual project pages.
Comment #28
drummCopying #26 into the issue summary for the full field description:
Comment #29
drummFinal set of fields for field creation.
Comment #31
drummThis has been deployed.
Not the best example, I put a value in for this project https://www.drupal.org/project/drupalorg
Comment #32
pasquallevery good plan :)
Comment #33
gábor hojtsyTweeted at https://twitter.com/DropIsMoving/status/1130868996771844096 :)
Comment #34
aaronmchaleThis looks great, very clean and to the point, big +1 from me :)