docs: record Symfony 8.1 upgrade results, update stack references
Tests / test (pull_request) Successful in 1m7s
Tests / test (pull_request) Successful in 1m7s
- Plan doc: mark Phases 0-3 + worker-mode state audit complete with verified results; resolve open questions (all src/ services are final readonly - no ResetInterface needed under kernel-reusing runner) - CHANGELOG: Unreleased entries for the 8.1 bump and the runtime/frankenphp-symfony removal (incl. FRANKENPHP_LOOP_MAX note) - ROADMAP: current stack now Symfony 8.1; webauthn research note updated - bin/dev.sh: correct stale PHP requirement comment
This commit is contained in:
@@ -25,6 +25,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- New `PublicPathMatcher` service for path pattern matching.
|
||||
- New `PublicAccessListener` (priority 84) in the request pipeline.
|
||||
|
||||
### Changed
|
||||
- **Upgraded Symfony 7.4 → 8.1** — All `symfony/*` components bumped to
|
||||
`8.1.*` (resolved to 8.1.2–8.1.6). The 7.4 deprecation sweep was clean
|
||||
(test suite runs with `failOnDeprecation`), so the major-version jump
|
||||
required no application code changes. See
|
||||
`docs/symfony-8.1-upgrade-plan.md`.
|
||||
|
||||
### Removed
|
||||
- **`runtime/frankenphp-symfony`** — No longer needed: `symfony/runtime`
|
||||
8.1 handles FrankenPHP worker mode natively via its built-in
|
||||
`FrankenPhpWorkerRunner`. The `extra.runtime` override in
|
||||
`composer.json` was removed so the runtime auto-detects FrankenPHP.
|
||||
Note: the old package's `FRANKENPHP_LOOP_MAX` env var (default 500
|
||||
requests per worker) is no longer read; worker lifecycle is now managed
|
||||
by FrankenPHP itself.
|
||||
|
||||
## [1.0.0] — v1.0 Release
|
||||
|
||||
### Security
|
||||
|
||||
+2
-2
@@ -10,7 +10,7 @@ authentication — it's a gate that prevents outsiders from even seeing
|
||||
what service is running.
|
||||
|
||||
- **Location:** `projects/preauth/`
|
||||
- **Framework:** Symfony 7.4 (PHP ≥ 8.4)
|
||||
- **Framework:** Symfony 8.1 (PHP ≥ 8.4)
|
||||
- **Serving:** FrankenPHP (Docker image)
|
||||
- **Cache:** Dual-layer — APCu (in-memory) + file-based persistence
|
||||
- **Auth:** TOTP (single secret) + single-use backup codes
|
||||
@@ -329,7 +329,7 @@ struggle with TOTP apps.
|
||||
command or initial-setup flow to register a passkey).
|
||||
|
||||
- [ ] Research `web-auth/webauthn-framework` integration with Symfony
|
||||
7.4 and FrankenPHP
|
||||
8.1 and FrankenPHP
|
||||
- [ ] Design passkey registration flow (console command? first-visit
|
||||
setup? separate registration endpoint?)
|
||||
- [ ] Implement challenge generation and storage (extend existing
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ REQUIRED_PHP_EXTS=(
|
||||
)
|
||||
|
||||
# Apt packages for PHP + extensions
|
||||
# Note: preauth uses Symfony 7.4 which requires PHP >=8.1.
|
||||
# Note: preauth uses Symfony 8.1 which requires PHP >=8.4.
|
||||
# We install PHP 8.4 (available in Debian 13/Trixie) for consistency.
|
||||
PHP_APT_PACKAGES=(
|
||||
php8.4-cli
|
||||
|
||||
@@ -198,13 +198,15 @@ twig-bundle, uid, yaml) and tick each item against this codebase.
|
||||
Rollback = `git revert` the bump commit + redeploy previous image tag.
|
||||
No data/schema migrations are involved (no database).
|
||||
|
||||
## 8. Open questions
|
||||
## 8. Open questions — resolved during implementation
|
||||
|
||||
- [ ] Confirm none of our listeners/services relied on implicit behavior
|
||||
of `Runtime\FrankenPhpSymfony\Runner` (e.g. per-request kernel
|
||||
reboot). The built-in runner reuses the kernel — our services must
|
||||
implement `ResetInterface` where they hold per-request state
|
||||
(`ConfigBag`, nonces, cache-touching services). Audit in Phase 0.
|
||||
- [ ] Decide whether to pin `symfony/*` as `8.1.*` or `^8.1` going
|
||||
forward (current convention is minor-pinned — keep `8.1.*`).
|
||||
- [ ] Regenerate `config/reference.php` — scripted or manual dump?
|
||||
- [x] ~~Confirm none of our listeners/services relied on implicit behavior
|
||||
of `Runtime\FrankenPhpSymfony\Runner`.~~ **Resolved:** audited every
|
||||
class in `src/` — all are `final readonly` with constructor-injected
|
||||
dependencies and no mutable state. No `ResetInterface` needed; kernel
|
||||
reuse across worker requests is safe.
|
||||
- [x] ~~Decide whether to pin `symfony/*` as `8.1.*` or `^8.1`.~~
|
||||
**Resolved:** kept minor-pinned `8.1.*`, matching repo convention.
|
||||
- [x] ~~Regenerate `config/reference.php` — scripted or manual dump?~~
|
||||
**Resolved:** it's gitignored and auto-regenerated by Flex on
|
||||
`composer update`; already refreshed for 8.1 during the bump.
|
||||
|
||||
Reference in New Issue
Block a user