diff options
| author | Brett Parson <brett@brett-parson.com> | 2026-08-29 15:56:32 -0500 |
|---|---|---|
| committer | Brett Parson <brett@brett-parson.com> | 2026-08-29 15:56:32 -0500 |
| commit | a2b29fe6ffa16a0af5635505df7250f27724260a (patch) | |
| tree | 8ccadc420e2bf8cd997f76d8b54e2bcfc83dbf17 /CHANGELOG.md | |
| parent | 965551532d684456b74baf960157c0c2cef7335d (diff) | |
| download | miniroute-a2b29fe6ffa16a0af5635505df7250f27724260a.tar.gz miniroute-a2b29fe6ffa16a0af5635505df7250f27724260a.zip | |
Restructure roadmap and add changelogv0.1.0
Phase plan for v0.2.0 through v1.0.0, Keep-a-Changelog conventions, and
agent docs with build/test and beads-operations guidance.
Diffstat (limited to 'CHANGELOG.md')
| -rw-r--r-- | CHANGELOG.md | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..111aaf6 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,52 @@ +# Changelog + +All notable changes to this project are documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +How it works: + +- Every user-facing change gets a line under **Unreleased** as it lands + (Added / Changed / Fixed / Removed / Deprecated / Security). +- At release time, "Unreleased" is renamed to the new version (e.g. + `## [0.2.0] - 2026-09-xx`) and a fresh Unreleased section is opened. +- The version number comes from `composer.json` and the matching `git tag` + (`v0.2.0`). Bugfix releases bump the patch (`0.2.1`), features bump the + minor (`0.3.0`), and breaking changes bump the major after 1.0 (`2.0.0`). + +## [Unreleased] + +### Added + +- Integration suite (`tests/Integration/RealisticRouteTableTest.php`): + the 22-route brett-parson.com model, `/admin` group + POST-only CSRF + ordering, literal `preview` beating `{id}`, param injection, 5-layer + onion order. +- Regression baselines (`tests/Regression/KnownIssuesTest.php`): six + known-issue probes pinning v0.1.0 behavior, each linked to its v0.2.0 + fix bead. +- Benchmark script (`composer bench`, `tests/bench/bench.php`): + registration/dispatch scaling at 100/300/600 routes. +- Router boundary tests: trailing-slash normalization, method + case-insensitivity, case-sensitive paths, leading double slash, + cross-controller duplicate detection, custom not-found handler. +- Composer scripts: `test`, `bench`, `lint`, `check`. + +## [0.1.0] - 2026-08-29 + +### Added + +- Attribute route declaration (`Get`, `Post`, `Put`, `Patch`, `Delete`) + compiled by a reflection-based `RouteLoader`. +- Deterministic matching: literal segments beat `{parameter}` segments at + the same position, so registration order never matters. +- Onion middleware pipeline (`MiddlewarePipeline`) with `Middleware` + attributes on classes and methods, plus router-level `group()` prefix + middleware with optional method restriction. +- Controller resolution seam (`ControllerResolverInterface`) so apps plug + in their own container wiring. +- Thin HTTP contracts (`RequestInterface`, `ResponseInterface`) that + application HTTP objects implement. +- Duplicate route detection at registration (`RouteRegistrationException`). +- Unit test suite covering loader, matcher, pipeline, and router. |
