Skip to content

Adopt or retire a module

Briefing, not authority. (R) rule at linked source · (O) dated upstream fact · (P) procedure · (C) open work · (G) not established.

WHAT THIS MEANS IN DRUPAL

Adding or removing a contrib module is a recorded ownership decision, not composer require or pm:uninstall (R) standard §13.

OWNER

PREREQUISITES

  1. (P) State the requirement without naming a module; if the capability map has an owner, configure that owner and stop adoption A1.
  2. (P) Read the matrix record; reuse it if LAST_VERIFIED is newer than your facts adoption.

DO THIS

  1. (P) Adopt: A1-A7. Verify upstream with dates: release, D11, security coverage, maintenance, deps, usage (R) standard §14.
  2. (P) Record DISPOSITION and NET_OWNERSHIP_EFFECT; P is a reason to stop adoption A5.
  3. (P) Implement as config in a worktree; move reusable config to its recipe adoption A6.
  4. (P) Retire what it replaced in the same or next change adoption A7.
  5. (P) Retire: prove zero or migrated consumers, name the replacement, migrate → uninstall → clean config → remove from Composer → fresh-env import adoption B1-B6.

WATCH FOR

  • Alpha, beta or uncovered modules need explicit SECURITY_COVERAGE and an acceptance statement (R) standard §13.
  • A module with no consumer is retired, not kept (R) standard §13.
  • One owner per concern: two cache stacks or two mail paths is a defect (R) standard §13.

DO NOT

  • Install straight down a candidate list (R) standard §13.
  • Adopt an AI extension that hard-requires one provider (R) standard §13.
  • Fork for the last 10%; contribute upstream (R) site-building §26.

OWNERSHIP / CAN-SHOULD-MAY

  • CAN: Composer, Drush in an isolated worktree.
  • SHOULD: Bluefly Engineering owns matrix records; each site owns its install state.
  • MAY: install only on ADOPT, or ADOPT_WHEN_NEEDED with the trigger proven adoption A2.

DO NOT REDISCOVER

  • Drupal CMS shipping a module does not adopt it for Bluefly; the matrix decides.

CONFLICTS

None found in current sources.

GO DEEPER

Anchored sources: frontmatter authority_sources. Expires last_verified + 30d.