Problem/Motivation

Say you're on the modules page and update manager tells you this:

The installed version of at least one of your modules or themes is no longer supported. Upgrading or disabling is strongly recommended. See the project homepage for more details. See the available updates page for more information and to install your missing updates.

The text "available updates" is then linked to admin/reports/updates/update which says:

All of your projects are up to date.

It's necessary to go to admin/reports/updates to see what module and what the issue is:

Project not supported: This project is no longer supported, and is no longer available for download. Disabling everything included by this project is strongly recommended!

Proposed resolution

Include information about unsupported projects on the 'Update' form at /admin/reports/updates/update

2 possible approaches, we must pick one:

Include them in the 'Manual updates required' table - YES

See #25

Also as part of this issue, make the following changes to this table:

  1. Change the heading of that table to something more generic, perhaps "Recommended action".
  2. Change the existing entry in that column (in the row for Drupal core) to a full sentence: something like "Upgrade to 8.8.x ...".
  3. Rewrite the second sentence in the new row to avoid the passive voice.

Add a new table for unsupported projects - No

Along the lines of what we did at #3113992: The 'Update' page has no idea that some updates are incompatible. A separate table might be easier to deal with, we can optimize the column headers to make sense for unsupported projects, etc.

Downside: Adds Yet More Tables(tm) to this page. In a really wonky example, a site might have 5 tables on this page:

  1. Normal available updates with checkboxes to update them (the functional part of this UI)
  2. Manual updates (core)
  3. Unsupported projects (this issue)
  4. Incompatible updates #3113992: The 'Update' page has no idea that some updates are incompatible
  5. Uninstalled/disabled projects #3117553: Change UI for /admin/reports/updates/update to not mention "Enabled/Disabled" modules and themes

Something like:

Unsupported projects

Name Installed Version Additional information
Page Access 8.x-1.1 This project is no longer supported, and is no longer available for download. Disabling everything included by this project is strongly recommended!

(more or less).

Remaining tasks

  1. Decide which approach we want.
  2. Implement it. #38
  3. Update/add test coverage.
  4. Reviews/refinements.
  5. RTBC.
  6. Commit.

User interface changes

Changes to the "Manual updates required" table on the update your site form at /admin/reports/updates/update:

  • Include rows for projects that are now marked unsupported.
  • Change the heading of that table to something more generic, perhaps "Recommended action".
  • Change the existing entry in that column (in the row for Drupal core) to a full sentence: something like "Upgrade to 9.1.2 ...".
  • Rewrite the second sentence in the new row to avoid the passive voice.

Before

After

API changes

Probably nothing public.

Data model changes

Nope.

Release notes snippet

TBD.

Issue fork drupal-961060

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

RoboPhred’s picture

Status: Active » Needs review
FileSize
1.3 KB

Attached is a patch that forces the link to go to the module list rather than the update list in the event of an unsupported contrib module.

Status: Needs review » Needs work

The last submitted patch, update_unsupported_display_961060_1.patch, failed testing.

RoboPhred’s picture

That patch was rolled on 7.x-beta2, probably why it won't apply. Can someone re-roll?

RoboPhred’s picture

Status: Needs work » Needs review
FileSize
1.38 KB

Managed to get CVS working

RoboPhred’s picture

Line endings, eh? Lets try this then...

RoboPhred’s picture

Alright, nevermind cvs then. Apparently the first patch just had a bad filename, the offsets are the same. Trying that.

Status: Needs review » Needs work

The last submitted patch, update_unsupported_display_961060_6.patch, failed testing.

RoboPhred’s picture

Alright... I reviewed the patch documentation again. Line endings are UNIX style, path is relative to core. Generated by diff -up. Let's put a stop to this nonsense...

RoboPhred’s picture

Status: Needs work » Needs review
dww’s picture

Component: update system » update.module
Priority: Minor » Major
Status: Needs review » Postponed (maintainer needs more info)
Issue tags: +Update manager

I know it's confusing, but "update.module" is for the part of core (added in 6.x) that checks for available updates to your modules and themes (now called the "Update manager" since it can also install/update your code). The "update system" component is for DB schema updates care of update.php...

Anyway, I don't exactly follow what this patch is doing (since I didn't apply it and look at the surrounding code). However, from the description, it sounds like a bad workaround to a deeper bug. We don't want messages to send people to the available updates page. We want to send them to the Update manager's "Please update my broken stuff" action page by default, not the report showing all the info about available updates. If the Update manager page fails to handle unsupported projects correctly, we need to fix that, not just avoid sending people to that page.

We'll need to see detailed steps to reproduce the bug, ideally with some screenshots. Otherwise, it's hard to verify the bug and fix it.

That said, if the Update manager page doesn't handle unsupported project correctly, that's not a minor bug. In fact, I'd call this major, since it has the potential to confuse users into not upgrading unsupported code, which could be a big problem for them.

