Problem/Motivation

When updating simple_sitemap but not drupal/core, the JavaScript cache-busting parameter remains the same (e.g. ?v=10.4.8). When updating drupal/core but not simple_sitemap, the JavaScript cache-busting parameter changes.
LibraryDiscoveryParser applies the Drupal version to every library that uses version: VERSION. It does not use the modules version.

See the note on Adding assets (CSS, JS) to a Drupal module via *.libraries.yml:

Starting from Drupal 10.1.2, the version information within a library definition plays a critical role in generating a unique hash for aggregated files. Consequently, it is imperative that the "version" in a library definition is updated whenever a referenced CSS/JS file undergoes changes.

Alternatively, if the version is omitted, the prior behavior will apply, where the content of referenced CSS/JS files is utilized in the hash.

Incorrect usage of version information could lead to browser and edge cache invalidation issues.

See this update on the related changelog.

Steps to reproduce

First case

  • Use simple_sitemap 4.2.1, use drupal/core 10.4.8
  • Disable JS preprocessing
    $config['system.performance']['js']['preprocess'] = FALSE;
  • Go to /admin/config/search/simplesitemap/entities
  • Look at site's source code and see
    <script src="/modules/contrib/simple_sitemap/js/simple_sitemap.sitemapEntities.js?v=10.4.8"></script>
  • Update simple_sitemap to 4.2.2
  • Look at site's source code and see
    <script src="/modules/contrib/simple_sitemap/js/simple_sitemap.sitemapEntities.js?v=10.4.8"></script>

Second case

  • Use simple_sitemap 4.2.2, use drupal/core 10.4.7
  • Disable JS preprocessing
    $config['system.performance']['js']['preprocess'] = FALSE;
  • Go to /admin/config/search/simplesitemap/entities
  • Look at site's source code and see
    <script src="/modules/contrib/simple_sitemap/js/simple_sitemap.sitemapEntities.js?v=10.4.7"></script>
  • Update drupal/core to 10.4.8
  • Look at site's source code and see
    <script src="/modules/contrib/simple_sitemap/js/simple_sitemap.sitemapEntities.js?v=10.4.8"></script>

Proposed resolution

Remove version: VERSION from simple_sitemap.libraries.yml

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

hosterholz created an issue. See original summary.

hosterholz’s picture

Status: Active » Needs review
gbyte’s picture

Category: Bug report » Task
Status: Needs review » Needs work

Thanks for the thorough issue. Please add any libraries of submodules to your MR and let's merge this.

hosterholz’s picture

Status: Needs work » Needs review

  • gbyte committed eb8ccb46 on 4.x authored by hosterholz
    Issue #3542619 by hosterholz, gbyte: Do not use Drupal Core's version...
gbyte’s picture

Status: Needs review » Fixed

Thanks.

Status: Fixed » Closed (fixed)

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