Skip to content

0.12.0

Choose a tag to compare

@markshust markshust released this 01 Nov 14:05
· 36 commits to develop since this release
Immutable release. Only release title and notes can be modified.

What's Changed

Breaking Changes

  • feat: gate before hooks, policy-level before and an ability-checked event by @markshust in #571
  • feat!: add remember, add, pull and forever to the cache by @markshust in #572
  • feat!: add marko/redis shared connection package and move cache-redis onto it by @markshust in #573
  • feat!: engine-agnostic template functions, shared view data and precompile contract by @markshust in #577
  • feat!: streamed and file responses with http range support by @markshust in #578
  • feat!: relationship existence filters with exists, column comparison and not-in query primitives by @markshust in #579
  • feat!: queue job contract changes (per-job state, release(JobInterface), PushResult, shared JobRunner) by @markshust in #580
  • feat!: log handler contract, handler stacking and a stdout/stderr stream handler by @markshust in #581
  • feat!: schedule console commands and run them in the background by @markshust in #582
  • feat!: end a user's other sessions and remember-me devices by @markshust in #587
  • feat!: job failure hook, one final-failure path, and job lifecycle events by @markshust in #591
  • feat: run scheduled tasks on one server with onOneServer() and a lock-backed TaskMutex by @markshust in #592
  • feat!: queue retry deadline (RetryUntilInterface), maxExceptions and self-release by @markshust in #597
  • feat!: per-job timeout, worker --max-time, and one worker stop-reason mechanism by @markshust in #602
  • feat!: redis queue driver (marko/queue-redis) by @markshust in #603
  • feat!: queue:restart for graceful worker restarts after deploys by @markshust in #605
  • feat: make marko/cache optional for marko/queue by @markshust in #607
  • refactor!: set the module loader once in the latte and twig engine factories by @markshust in #628
  • refactor!: move SleeperInterface into marko/core by @markshust in #629
  • feat: detect changes to the discovery environment variables in the config cache by @markshust in #630
  • fix: resolve a relative cache path against the project root by @markshust in #631
  • feat!: log queue worker output through LoggerInterface instead of error_log() by @markshust in #633

New Features

  • feat: scheduler time helpers, per-task time zones and when/skip conditions by @markshust in #568
  • feat: notification sender interface and FakeNotificationSender by @markshust in #569
  • feat: format, size, date comparison, distinct and enum validation rules by @markshust in #570
  • feat: filesystem fake, swappable disks via FilesystemManagerInterface and shared path rules by @markshust in #574
  • feat: password reset broker with hashed, expiring tokens by @markshust in #575
  • feat: production config caching through discovery:cache by @markshust in #576
  • feat: implicit and presence-aware validation rules by @markshust in #583
  • feat: password confirmation middleware for sensitive routes by @markshust in #584
  • feat: exists and unique validation rules for entities (marko/validation-database) by @markshust in #585
  • feat: session, auth, download and json validation assertions for http tests by @markshust in #586
  • feat: atomic cache locks with redis, file and array stores by @markshust in #588
  • feat: login challenge hook and two-factor authentication package by @markshust in #589
  • feat: current password and password strength validation rules by @markshust in #590
  • feat: passkey (webauthn) sign-in and management package (marko/authentication-passkey) by @markshust in #593
  • feat: latte and twig template precompilers for view:cache by @markshust in #594
  • feat: signed and temporary signed urls with a valid-signature middleware by @markshust in #595
  • feat: unique queue jobs (UniqueJobInterface) that skip duplicate dispatches by @markshust in #596
  • feat: add marko/forms with redirect-back flash of validation errors and old input by @markshust in #598
  • feat: email verification with signed links and a verified middleware by @markshust in #599
  • feat: flashed validation-error and old-input assertions on TestResponse by @markshust in #600
  • feat: register only named packages with bin/register-packagist.sh by @markshust in #606
  • feat: list URL_SIGNING_KEY in the skeleton .env.example by @markshust in #622
  • feat: serve file and streamed responses through the roadrunner bridge by @markshust in #626
  • feat: add FakeUserPersister to marko/testing by @markshust in #627
  • feat: database-backed password reset token repository (marko/authentication-database) by @markshust in #635
  • feat: cache-backed restart signal for queue workers on several hosts by @markshust in #637
  • feat: ship marko/log with the file and stream handlers in the skeleton by @markshust in #642
  • feat: throw when a failed job can't be stored instead of only logging it by @markshust in #643

Bug Fixes

  • fix: render validation redirects through http exception responders by @markshust in #604
  • fix: accept the compiled-template cache directory on windows by @markshust in #623
  • fix: declare health's optional packages and fail loudly when one is missing by @markshust in #634
  • fix: resolve relative local disk roots against the project root by @markshust in #638
  • fix: make flaky detached devserver and amphp sse stream timeout tests deterministic by @markshust in #639

Documentation

  • docs: remove the markotalk example from the readme and docs by @markshust in #645

Refactoring

  • refactor: verify admin passwords through PasswordVerifierInterface by @markshust in #624
  • refactor: resolve configured paths through ProjectPaths by @markshust in #632

Testing

  • test: derive the root composer.json package set from packages/ by @markshust in #625

CI

  • ci: label a pr breaking only for a ! title or BREAKING CHANGE: footer by @markshust in #644
  • ci: bump checkout to v7, setup-node to v7 and composer-install to v4 by @markshust in #646

Maintenance

Full Changelog: 0.11.0...0.12.0