mlncn’s picture

Status: Postponed (maintainer needs more info) » Needs work

Maybe it's a very rare issue, at least for the one that i can easily reproduce, but it's likely to happen when people really need good information: When a module they have installed has been de-listed from the recommended releases.

To reproduce:


drush dl cck-7.x-2.x-dev
drush en cck
drush rf

Visit the modules page, admin/modules, and note this error message at the top:

The installed version of at least one of your modules or themes is no longer supported. Upgrading or disabling is strongly recommended. See the project homepage for more details. See the available updates page for more information and to install your missing updates.

Follow the link for available updates, admin/reports/updates/update and... the page lists no problems. Because there are no updates available for a de-listed module.

Maybe just Not supported from admin/reports/updates could be shown on the admin/reports/updates/update page? Or we can just link to the main updates page that lists all issues to make the "for more information" part of the message consistently true.

dww’s picture

As I said, we do *not* want to link to the available updates report. We want to link to the page that lets users recover from the warning, not a page the further overwhelms them with big scary warnings.

Even though unsupported modules are an edge case, it's a major bug if the Update manager page doesn't let you upgrade from an unsupported branch to a newer major branch. See also #977414: Allow updating to a -dev or new major branch with Update manager (related, but different).

I *thought* we had code in Update manager to help users upgrade from an unsupported branch to the now-recommended branch. :/ We'll have to play with the steps above to see what's going on here.

mlncn’s picture

OK, this is a really edge case then, because there's no recommended release for CCK for Drupal 7 at all. But the same thing would happen for un-maintained modules which are delisted for security reasons, right?

dww’s picture

Presumably, yes.

dww’s picture

Upon further thought, if there's *no* recommended releases at all for the project, then maybe the update manager page needs to just print a warning about it. That'd be kind of like the situation for when core needs an update -- it's listed on the page as an update you need to do, but the update manager can't actually do the update itself.

dww’s picture

Issue tags: +String freeze

Whoops, this fell of my radar without the 'string freeze' tag. I don't have the capacity to do anything about this now, other than pray.

sun’s picture

Version: 7.x-dev » 8.x-dev
Issue tags: +Needs backport to D7
catch’s picture

Priority: Major » Normal

I'm not even clear what the bug is here, downgrading since this has only been reproduced with CCK, which was an edge case that did not meet the major bug definition anyway (since the module wasn't properly unsupported).

Version: 8.0.x-dev » 8.1.x-dev

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

David_Rothstein’s picture

Version: 8.4.x-dev » 8.5.x-dev
Issue summary: View changes
Related issues: +#2870690: Unsupported releases don't show up on ' Available updates'

I marked the linked issue as a duplicate. It has a patch which is closer to where the discussion here ended up, although I'm not sure it's really the right approach. It is treating UPDATE_NOT_SUPPORTED as the special case, but I think we actually want to deal with "no recommended releases" as the special case, due to this code currently in the Update Manager:

      if (empty($project['recommended'])) {
        // If we don't know what to recommend they upgrade to, we should skip
        // the project entirely.
        continue;
      }

It seems like that code is what can lead the following code to trigger, even when all modules aren't actually up to date:

    if (empty($projects)) {
      $form['message'] = [
        '#markup' => $this->t('All of your projects are up to date.'),
      ];
      return $form;
    }
David_Rothstein’s picture

Priority: Normal » Major

I'm also putting this back to major priority, since this is easy to reproduce with modules that have been marked unsupported on drupal.org, including ones that were marked unsupported by the security team.

Some examples that work to test it out on (at the time of this writing) include https://www.drupal.org/project/google_website_optimizer (for Drupal 7; this is the example used in the issue I marked duplicate above) and https://www.drupal.org/project/page_access (for Drupal 8).

David_Rothstein’s picture

Here's a potential patch, along with a screenshot showing how it works:

Unsupported projects displayed along with the manual updates on the Update Manager update page

David_Rothstein’s picture

I'm going to credit the person who worked on the patch at #2870690: Unsupported releases don't show up on ' Available updates' - although I did this patch differently, I feel like I at least borrowed some rough ideas from that one.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

dww’s picture

Status: Needs review » Needs work
Issue tags: +Needs reroll

Definitely needs a reroll / re-write after #3113992: The 'Update' page has no idea that some updates are incompatible landed. Still seems worth fixing this, so that the 'Update' page doesn't say "Everything's cool" when you've got unsupported projects.

sokru’s picture

Status: Needs work » Needs review
Issue tags: -Needs reroll
FileSize
6.69 KB

Reroll. Original patch had uneven number of closing brackets. I assume this would probably would need some tests.

dww’s picture

Status: Needs review » Needs work
Issue tags: +Needs tests

