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](#unreleased)
- [2.3.0 - 2026-09-03](#230---2026-09-03)
- [2.2.1 - 2026-08-18](#221---2026-08-18)
- [2.2.0 - 2026-08-04](#220---2026-08-04)
- [2.1.0 - 2026-07-29](#210---2026-07-29)
- [2.0.0 - 2026-07-22](#200---2026-07-22)
- [1.3.0 - 2026-07-16](#130---2026-07-16)
- [1.2.0 - 2026-07-13](#120---2026-07-13)
- [1.1.0 - 2026-07-09](#110---2026-07-09)
- [1.0.0 - 2026-07-03](#100---2026-07-03)
2.3.0 - 2026-09-03
- Web Component: the form theme now renders
<nowo-password-strength>(light DOM).password-strength.jsdefines the custom element and still initializes legacy[data-password-strength-field]hosts. Nested PasswordToggle uses<nowo-password-toggle>when that bundle is present. - Deps (dev): bump
rector/rector,friendsofphp/php-cs-fixer,@types/node,happy-dom; refresh Composer lockfiles.
- Integrators: keep loading
password-strength.js. Custom theme copies should wrap the field in<nowo-password-strength>.
2.2.3 - 2026-08-24
- Raise minimum PHP to 8.2 and sync README badge (REQ-SF-001).
- Docs: PHP-FIG PSR evaluation (REQ-CS-007).
- No API or configuration changes for integrators unless noted above.
- CI: run
composer audit --lockedafter dependency install (REQ-SEC / P3).
2.2.1 - 2026-08-18
- Demos: pin
nowo-tech/hot-reload-bundleto^1.4with FrankenPHP Mercure/hot_reload(dev/testonly).
2.2.0 - 2026-08-04
- REQ-TWIG-004: require
twig/extra-bundle+twig/string-extra;make check-twig-extrainrelease-check; demos registerTwigExtraBundle. - Twig-CS-Fixer:
vincentlanglet/twig-cs-fixer,.twig-cs-fixer.php,composer twig:lint/twig:fix.
2.1.0 - 2026-07-29
- FrankenPHP friendly — badge/image in README and stronger demo/docs coverage for worker mode (
docs/images/frankenphp-friendly.png, demo entrypoint). - Release gates —
make coverage-check(fail under 99% PHP lines),make check-open-prs(REQ-REL-003), wired intomake release-check. - PHPStan FrankenPHP —
nowo-tech/phpstan-frankenphpclassic + worker rulesets inphpstan.neon.dist. - Deprecation hard-fail —
SYMFONY_DEPRECATIONS_HELPER=max[direct]=0in PHPUnit and CI (REQ-SF-005). - Documentation — table of contents across integrator/maintainer docs; expanded INSTALLATION, USAGE, CONTRIBUTING, GITHUB_CI, DEMO-FRANKENPHP.
- Makefile — prefers Docker Compose V2 (
docker compose), optional monorepoupdate-depsinclude,demo-smoketarget. - PHPStan — empty
ignoreErrors; report unmatched ignores. - Code cleanup —
PasswordStrengthBundle::getContainerExtension(), form type imports, PasswordToggle integration typing.
2.0.0 - 2026-07-22
- Twig namespace —
@PasswordStrengthBundlerenamed to@NowoPasswordStrengthBundle(form themes and logical template names). - Translation domain — files and default
translation_domainrenamed fromPasswordStrengthBundletoNowoPasswordStrengthBundle(de/en/es/fr/it/nl/pt). - TwigPathsPass — resolves Twig filesystem loader aliases more robustly; prepends
templates/bundles/NowoPasswordStrengthBundlewhen that directory exists so app overrides win. - Documentation — INSTALLATION, USAGE, UPGRADING, and Spec Kit inventory updated for the new namespace/domain.
See UPGRADING.md for override path and translation file renames.
1.3.0 - 2026-07-16
- Code of Conduct — Contributor Covenant (
CODE_OF_CONDUCT.md), linked from README and CONTRIBUTING. - Git hygiene (REQ-GIT-001) — CI job and scripts to reject Cursor
Co-authored-bytrailers;.githooks/commit-msg,make setup-hooks,make check-no-cursor-coauthor, andGITHUB_CI.md. - Tests — additional coverage for
PasswordStrengthTypeandPasswordStrengthEvaluator.
- Release checklist —
make release-checkrunscheck-no-cursor-coauthorfirst; RELEASE.md notes re-check before push.
1.2.0 - 2026-07-13
- Asset package — registers the
nowo_password_strengthSymfony assets package (base_path: /bundles/passwordstrength) for AssetMapper and consistentasset()usage. - AssetMapper docs — installation notes in
INSTALLATION.mdfor apps using Symfony AssetMapper.
- Documentation — README, INSTALLATION, UPGRADING, Flex recipe
post-install.txt, and demo templates now useasset('password-strength.js', 'nowo_password_strength')instead of a hard-coded public path.
1.1.0 - 2026-07-09
- Translations — German (
de), French (fr), Italian (it), Dutch (nl), and Portuguese (pt) in addition to English and Spanish. - GitHub Spec Kit — baseline spec and code inventory (
specs/001-baseline/), operator manualSPEC-KIT.md,.specify/scaffolding, and Cursor Agentspeckit-*skills.
SPEC-DRIVEN-DEVELOPMENT.md— documents the three-layer model (Spec Kit, product behavior,REQ-*traceability).- Demo Symfony 8 Docker image and Composer lockfiles refreshed.
1.0.0 - 2026-07-03
First stable release of Password Strength Bundle.
- PasswordStrengthType — extends Symfony
PasswordType(or PasswordToggleBundlePasswordTypewhen installed and enabled). - Policy modes —
level(weak / medium / strong / custom) or inlineconditions. - PasswordStrength validator constraint — server-side enforcement aligned with form policies.
- HTML
pattern— built automatically from the active policy (PasswordPatternBuilder). - Live feedback — TypeScript (Vite + pnpm) evaluates requirements client-side; IIFE bundle
password-strength.js. - Password generator — modes
off,input(fill field),modal(suggestions with copy / use). - Feedback position — configurable
aboveorbelowthe input. - Multi-framework Twig form themes — Bootstrap 3–5, Tailwind 2, Foundation 5–6, table/div layouts.
- Optional PasswordToggleBundle integration — auto-detected;
use_password_toggleandparent_form_typeconfiguration. - Translations —
PasswordStrengthBundledomain (EN/ES). - Demo — Symfony 8 + FrankenPHP (
demo/symfony8/) with locale-prefixed routes (/en/,/es/). - Development — PHPUnit, Vitest, PHP-CS-Fixer, Rector, PHPStan, GitHub Actions CI, release workflows.
- PHP >= 8.1, < 8.6
- Symfony ^6.0 || ^7.0 || ^8.0