This means that removes always runs last and that fixes the problem
in the plus1 container that automatically adds lighthouse/gpsi
and you cannot remove them.
* Make it easy for people that use # in the URL and want to keep it.
We have been old and conservative in how we use # when creating URLs:
From the beginning (5+ years ago) we always left out # from URLs when
we decided if a URL is unique or not. Now you can choose yourself
with --useHash (is there a better name out there?).
* Remove unused gzip parameter for writing html.
* Simplify storagemanager.
* Simplify how promises are handled, and directories created.
* Move out gzip handling to the plugins that use it, so storagemanager just writes strings and buffers unmodified.
* Make argument order consistent for write methods.
Push knowledge about config dependencies between plugins out to the plugins themselves. This reduces centralized knowledge.
This is not a way to specify dependencies on plugins that have to be loaded. We’ll see when (and if) we’ll tackle that.
* Switch from hooks to messages
This is the first step to get rid off hooks:
* Introduce two new messages: setup and final
* Logs a warning messages for all plugins that uses old hooks
The setup message will make it possible for plugins to pass
configuration to each other (send pugs to the HTML plugin,
send javascript (that collects metrics) to Browsertime and can
hopefully remove the post/preOpen hooks. The final message
replaces the postClose and final hook (or do we need more messages?).
Keep the hoosk deperecated through 6 and remove them in 7.0.
* lint
* more messages, let take of hooks later
* renaming
* rename summarize to sitespeedio.summarize
* Allow S3 upload even when using custom outputFolder.
* Add new s3.path option, to override the default storage path in the S3 bucket.
* Change the default storage path in the S3 bucket to no longer include the prefix 'sitespeed-result’.
* Remove broken/not useful progress load for S3 upload (was producing 100000+ log lines.
* Extract result url building into separate module that’s made available to plugins via context.resultUrls.