@sokru: Thanks for working on this!

Re: "Original patch had uneven number of closing brackets" -- I doubt that. Test results for #25 would have exploded if there was a syntax error. I bet git just got confused trying to apply the old patch to the new code, which was refactored by #3113992 and some of the relevant context is now indented another 2 spaces...

Yes, definitely needs tests. See the new tests I added at #3113992: The 'Update' page has no idea that some updates are incompatible. You can almost certainly expand those to cover this, too. Lemme know if you need help with that.

I need to apply the patch and see it in context to actually review this. Quick look of the .patch file itself seems potentially wrong, but I can't say for sure. Hope to get to this soon, but I can't promise when. Hopefully in less than 9.5 years like the last time I stepped away from this issue. ;)

Thanks/sorry,
-Derek

webchick’s picture

We attempted to look at this on the UX meeting today, but are a bit lost as to what the problem is, how to reproduce it, and what the "before/after" solution being proposed is. An issue summary update would be very helpful.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

dww’s picture

Problem and how to reproduce were clearly spelled out in the original summary: Have a site with a module that's been marked 'Unsupported'. But I updated the summary to use the default template, and to flesh out pros/cons of the proposed resolutions.

Cheers,
-Derek

benjifisher’s picture

We discussed this issue at #3131774: Drupal Usability Meeting 2020-05-05.

Thanks for updating the issue summary. We recommend

  1. Add the unsupported projects to the existing "Manual updates required" table.
  2. Change the heading of that table to something more generic, perhaps "Recommended action".
  3. Change the existing entry in that column (in the row for Drupal core) to a full sentence: something like "Upgrade to 8.8.x ...".
  4. Rewrite the second sentence in the new row to avoid the passive voice.

If the table header already says "Recommended action", then we do not have to say "... is strongly recommended" in that second sentence. Something like "If you can, disable everything that depends on this project and uninstall it" is a step in the right direction.

dww’s picture

Thanks for the review and direction, @benjifisher et al! I started looking into implementing your suggestions.

The proposed fix from #33 would start displaying info about projects without a recommended version. However, upon closer inspection, that'd also start talking about projects where we failed to fetch available update history (the net is down, you've got a custom project without a history on d.o, etc, etc). Properly handling all of these cases seems rather scope creepy. Partly handling them is also somewhat weird. There's also some refactoring of the code for that form that needs to happen at #3121775: Refactor UpdateManagerUpdateForm::buildForm() to make ::removeCheckboxFromRow() unnecessary. What should we/I do?

A) Just fix the major bug by specially handling the 'project marked unsupported' case, continue to have the implementation a bit clumsy, but Get It Done(tm) with the smallest possible patch for hopefully easier backporting. Then cleanup (some of) the implementation details at #3121775, and finally circle back in Yet Another Follow-up(tm) to handle the other cases where there's no recommended version to use.

B) First fix #3121775 so that we've got a stronger foundation to build on, then fix the bug. Would #3121775 be backportable to All The Branches(tm)?

C) Expand the scope of this issue to properly handle all cases were there's no recommended version, but ignore #3121775 and leave the implementation details sorta weird until it's "safe" to do such refactoring (9.1.x?)

D) Expand this issue's scope to handle everything, and implement it nicely, so that #3121775 becomes unnecessary.

E) Other?

Thanks,
-Derek

xjm’s picture

Per @dww I was looking at a stale issue summary, so tagging for an update.

dww’s picture

Issue summary: View changes
Issue tags: -Needs issue summary update

@xjm Clarified that for issue scope, we're basically going with #39.A. No sense scope creeping, nor blocking a major bug fix on code refactoring and cleanup.

Also likely that this is 9.1.x only at this point (due to string / UI changes).

Summary updated from #38 and UX meeting.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

quietone’s picture

Title: If a module is Not Supported, Drupal's warning links to available updates page, which says everything is OK » If a module is not Supported, Drwarning links to available updates page, which says everything is OK
Issue summary: View changes
Status: Needs work » Needs review
FileSize
30.76 KB
48.06 KB
11.49 KB

I rerolled and then updated the patch according to #38. I started from the patch in #25 because of the comments about brackets in #33 and #34, and there was no diff.

I've added some if statements to get around a possible undefined variable. It is a bit messy but instead of focusing on that I want to see what tests fail. Also, I am getting PHPStan errors locally on a line not changed by this patch so want to see what testbot does.

Status: Needs review » Needs work

The last submitted patch, 48: 961060-48.patch, failed testing. View results

ressa’s picture

Title: If a module is not Supported, Drwarning links to available updates page, which says everything is OK » If a module is Not Supported, Drupal's warning links to available updates page, which says everything is OK

Thanks, just updating the title, which lost "upal's" :)

quietone’s picture