advagg 8.x-3.0-beta1

Release notes

Compatible with Drupal core 8.0.x-8.4.x

Pretty major re-factor in the underlying code and methodology, however very similar in terms of actual functionality and user interaction.
Primary differences:

  • No longer overrides the core asset handling but instead runs in the middle of that. This has way way better interoperability with other modules.
  • Optimizes files individually. Great if you use HTTP/2 Server Push.
  • Supports Brotli compression (smaller file size than Gzip) if the server has Brotli enabled.

Full commit log:

Changes since 8.x-2.3:

  • #2830672 by NickWilde: Can we add a setting to remove console.log in production?
  • Ensure optimized filename is unique based on contents. Enables better caching on external servers/browser cache.
  • Add option to use SymLinksIfOwnerMatch instead of FollowSymlinks. This works better for some server configurations.
  • Ensure regeneration of htaccess files when settings change
  • Add option to add the immutable tag to Apache cache tags (true by default).
  • Fix: add missing param docblock to SingleAssetOptimizerBase::__construct()
  • Add htaccess so that the generated brotli compressed files are served.
  • git commit -m ‘Issue #2883494 by NickWilde: Inline loadCSS library broken due to Core change’
  • Fix: PHP5.6 compatibility: Scalar hints introduce in PHP7x
  • basic brotli support for advagg optimized files
  • refactor: move js_* config setting to subkeys under js mapping in advagg.schema
  • fix: misnamed function in advagg_ext_minify.install (copy-pasta)
  • Advagg Validator Module refactored for 8.x-3.x
  • Use REQUEST_TIME for now even though it’s deprecated to maintain compatibility with D8.0-8.2
  • Remove usage of the datetime.time service. It was introduced in 8.3. Everyone *should* be moving to 8.3 but for now advagg will be compatible with 8.0-8.x
  • (temporarily) remove advagg_validator submodule. to be refactored but unimportant module so.
  • Standards fixes. Just a few.
  • remove unused use statement
  • remove core_groups options as no longer used. update settings form.
  • (re)implement css combine media
  • Adjust AssetOptimizer::optimizeFile() to allow it to change the asset array
  • remove override of core CssCollectionGrouper
  • Update uninstalled functionality
  • Remove JsCollectionGrouper override as it causes conflicts with minimal gain.
  • Updated readme (could certainly use some more love but it isn’t totally inaccurate now)
  • Updated hook_requirements()
  • Updated Info form
  • remove update function that references services that no longer exists
  • Updated API/Developer documentation
  • comment fix
  • Refactor: remove advagg_bundler sub module. It was poorly implemented in 8.x-2.x and better to use mostly core really.
  • define advagg logger channel
  • Refactored advagg_ext_minify
  • a simple gitignore for PHPStorm files.
  • Refactored advagg_mod
  • advagg_js_minify: typo fix
  • move advagg_css_minify migration templates to the right spot
  • Refactor advagg_css_minify sub module
  • If creating optimized css files in a new location must also update any included relative urls.
  • Rename advaggAssetAssetOptimizeInterface to advaggAssetSingleAssetOptimizerBase It isn’t an interface it’s an abstract class.
  • remove testing function
  • Overwrite existing optimized files if need be.
  • Refactored advagg_js_minify module
  • Convert hook to event for optimizing file contents.
  • Update migration. Note: cache_level still exists but has different values.
  • advagg_cdn: improve schema label for settings.minified
  • refactor drush integrations
  • rename service advagg.cache->cache.advagg since otherwise it sometimes messes up.
  • refactor (minimal needed) for AdvAgg CDN sub module
  • remove unused param in InfoForm::getFileInfoAjax
  • refactored Operations form
  • re-implemented cron functionality
  • Refactored InfoForm
  • typo fix in accessing cached prefetch data.
  • Remove classes overriding core render attachment processor classes. Implementing functionality through different methods to avoid conflicts. @see Drupal/advagg/EventSubscriber/ResponseSubscriber
  • Remove outdated options from settings form. Improve readability and ux of settings form.
  • Remove outdated config settings
  • Output prefetch link elements in the html head.
  • move advagg_drupal_sort_css_js_stable() to AssetOptimizer::sortStable() Used in advagg_mod submodule.
  • docstring improvements
  • Improve the hook_implements_alter() implementation for current version of advagg
  • remove reference to old D7 hook
  • Cache DNS prefetch data for local files.
  • Alter AssetOptimizer::scanFile to better allow future caching of non-path data.
  • Minimal DNS prefetch implementation.
  • REQUEST_TIME is deprecated in Drupal 8.3+ replace with TimeInterface
  • Basically complete refactor of the core module.
  • drupal_alter doesn’t exist in any D8 branch and we’re using moduleHandler::alter so don’t test themes for hooks.
  • Remove AssetDumper as it adds no significant value with the refactoring.
  • Cleanup: remove unused setting
  • Typo fix in api docs
  • #2845990 by gregj00, NickWilde: External JS hosted by same domain as Drupal converted to file
  • Only apply loadCSS changes adjustments to the JS if the JS is loaded. Otherwise it causes some really funny errors especially with BigPipe.
  • #2828713 by Archual, NickWilde: Deferred CSS Execution trying to execute external noscript elements like google tag
  • #2860305: defer_css.js doesn’t check there is a match before calling LoadCSS
  • fix path for external file for loadCSS.js
  • #2859464 by NickWilde, Yannick WEBER: shell_exec non-functional on FreeBSD
Download Size md5 hash
advagg-8.x-3.0-beta1.tar.gz 113.81 KB 2a5b454f635b09cdbf39771670fa3b17 171.83 KB b7a0ee27222edcdb758602da4f39a0aa
Last updated: 10 Jun 2017 at 23:09 UTC
Official release from tag: 
Core compatibility: 
Release type: 
Short Description: 
Major refactor. Better performance, better interoperability with other modules.
Packaged Git sha1: