Skip to content

Close #5791 Migrate to simple_sitemap module from xmlsitemap - #5792

Draft
trackleft wants to merge 6 commits into
mainfrom
issue-5791
Draft

Close #5791 Migrate to simple_sitemap module from xmlsitemap#5792
trackleft wants to merge 6 commits into
mainfrom
issue-5791

Conversation

@trackleft

@trackleft trackleft commented Jul 18, 2026

Copy link
Copy Markdown
Member

Description

Migrates Arizona Quickstart sitemap behavior from xmlsitemap integrations to Simple XML Sitemap with a no-touch upgrade path for existing sites, including automatic migration and uninstall of legacy xmlsitemap modules during updates.

Resolves #5791.

This PR includes:

  • Added Simple XML Sitemap as a project dependency and wired Quickstart modules to use it.
  • Replaced xmlsitemap-specific integration hooks in custom modules with Simple XML Sitemap equivalents for exclusion logic.
  • Refactored Search API base URL handling to use Simple XML Sitemap settings, with legacy xmlsitemap state fallback.
  • Added database updates that migrate active sitemap settings so existing site values override install defaults:
  • Bundle-level migration from active xmlsitemap bundle config to Simple XML Sitemap bundle settings, including custom bundles.
  • Per-entity migration from xmlsitemap table overrides into Simple XML Sitemap entity override storage.
  • Global setting migration for supported equivalents such as xsl and base_url.
  • Migrated role permissions from administer xmlsitemap to new Simple XML Sitemap permissions.
  • Updated managed install config to remove xmlsitemap-specific permission and config-ignore coupling.
  • Added update to uninstall xmlsitemap and xmlsitemap_engines after migration completes.

Release notes

Quickstart now uses Simple XML Sitemap as the primary sitemap integration path with automatic upgrade migration for existing sites.

What changed:

  • Added Simple XML Sitemap integration in custom modules.
  • Added update hooks that migrate active xmlsitemap settings and per-entity overrides into Simple XML Sitemap settings.
  • Added permission migration so roles with legacy xmlsitemap admin access are automatically mapped to Simple XML Sitemap permissions.
  • Automatically uninstalls xmlsitemap/xmlsitemap_engines after migration updates complete (Composer package remains present).

How to use:

  • Run normal site updates only:
  • drush updb
  • drush cr

No manual sitemap configuration migration is required.

Related:

Related issues

#5791

How to test

Testing environment:

  • Local DDEV site from this branch.

Steps:

  1. Start and install site:
  2. ddev start
  3. ddev install
  4. Apply updates:
  5. ddev drush updb -y
  6. ddev drush cr
  7. Verify module state:
  8. ddev drush pml --status=enabled --type=module | rg simple_sitemap
  9. ddev drush pml --status=enabled --type=module | rg xmlsitemap
  10. Verify sitemap generation:
  11. ddev drush simple-sitemap:generate -y
  12. ddev exec "curl -Is http://localhost/sitemap.xml | head -n 1"
  13. Verify migrated settings:
  14. ddev drush cget simple_sitemap.settings base_url --format=yaml
  15. ddev drush cget simple_sitemap.settings xsl --format=yaml
  16. Confirm expected bundle settings exist via:
  • ddev drush ev and inspect simple_sitemap generator entityManager getBundleSettings output.
  1. Verify permission migration:
  2. Confirm az_content_admin has:
  • administer sitemap settings
  • edit entity sitemap settings
  1. Confirm administer xmlsitemap is not present on that role.

Types of changes

CWS Should create a Vr test for sitemap.xml prior to this update

Arizona Quickstart (install profile, custom modules, custom theme)

  • Patch release changes
    • Bug fix
    • Accessibility, performance, or security improvement
    • Critical institutional link or brand change
    • Adding experimental module
    • Update experimental module
  • Minor release changes
    • New feature
    • Breaking or visual change to existing behavior
    • Upgrade experimental module to stable
    • Enable existing module by default or database update
    • Non-critical brand change
    • New internal API or API improvement with backwards compatibility
    • Risky or disruptive cleanup to comply with coding standards
    • High-risk or disruptive change (requires upgrade path, risks regression, etc.)
  • Other or unknown
    • Other or unknown

Drupal core

  • Patch release changes
    • Security update
    • Patch level release (non-security bug-fix release)
    • Patch removal that's no longer necessary
  • Minor release changes
    • Major or minor level update
  • Other or unknown
    • Other or unknown

Drupal contrib projects

  • Patch release changes
    • Security update
    • Patch or minor level update
    • Add new module
    • Patch removal that's no longer necessary
  • Minor release changes
    • Major level update
  • Other or unknown
    • Other or unknown

Checklist

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • My change requires release notes.

@trackleft trackleft added needs-CWS-testing Needs manual pre/post release testing by Campus Web Services minor release Issues/PRs that should only be made as part of a minor release (according to our release policy). labels Jul 18, 2026
@joeparsons joeparsons moved this from Todo to Needs review in 3.6.0-alpha1 Jul 21, 2026
@joeparsons joeparsons moved this from Needs review to In Progress in 3.6.0-alpha1 Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3.6.x only minor release Issues/PRs that should only be made as part of a minor release (according to our release policy). needs-CWS-testing Needs manual pre/post release testing by Campus Web Services

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

Migrate az_quickstart from xmlsitemap to simple_sitemap (follow Drupal CMS direction)

2 participants