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

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:
Screenshot

API changes

None.

Data model changes

New field on project_module, project_theme, project_distribution nodes.

Comments

Gábor Hojtsy created an issue. See original summary.

gábor hojtsy’s picture

This is probably not the right queue but I could not find the drupal.org project customizations one.

mikelutz’s picture

Project: Drupal.org infrastructure » Drupal.org customizations
Version: » 7.x-3.x-dev
Component: Other » Code
dww’s picture

+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

gábor hojtsy’s picture

@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:

webchick’s picture

Discussing 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.)

webchick’s picture

Adding credit where credit is due! :)

drumm’s picture

The next step on this issue looks like adding the field for maintainers. I’ll need

  • The field title, maybe made generic in hopes that this plan works for D10 and later, too.
  • The field description, potentially linking to a page with templates and more explanation.
drumm’s picture

And does this mean we are removing the contrib_tracker messages?

gábor hojtsy’s picture

@webchick posted this in the UX channel:

As a starting point, how about:

Machine name: “field_next_major_version_info”
Label: “Drupal 9 porting info”
Description: “This field allows you to specify the Drupal 9 porting status of your project; for example, linking to an issue where it’s being coordinated.”
Default value: “For more information on porting code to Drupal 9, see How do I prepare for Drupal 9?.”

(That doesn’t appear to be a “great” link, but I’m not sure there are any others, at least that are on D.o.)

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.

drumm’s picture

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.

I 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.

gábor hojtsy’s picture

I 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.

Yeah 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.

gábor hojtsy’s picture

We 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:

  1. Showing the number is useful for module evaluation.
  2. Compatibility problem sounds too scary, it should be something that sounds like a todo, after all, there is no problem with the module, Drupal 9 is not even out yet, and even then there is no problem with the module so long as it is only meant to be for Drupal 8. So "Drupal 9 compatibility task" was raised as an option.
  3. The blue box was too distracting. People agreed moving into the icon based area with a short summary is good though.
  4. Speaking of short, the idea of limiting the length of the field was suggested so people don't overcrowd this area. Thomas even suggested to have a few set of default options and no free form text, but that would severely limit the usefulness of the field. So we landed on suggesting more options in the field description.
  5. The potential list of results looked non-actionable. That is a 3rd party tool limitation that @mglaman is working on at https://github.com/phpstan/phpstan-deprecation-rules/issues/2 (thanks!)

What did I miss?

drumm’s picture

Issue summary: View changes

Updating 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:

  • project_core - gets a pass
  • project_drupalorg - community projects, not code for computers
  • project_theme_engine - maybe we do want this?
  • project_translation - deprecated
drumm’s picture

Issue summary: View changes
StatusFileSize
new1.91 KB
new26.55 KB

Adding 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
Screenshot

Also updating Remaining tasks in the issue summary to add deployment notes.

  • drumm committed 11df4c1 on 3046058-next-version-info
    Issue #3046058 by Gábor Hojtsy, drumm, webchick, dww, Mixologic,...
drumm’s picture

Issue summary: View changes
StatusFileSize
new38.03 KB

Pushed a branch with the additions to the project page, which looks like:

Screenshot

drumm’s picture

Status: Active » Needs work

Splitting 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.

gábor hojtsy’s picture

gábor hojtsy’s picture

Status: Needs work » Needs review

I would use these suggested texts:

I think those should cover it. The issue link is a good fallback for explaining more nuanced things.

webchick’s picture

Issue tags: +DrupalCampBelarus2019

Ok, Gábor and I met at #drupalcampby, and here's what we came up with:

  • Help port this project at [#issue number]
  • Identified issues are not yet actionable. See [link]
  • Read more about this project’s readiness at [link]
  • Fund the port of this project at [link]
  • Use this project instead: [link]

Changes:

  • Reorder according to estimated frequency that they come up
  • Move links to the end so people don't need to futz with HTML
  • Specifically call out "not yet actionable" ones, since with core support policy that will come up a lot.
  • Tweaked the wording some

This should be good to go live! Thanks @drumm!

webchick’s picture

Another 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.

drumm’s picture

Assigned: Unassigned » drumm
Issue summary: View changes

Copying #26 into the issue summary for the full field 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>
drumm’s picture

StatusFileSize
new5.92 KB

Final set of fields for field creation.

  • drumm committed 11df4c1 on 7.x-3.x, dev
    Issue #3046058 by Gábor Hojtsy, drumm, webchick, dww, Mixologic,...
  • drumm committed f823273 on 7.x-3.x, dev
    Issue #3046058 by drumm, Gábor Hojtsy, webchick: Add field on projects...
drumm’s picture

Status: Needs review » Fixed

This has been deployed.

Not the best example, I put a value in for this project https://www.drupal.org/project/drupalorg

pasqualle’s picture

very good plan :)

gábor hojtsy’s picture

aaronmchale’s picture

This looks great, very clean and to the point, big +1 from me :)

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.