Problem/Motivation

See discussion in #3253158: Add Alpha level Experimental Update Manager module - we need to change the human readable name in update.info.yml and possibly other inerface/help text.

Steps to reproduce

Proposed resolution

Remaining tasks

User interface changes

Introduced terminology

API changes

Data model changes

Release notes snippet

The core module that provides the Available updates report at admin/reports/updates is renamed from "Update Manager" back to "Update Status." All of the functionality to manage updates or install new code on a site through the admin UI has been deprecated or removed. All sites should use composer to manage their code, not this interface. See "The update.module has been renamed back to 'Update Status'" change record for more information.

CommentFileSizeAuthor
#15 Screenshot 2025-04-18 at 13.48.06.png322.76 KBbbrala

Issue fork drupal-3483501

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:

Comments

catch created an issue. See original summary.

dww made their first commit to this issue’s fork.

dww’s picture

Status: Active » Needs work
Issue tags: -Novice +Needs documentation updates

I gave this a start. To do this properly is definitely not novice material, removing that tag.

Here's a TODO of bigger fish I'm punting on for now:

  1. This one is sorta problematic: Drupal\update\UpdateManagerInterface. Handle that here, or split into a followup? Could probably be renamed to UpdateStatusInterface, but unclear about the BC implications of that.
  2. update_help() says this:
    The Update Manager system is also used by some other modules to manage updates and downloads; for example, the Interface Translation module uses the Update Manager to download translations from the localization server.

    Is that still true? If so, yikes. 😉

  3. Docs updates at https://www.drupal.org/documentation/modules/update -- follow-up, or resolve via the tag here?
  4. Renaming / re-documenting tests/*
dww’s picture

Also note, I'm not touching any of the legacy "Update Manager" parts that update contrib in place. I'm not clear on the order by which everything should happen. Ideally, this issue, an issue to deprecate / remove all that stuff*, and #3253158: Add Alpha level Experimental Update Manager module all land in the same minor release of core.

* #3285191: [meta] Only support Drupal core installs managed by composer points to #3201968: Augment then Replace current Update Manager URL download based updates with Staged-Composer workflow, but maybe that's no longer the path forward. Perhaps we want a new clean issue about deprecating and removing the "legacy update manager with authorize.php" (for lack of a better term, wow this is going to be a confusing transition). 😅

dww’s picture

p.s. I believe the test failures are random and unrelated to anything I touched here, but I haven't been closely following core's random fails these days so I'm not sure:

https://git.drupalcode.org/issue/drupal-3483501/-/jobs/3164942

Drupal\Tests\system\Functional\Theme\ToolbarClaroOverridesTest::testClaroAssets

https://git.drupalcode.org/issue/drupal-3483501/-/jobs/3164948

Drupal\Tests\block\Functional\BlockCacheTest::testNoCache
Drupal\Tests\block\Functional\BlockCacheTest::testCachePerPage
gábor hojtsy’s picture

Interface Translation (locale) in core uses the project and version identification feature of Update Status. (Also Upgrade Status and Upgrade Rector do the same as well as probably a bunch of other modules).

andypost’s picture

what's left here to do? maybe just a change record?

dww’s picture

TODO: See comment #4, points 1 and 4 (at least).

dww’s picture

Tagging as a 11.2.0 release priority. See #3491731: [META] Remove the ability to update modules and themes via authorize.php and friends.

quietone made their first commit to this issue’s fork.

quietone’s picture

Status: Needs work » Needs review

As I read the other issue the agreement was to make changes in the UI text and the handbook, which seems to be the highest priority at this stage. So, lets stick to that here and move the other items in #4.

I rebased and tests are passing.

bbrala’s picture

Status: Needs review » Needs work

When checking out the MR i still see quite a few mentioned of "Update Manager module". Also in doc comments, but that could be intentional. But also in a few help_topics.

I do think we need a little more changes, unless this was intentional, but don't really read that in the issue.

quietone’s picture

Status: Needs work » Needs review

@bbrala, can you be more specific? Are the instances of 'update manager' in the user facing text?

bbrala’s picture

StatusFileSize
new322.76 KB

See attached screenshot, some help tests. Would say more, but have to leave :)

bbrala’s picture

Status: Needs review » Needs work

nlisgo made their first commit to this issue’s fork.

nlisgo’s picture

Status: Needs work » Needs review

Have addressed feedback in #13 and #15

dww’s picture

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

Cool, thanks for moving this along!

Drove by review on my phone, most of the updates to the help text look okay. But there are a few spots that still need help, talking about “downloading updates” or something. I’ll work on more fixes later today when I’m back at my computer.

Also need some follow-ups for the rest of #4 if we’re not planning g to fix any of that here.

dww’s picture

Status: Needs work » Needs review
Issue tags: -Needs followup

Pushed a commit to finish fixing core/modules/system/src/Hook/SystemHooks.php. Could use a review of the new text.

Meanwhile, opened 3 follow-ups:
#3520621: Rename 'update.manager' service and related code
#3520623: Re-document tests to no longer mention 'Update Manager'
#3520624: Fix 'Update' module docs to use 'Update Status' not 'Update Manager'

Also opened an MR thread about 1 remaining questionable help text.

But I think this is basically ready for review again...

Thanks!
-Derek

dww’s picture

#3520623: Re-document tests to no longer mention 'Update Manager' was easier than I thought. Should I just move that commit into this MR?

godotislate’s picture

Do references to "Update module" need to be changed to "Update Status module" as well? Or is this strictly about making sure there are no references to "Update Manager".

For example, this in locale.translation.inc:

 * For full functionality this function depends on Update module.
 * When Update module is enabled the project data will contain the most recent
 * module status; both in enabled status as in version. When Update module is
 * disabled this function will return the last known module state. The status
 * will only be updated once Update module is enabled.

If not, +1 for RTBC, though it looks like test didn't pass - maybe some kind of gitlab access bug?

dww’s picture

@godotislate: Good point! I pushed more commits for cleaning up those references, too.

Yeah, the most recent GitLab deployment seems to have broken test pipelines for us subsystem maintainers with some elevated GitLab permissions in the core repo.

godotislate’s picture

I think I might have found some stragglers searching with PHPStorm. I think I filtered out every instance already addressed, and a couple look to be in deprecated code, such as in SSH.php, and some probably are irrelevant or don't really need changing, but documenting here.

For "Update module":

Found occurrences in Project  (54 usages found)
    Usage in comments  (41 usages found)
            core/lib/Drupal/Core/FileTransfer  (1 usage found)
                SSH.php  (1 usage found)
                    6 * The SSH connection class for the update module.
            core/modules/update  (1 usage found)
                update.module  (1 usage found)
                    336 // List of update module cache directories. Do not create the directories if
            core/modules/update/src/Hook  (4 usages found)
                UpdateHooks.php  (4 usages found)
                    193 // Clear all update module data.
                    205 // Clear all update module data.
                    217 // Clear all update module data.
                    229 // Clear all update module data.
            core/modules/update/tests/src/Functional  (1 usage found)
                UpdateMiscTest.php  (1 usage found)
                    11 * Tests general functionality of the Update module.
            core/modules/update/tests/src/Kernel  (6 usages found)
                DevReleaseTest.php  (2 usages found)
                    39 // The Update module's default configuration must be installed for our
                    49 * Sets the current (running) version of core, as known to the Update module.
                UpdateCalculateProjectDataTest.php  (2 usages found)
                    40 // The Update module's default configuration must be installed for our
                    49 * Sets the installed version of core, as known to the Update module.
                UpdateStorageTest.php  (2 usages found)
                    10 * Tests the Update module storage is cleared correctly.
                    24 * Tests the Update module storage is cleared correctly.
            core/tests/Drupal/FunctionalTests  (1 usage found)
                BrowserTestBaseTest.php  (1 usage found)
                    485 // Ensure the update module is not installed.
            core/tests/Drupal/FunctionalTests/Installer  (2 usages found)
                InstallerTest.php  (1 usage found)
                    139 // Ensure the update module is not installed.
                TestingProfileInstallTest.php  (1 usage found)
                    27 * Ensure the Update module is installed.
    Usage in string constants  (12 usages found)
            core/lib/Drupal/Core/Installer/Form  (1 usage found)
                SiteConfigureForm.php  (1 usage found)
                    199 f="@update-module-docs" target="_blank">Update module documentation</a> for details.', ['@update-module-docs' => 'https://www.drupal.org/node/178772']),
            core/modules/update/tests/modules/aaa_update_test  (1 usage found)
                aaa_update_test.info.yml  (1 usage found)
                    3 description: 'Support module for update module testing.'
            core/modules/update/tests/modules/bbb_update_test  (1 usage found)
                bbb_update_test.info.yml  (1 usage found)
                    3 description: 'Support module for update module testing.'
            core/modules/update/tests/modules/ccc_update_test  (1 usage found)
                ccc_update_test.info.yml  (1 usage found)
                    3 description: 'Support module for update module testing.'
            core/modules/update/tests/modules/semver_test  (1 usage found)
                semver_test.info.yml  (1 usage found)
                    3 description: 'Support module for update module testing.'
            core/modules/update/tests/modules/update_test  (1 usage found)
                update_test.info.yml  (1 usage found)
                    3 description: 'Support module for update module testing.'
            core/tests/Drupal/FunctionalTests  (1 usage found)
                BrowserTestBaseTest.php  (1 usage found)
                    486 $this->assertFalse(\Drupal::moduleHandler()->moduleExists('update'), 'The Update module is not installed.');
            core/tests/Drupal/FunctionalTests/Installer  (1 usage found)
                InstallerTest.php  (1 usage found)
                    140 $this->assertFalse($module_handler->moduleExists('update'), 'The Update module is not installed.');

For "Update manager"

Found occurrences in Project  (153 usages found)
    Unclassified  (35 usages found)
            core  (1 usage found)
                MAINTAINERS.txt  (1 usage found)
                    437 Update Manager
    Usage in comments  (102 usages found)
            core/assets/scaffold/files  (3 usages found)
                default.settings.php  (3 usages found)
                    315 * Fallback to HTTP for Update Manager and for fetching security advisories.
                    481 * The Update Manager module included with Drupal provides a mechanism for
                    484 * the Update manager will require the administrator to provide SSH or FTP
            core/lib/Drupal/Core/Updater  (1 usage found)
                Theme.php  (1 usage found)
                    33 * that can conflict on a multi-site installation, since the Update manager
            core/modules/system  (1 usage found)
                system.module  (1 usage found)
                    162 * Because of the Update manager functionality included in Drupal core, there
            core/modules/update  (10 usages found)
                update.authorize.inc  (1 usage found)
                    244 * Since this function is run at such a low bootstrap level, the Update Manager
                update.compare.inc  (1 usage found)
                    203 * returning, or the rest of the Update Manager will break in unexpected ways.
                update.manager.inc  (3 usages found)
                    19 *   The update manager operation we're in the middle of. Can be either 'update'
                    23 *   TRUE if the update manager should continue to the next step in the
                    262 * will eventually be installed, the update manager can transfer files entirely
                update.module  (1 usage found)
                    352 * Deletes stale files and directories from the update manager disk cache.
            core/modules/update/css  (1 usage found)
                update.admin.theme.css  (1 usage found)
                    3  * Styles used by the Update Manager module.
            core/modules/update/src  (4 usages found)
                UpdateRoot.php  (4 usages found)
                    9 * Gets the root path used by the Update Manager to install or update projects.
                    60 * The Update Manager will ensure that project files can only be copied to
                    72 // Normally the Update Manager's root path is the same as the app root (the
                    79 // the Update Manager to be tested) and also ensures that new project files
            core/modules/update/src/Hook  (1 usage found)
                UpdateHooks.php  (1 usage found)
                    265 * update manager does not yet support. See
            core/modules/update/tests/modules/update_test/src/Controller  (2 usages found)
                UpdateTestController.php  (2 usages found)
                    31 * Page callback: Prints mock XML for the Update Manager module.
                    41 *   The project short name the update manager is trying to fetch data for
            core/modules/update/tests/modules/update_test/src/Hook  (1 usage found)
                UpdateTestHooks.php  (1 usage found)
                    72 // environment in which the update manager tests are run).
            core/modules/update/tests/src/Functional  (18 usages found)
                UpdateContribTest.php  (4 usages found)
                    11 * Tests how the Update Manager handles contributed modules and themes.
                    244 * Tests the Update Manager module when one normal update is available.
                    539 // Turn the altering back on and visit the Update manager UI.
                    544 // Turn the altering back off and visit the Update manager UI.
                UpdateMiscTest.php  (1 usage found)
                    61 * Tests the Update Manager module when the update server returns 503 errors.
                UpdateSemverContribBaselineTest.php  (1 usage found)
                    8 * Tests the Update Manager module with a contrib module with semver versions.
                UpdateSemverContribSecurityAvailabilityTest.php  (1 usage found)
                    8 * Tests Update Manager with a security update available for a contrib project.
                UpdateSemverContribTestBase.php  (1 usage found)
                    8 * Base class for Update manager semantic versioning tests of contrib projects.
                UpdateSemverCoreBaselineTest.php  (1 usage found)
                    8 * Tests semantic version handling in the Update Manager for Drupal core.
                UpdateSemverCoreSecurityAvailabilityTest.php  (1 usage found)
                    8 * Tests Update Manager with a security update available for Drupal core.
                UpdateSemverCoreTest.php  (1 usage found)
                    42 * Tests the Update Manager module when the update server returns 503 errors.
                UpdateSemverCoreTestBase.php  (1 usage found)
                    8 * Base class for Update manager semantic versioning tests of Drupal core.
                UpdateSemverTestBaselineTrait.php  (3 usages found)
                    19 * Tests the Update Manager module when no updates are available.
                    49 * Tests the Update Manager module when one normal update is available.
                    122 * Tests the Update Manager module when major updates are available.
                UpdateSemverTestSecurityAvailabilityTrait.php  (2 usages found)
                    13 * Tests the update manager when a security update is available.
                    22 * Tests the Update Manager module when a security update is available.
                UpdateTestBase.php  (1 usage found)
                    78 // Tell the Update Manager module to fetch from the URL provided by
            core/themes/stable9/css/update  (1 usage found)
                update.admin.theme.css  (1 usage found)
                    3  * Styles used by the Update Manager module.
            sites/default  (6 usages found)
                default.settings.php  (3 usages found)
                    315 * Fallback to HTTP for Update Manager and for fetching security advisories.
                    481 * The Update Manager module included with Drupal provides a mechanism for
                    484 * the Update manager will require the administrator to provide SSH or FTP
    Usage in string constants  (16 usages found)
            core/modules/migrate_drupal_ui/tests/src/Functional/d7  (3 usages found)
                MultilingualReviewPageTest.php  (1 usage found)
                    130 'Update manager',
                NoMultilingualReviewPageTest.php  (1 usage found)
                    183 'Update manager',
                Upgrade7Test.php  (1 usage found)
                    220 'Update manager',
            core/modules/update  (3 usages found)
                update.authorize.inc  (1 usage found)
                    221 $session->set('authorize_page_title', t('Update manager'));
dww’s picture

Thanks for more thorough searching. Doing the same locally now, too. 😅

Decided to cherry-pick the commit from #3520623: Re-document tests to no longer mention 'Update Manager' into here and close that issue, since we might as well do it all at once.

Yeah, some of those hits are in stuff that's already marked deprecated. Not sure it's worth fixing them all. Also, I don't want to conflict with #3521059: Finish deprecating 'Update Manager' related code in Update Status, so I'll handle UpdateRoot.php over there.

dww’s picture

godotislate’s picture

OK, I think I've gone a bit cross-eyed looking at it, but assuming tests pass once they can run, I think it's RTBC.

dww’s picture

Rebased to get a working CI pipeline. Results are green. RTBC? 😉 Thanks!

p.s. I left 'Update Manager' visible in the comment describing the allow_authorize_operations setting in sites/default/default.settings.php and core/assets/scaffold/files/default.settings.php. There's a remaining task at #3521059: Finish deprecating 'Update Manager' related code in Update Status to decide if we should explicitly deprecate that setting. To avoid conflicts and trouble, let's leave that alone in this issue and clean it up over there. Maybe we can remove that setting from those files entirely, since the UI it disables has already been removed from core...

andypost’s picture

Status: Needs review » Reviewed & tested by the community

As follow-up is nearly ready let's get this one in

godotislate’s picture

Not sure whether this is already tracked anywhere else, but once these changes are in, the Update module overview documentation page needs an update.

dww’s picture

Re #30, see #26

  • larowlan committed a464b59b on 11.x
    Issue #3483501 by dww, quietone, nlisgo, bbrala, godotislate, catch:...
larowlan’s picture

Status: Reviewed & tested by the community » Fixed

Applied this locally and did some grepping to see if any other references were left
Everything else I found was either referring to the entity definition update manager or features update.module provides that related to authorize.php/installing zip files which we're hoping to remove anyway.

Committed to 11.x - thanks!

dww’s picture

Issue summary: View changes
Issue tags: +11.2.0 release highlights

Per @larowlan in Slack, tagging and adding a release note.

dww’s picture

Issue summary: View changes
dww’s picture

Issue summary: View changes

Link to the CR, not directly to the issue trying to add the new Update Manager.

Status: Fixed » Closed (fixed)

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