v1/web/modules/contrib/purge/CHANGELOG.md

12 KiB
Raw Blame History

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

Changed

[8.x-3.2] - 2021-10-04

Fixed

  • #3240230: Don't hard depend on dunamic_page_cache module anymore.
  • #3240238: Revert FilterResponseEvent::isMainRequest() deprecation fix.
  • #2976480: rewrite of CacheableResponseSubscriberTest by japerry which now passes.
  • Revert: Tests: deprecation warning in src/Functional/DashboardPurgersTest.php

[8.x-3.1] - 2021-10-01

Changed

  • Improvement: Refactor info.yml core_version_requirement formats.

Fixed

  • #2976480: Do not send Cache-Tags header if Cache-control: no-cache.
  • #2803607: Remove PageCacheCheck.
  • #2425093: Purge declares 'Performance' task on behalf of system module.
  • #3034525: Clean up duplicate cache tags created by invalidation tokens.
  • #3006680: Fix PHP7.2 subclass signature error.
  • #3163002: Make late runtime processor compatible with drush.
  • #3224426: Possibility to disable some purge plugins in config.
  • Improvement: fixed various deprecations to futureproof for Drupal 10.
  • Improvement: fixed codestyle issues.
  • Improvement: fixed several testcases.

[8.x-3.0] - 2020-05-29

Added

  • Improvement: added more tags to the default blacklist of the core tags queuer: config:core.extension, extensions, config:purge, config:field.storage.

Changed

  • Important: Purge now requires Drupal 8 to be updated to a recent stable version, which is 8.8.6. This requirement supports the ongoing commitment to stability, quality and functional equivalent on Drupal 8, while paving the way for equal Drupal 9 quality with a single codebase.
  • Important: Purge now requires at least PHP 7.2 or newer.
  • Important: Drush 8 legacy wrappers have been removed.

Fixed

  • D9 support: Various little fixes have been made to run smooth on D9.
  • Improvement: Code quality has been brought up to date (D9 readiness).
  • Improvement: Rewrote the entire UI testsuite to pass (D9 readiness).
  • Improvement: Rewrote the entire kernel testsuite to pass (D9 readiness).

[8.x-3.0-beta9] - 2019-10-03

Added

  • Added .gitattributes to keep documentation out of built packages.
  • Added composer.json for integration with Composer-based workflows.
  • API: Annotation\PurgeTagsHeader::$dependent_purger_plugins to allow binding headers to purgers.
  • API: TagsHeaderInterface::isEnabled() which returns TRUE by default.
  • API: DiagnosticsServiceInterface::filterInfo, ::filterOk, ::filterWarnings, ::filterWarningsAndErrors, ::filterErrors
  • API: DiagnosticsServiceInterface::toMessageList()
  • API: DiagnosticsServiceInterface::toRequirementsArray() parameter $prefix_title.

