Distribution Update Status Manager

Component ID

2322393

Component name

Distribution Update Status Manager

Component type

module

Maintenance status

Development status

Component security advisory coverage

not-covered

Downloads

58672

Component created

Component changed

Component body

Distributions contain a carefully selected set of module versions along with specific patches that have been tested for compatibility. These projects and their versions are defined through .make files within the distribution and their projects.

Individually upgrading a project could potentially break the distribution and should be avoided unless you are an experienced developer.

Unfortunately many site administrators are not aware of this and will use the update manager (core) to get notified of newer module release and perform the upgrade. This can cause undo issues in the distribution project issue queue.

This module attempts to help alleviate that scenario by altering the update status report and limiting the ability to upgrade a project through the admin UI (and drush!!). Specific projects are either hidden or displayed in a nested format to show that another project owns/defines them through .make files. Similarly those projects are hidden from the update admin ui page to avoid them being updated individually.

Main Features

  • Render projects defined through .make files nested under the parent project on the update report page. This offers a visual indication that a project is "owned" by another project.

    This first screenshot shows the module running on the Panopoly distribution. The Panopoly project status is displayed first with any "child" projects collapsed below. What follows are any additional contrib projects that have been added to the site.
    Default Settings Report
  • Works with distributions or on sites that only include components (e.g. Panopoly WYSIWYG) of a distribution.
  • Works with Drush!!! Drush should not attempt to update projects that are marked as up-to-date.
  • (Optionally) Alter that status of a project to -current- if the project has a newer release but the project version matches that of the .make file.

    In the screenshot below the Panopoly Search module defines specific versions of FacetAPI and Search API. Both modules have newer recommended releases, however the current version matches the panopoly_search.make file so the projects are marked up-to-date.
    Current
  • (Optionally) Alter the status of a project to -not-current- if the project version does not match that of the .make file.

    In the screenshot below the Breakpoints module is running the latest recommended version, however the panopoly_admin.make file calls for an earlier version. So both Panopoly Admin and Breakpoints are marked not supported.
    Not current
  • (Optionally) Configure the X number of days to keep a project status as -current- when the project has a security release or is revoked.
  • (Optionally) block all projects defined through .make files from getting a status update. This also has the affect of removing them from the update report.
    note: It is not recommended to block status updates as this limits usage statistics and will not allow the site to receive security updates.)
  • (Optionally) hide all projects defined through .make files from the update report. This differs from the previous option in that the status is still retrieved and only rendered if there is a version issue.
  • (Optionally) Hide projects defined through .make files from appearing on the update admin UI page that allows for individual updating.

Configuration

Configuration options have been added to the Update (core) Manager settings page (admin/reports/updates/settings). These options configure the features marked as -optionally- in the feature list above.

The default settings should work for most distributions / sites, however a distribution can alter a variable from the settings form to change the behavior of this module.

Special Thanks

Both OpenAtrium and Commerce Kickstart provided great example code that helped with both ideas and a quick ramp-up on what this module needed to do. And thanks to @dsnopek for helping drive the idea for use with Panopoly.

Maintainers

Craig Aschbrenner (uid: 246322) (http://foggyperspective.com)