Entity displays need to depend on the module that provides base fields

Created on 17 November 2017, over 6 years ago
Updated 30 January 2023, over 1 year ago

Problem/Motivation

Modules can add base fields to entity types using hook_entity_base_field_info(). Entity displays that use these fields don't have a dependency on these modules and on uninstallation of the module that provides them, the base fields are not properly cleaned up.

This was discovered in #2850973: ConfigEntityInterface::onDependencyRemoval() called with incorrect dependency list β†’ and is relevant to the uninstall of the scheduler module β†’ .

This is a major issue because it is a data integrity issue. Entity displays have configuration for base fields that no longer exist.

Proposed resolution

Add dependency in \Drupal\Core\Entity\EntityDisplayBase::calculateDependencies() and remove field \Drupal\Core\Entity\EntityDisplayBase::onDependencyRemoval() on module uninstall.

Remaining tasks

Needs tests
Needs upgrade path

User interface changes

None

API changes

None

Data model changes

New dependencies information in entity displays.

πŸ› Bug report
Status

Needs work

Version

10.1 ✨

Component
FieldΒ  β†’

Last updated about 17 hours ago

Created by

πŸ‡¬πŸ‡§United Kingdom alexpott πŸ‡ͺπŸ‡ΊπŸŒ

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

  • The Needs Review Queue Bot β†’ tested this issue. It either no longer applies to Drupal core, or fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".

    Apart from a re-roll or rebase, this issue may need more work to address feedback in the issue or MR comments. To progress an issue, incorporate this feedback as part of the process of updating the issue. This helps other contributors to know what is outstanding.

    Consult the Drupal Contributor Guide β†’ to find step-by-step guides for working with issues.

Production build 0.69.0 2024