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
Issue fork simple_sitemap-3542619
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
Comment #3
hosterholzComment #4
gbyteThanks for the thorough issue. Please add any libraries of submodules to your MR and let's merge this.
Comment #5
hosterholzComment #7
gbyteThanks.