Changed

  • Improvement: thousands of fixes to pass all these these standards checks:
    • phpcs --standard=Drupal --extensions=php,module,inc,install,..
    • phpcs --standard=AcquiaDrupalStrict
  • Improvement: PROJECTPAGE.md, README.md and new CHANGELOG.md.
  • Improvement: Drupal's status report now only shows warning and error diagnostics.
  • Improvement: Counter\Counter::set() only writes if the value changes.
  • Improvement: Queue\DatabaseQueue::numberOfItems() now builds the COUNT() OOP-style.
  • Improvement: Queue\StatsTracker::updateTotals() no longer maintains the ::numberOfItems() statistic.
  • Improvement: Queue\NumberOfItemsStatistic is now synced from QueueService::commit and nowhere else.
  • API: DiagnosticsServiceInterface::getRequirementsArray() --> ::toRequirementsArray()
  • API: DiagnosticsServiceInterface::getHookRequirementsArray() removed
  • API: `DiagnosticCheckInterface::getHookRequirementsArray()`` removed
  • API: Queue\numberOfItemsStatistic --> NumberOfItemsStatistic
  • API: Queue\totalProcessingStatistic --> TotalProcessingStatistic
  • API: Queue\totalSucceededStatistic --> TotalSucceededStatistic
  • API: Queue\totalFailedStatistic --> TotalFailedStatistic
  • API: Queue\totalNotSupportedStatistic --> TotalNotSupportedStatistic

Fixed

  • #2795131: purge_tokens should not set Max-Age to 0.
  • #2795131: codestyle in the tests got overhauled.
  • #2795131: Drush commands ported to Drush 9, tested extensively and UX improved.
  • Invalidation\WildcardPathInvalidation declaration issue

[8.x-3.0-beta8] - 2017-08-14

Added

  • TypeUnsupportedException, thrown from InvalidationsService::get(), this prevents people from adding things to their queue that aren't supported.
  • QueueSizeDiagnosticCheck which warns after 30000 queue items and does a safety shutdown over 10000.
  • Improvement: drush commands:
    • cache-rebuild-external (cre) shorthand for "drush p-invalidate everything".
    • p-processor-add (pradd)
    • p-processor-ls (prols -> prls)
    • p-processor-lsa (prlsa)
    • p-processor-rm (prrm)
    • p-queue-stats (pqs): now has richer output and a--reset-totals switch.
    • p-queue-empty (pqe): no longer resets statistics (hint: it shouldn't).
    • p-queuer-add (puadd)
    • p-queuer-ls (puls)
    • p-queuer-lsa (pulsa)
    • p-queuer-rm (purm)
    • p-purger-mvu (ppmvu): move a purger UP in the execution order.
    • p-purger-mvd (ppmvd): move a purger DOWN in the execution order.

Changed

  • Improvement: purge_ui's diagnostic report, its colored and visually pretty now.
  • API: Rewrote Queue\StatsTrackerInterface from the ground up.
  • API: Simplified Counter\PersistentCounterInterface and CounterInterface into one merged CounterInterface, and ::setWriteCallback lost its $id parameter.

Fixed

  • Undefined variable count QueueService:122
  • DatabaseQueue::createItemMultiple() call to db_insert() -> $this->connection->insert()
  • Endless queue-loop of invalidations after removing a purger.
  • Drush commands no longer require a drush cache-rebuild to become visible.

[8.x-3.0-beta7] - 2017-07-24

Added

  • drush p-queue-volume to view the current queue volume.
  • drush p-debug-en and drush p-debug-dis for quickly enabling and disabing debug logging again. Works great together with drush p-queue-work -v!
  • \Drupal\purge\Logger\LoggerChannelPart::isDebuggingEnabled() to make it easier for downstreams to prevent heavy overhead code when this aint needed.

Changed

  • Improvement: drush p-queue-add now allows adding multiple items to the queue using commas.
  • Improvement: drush p-queue-work now has a --finish argument.
  • Improvement: drush p-invalidate and drush p-queue-add now ask for confirmation when invalidating everything, to prevent users from accidentally harming their website at a moment where this isnt a good idea.
  • Improvement: micro-optimized \Drupal\purge\Logger\LoggerChannelPart.
  • Improvement: renamed several drush commands to improve consistency:
    • p-processors PPRO --> p-procsr-ls PROLS
    • p-purgers PPPU --> p-purger-ls PPLS
    • p-purgers-available PPPUA --> p-purger-lsa PPLSA
    • p-purger-add PPA --> p-p-purger-add PPADD
    • p-purger-rm PPR --> p-purger-rm PPRM
    • p-queuers PQRS --> p-queuer-ls PQULS

Fixed

  • Bug in RuntimeMeasurement::stop() causing fatal errors.

[8.x-3.0-beta6] - 2016-10-26

Added

  • Drush commands p-purgers, p-purgers-available, p-purger-add and p-purger-rm.

Changed

  • Improvement: 5m TTLs no longer shuts down purging, but still a bad idea.

[8.x-3.0-beta5] - 2016-09-07

Added

  • Diagnostic check: \...\DiagnosticCheck\MaxAgeCheck.
  • Diagnostic check: \...\DiagnosticCheck\PageCacheCheck.

Changed

  • API: TagsHeaderInterface now also extends ContainerFactoryPluginInterface in order for create:: injection support.
  • Improvement: test coverage (4430 passes, 0f, 0e), pareview.sh compliance.
  • Improvement: The "page cache maximum age" dropdown on the performance tab, contains a lot more serious options now.
  • Improvement: ::testIteration() tests on KernelServiceTestBase derivatives, by introducing assertIterator().
  • Improvement: Tests\Queue\PluginTestBase now tests the paging logic of queue plugins.

Fixed

  • #2692523: The Purge-Cache-Tags header has been dropped, and moves to the purge_purger_http project (as a submodule). The reasoning here is clear and in line with the strategy of the purge module for the future: HTTP headers are implementation details and the responsibility of purger modules, not a core task (and technology-assumption) for the core project. Users who need customized configurations, already likely use the generic HTTP purger while others will use submodules that already introduce their own headers (and remove them too).
  • #2791387: A new configurable block "Purge this page" has been added to allow administrators to quickly purge by URL, path or clear "everything". Alternatively, the block can also be configured to queue the items instead of direct execution.
  • #2706567: by lahoosascoots, nielsvm, arknoll: QueuerService and ProcessorsService assumes there are plugins in CMI.
  • #2795131: has rewritten the entire database queue backend, which now automatically deploys a new database table purge_queue. Please note that upgrading users will see their queues wiped out and are required to run drush p-queue-empty to also reset queue statistics.
  • #2744215: diagnostic errors will now get logged for new installations, old installations will need to check "error" for the "diagnostics" log channel in their logging configurations.
  • #2755019: Remove @file tag docblock
  • #2787993: Allowed memory size of 268435456 bytes exhausted
  • #2724217: Incompatibility with Monolog
  • #2744135: PurgerCapacityDataInterface::hasRuntimeMeasurement() further clarified.

[8.x-3.0-beta4] - 2016-04-01

Changed

  • API: http.response.debug_cacheability_headers has been dropped.
  • Improvement: Tag-Header plugins: now allow submodules to set export headers with cache tags, the default header now is Purge-Cache-Tags.
  • Improvement: Invalidation properties: invalidation objects now have ::setProperty(), ::getProperty(), this allows purgers to pass through information between processing rounds (Akamai requirement).
  • Improvement: Log management now allows purge and its submodules to log extensively and users have fine-grained control over it.

[8.x-3.0-beta3] - 2016-03-15

Changed

  • API: All purger implementations now need to implement ::hasRuntimeMeasurement() and can now drop their already existing ::getTimeHint() implementations unless they desire keeping that level of control. The end-user benefit is that capacity calculation becomes much more dynamic and now depends upon real-world execution times, which means that capacity can increase or decrease depending on how the purgers perform. The downstream benefit is that less code is required in purgers, reducing the risk of bugs and hassle.

Fixed

  • \...\Queue\StatsTracker::destruct() which was potentially writing the buffer multiple times.
  • \...\Invalidation\ImmutableInvalidationBase::getState() - Catch combination states where one or more purgers added NOT_SUPPORTED but other purgers added states as well.

[8.x-3.0-beta2] - 2016-03-11

Changed

  • API: The service purge.queue.txbuffer became public.

[8.x-3.0-beta1] - 2016-02-05

Added

  • Purge version 8.x-3.0-beta1 - codename Hello World!