This document describes how to upgrade between major versions of Password Toggle Bundle.
- No application upgrade steps. Repository and maintainer tooling only (REQ-GIT-001 git hygiene, Code of Conduct, CI docs, dev dependency bumps).
- Maintainers / contributors: run
make setup-hooksonce; CI enforces no Cursor co-author trailers — seeGITHUB_CI.md.
- Optional (AssetMapper / named assets): prefer
asset('css/toggle_password.css', 'nowo_password_toggle')in Twig instead ofasset('bundles/nowopasswordtoggle/css/toggle_password.css'). Runphp bin/console assets:installonce so the CSS is published underpublic/bundles/nowopasswordtoggle/. The legacy path still works for classic asset setups. - No PHP or YAML config changes.
- No application upgrade steps. Repository and maintainer tooling only (Spec Kit, baseline specs, dev dependency bumps, demo Docker
intlextension). - Maintainers: see
SPEC-KIT.mdandSPEC-DRIVEN-DEVELOPMENT.md.
- No application upgrade steps. Repository-only change:
demo/symfony6/was deleted. - Demos / CI: if you referenced
demo/symfony6/in scripts or docs, usesymfony7,symfony8, orsymfony8-php85.
Breaking release for projects still on PHP 8.1 or Symfony 6.x.
- PHP: upgrade to >= 8.2 before updating.
- Symfony: upgrade to ^7.0 or ^8.0 before updating.
- Composer:
composer require nowo-tech/password-toggle-bundle:^2.0. - Stay on 1.x: if you cannot upgrade yet, keep
nowo-tech/password-toggle-bundle:^1.2(last line with Symfony 6 / PHP 8.1 support is 1.2.10). - Demos / CI:
symfony6was removed fromdemo/MakefileDEMOS; usesymfony7,symfony8, orsymfony8-php85(thedemo/symfony6/tree was removed in 2.0.1). - No API changes to
PasswordTypeornowo_password_toggleconfiguration; only platform requirements changed.
- No application upgrade steps. CI now enforces ≥95% coverage instead of 100%. No PHP, config, or template changes.
- No upgrade steps required. Patch release: internal
IconSupportCheckercleanup (Twig runtime class detection only) and restored 100% test coverage for CI. Behaviour unchanged whensymfony/ux-iconsis installed.
- Custom form theme overrides: if you copied
toggle_password_widget.html.twigfrom an older bundle version, align icon show/hide with 1.2.8 (inlinestyle.displayinstead ofd-none) or re-copy from@NowoPasswordToggleBundle/Form/toggle_password_widget.html.twig. No PHP or YAML config changes.
- Icons still missing after 1.2.6: upgrade to 1.2.7 if
[icons missing]appears in dev whileicons_availableshould be true (packages installed, cache cleared). The default widget incorrectly usedux_icon is defined, which Twig never satisfies for functions. No config changes; runphp bin/console cache:clearafter updating.
- False
[icons missing]in dev: upgrade from 1.2.5 if the toggle works but dev still shows[icons missing]whilesymfony/ux-iconsandsymfony/http-clientare installed. This release fixesIconSupportCheckerfor UX Icons 3.x (UXIconRuntime). Then runphp bin/console cache:clear(icons are usually already locked viaux:icons:lock).
- UX Icons 3.x: replace
php bin/console ux:icons:lock tabler:eye tabler:eye-offwithphp bin/console ux:icons:lockin scripts and CI. The command scans Twig templates; optional--forceoverwrites local SVGs. Demos and Flex recipe post-install are updated in this release.
- No breaking API changes for
PasswordTypeornowo_password_toggleconfig. - Recommended: ensure
symfony/ux-iconsandsymfony/http-clientare installed if you use the default widget. Symfony Flex recipe 1.2.3+ adds both automatically on new installs. - Without those packages: compile/cache warmup still works; you get a log warning once per process and icons are skipped (see INSTALLATION.md).
- Manual upgrade:
composer require symfony/ux-icons symfony/http-clientthenphp bin/console ux:icons:lock.
- Twig overrides: The bundle now registers its Twig paths so that application overrides under
templates/bundles/NowoPasswordToggleBundle/take precedence over the bundle templates. If you relied on the opposite order (unlikely), adjust your templates or copy the bundle widget into your project. - Demos / Docker: If you copied demo
composer.json, use thedev-main as 1.2.99constraint (andminimum-stability/prefer-stable) when using a path repository for the bundle, or Composer will not resolve^1.2.0against the mounted source. Applications consuming the package from Packagist are unchanged.
- No breaking changes. Demos now document FrankenPHP-based setup; see Demo with FrankenPHP if you run or adapt the bundled demos.
- Demo paths: If you reference demo directories in scripts or CI, update paths from
demo/demo-symfony6etc. todemo/symfony7,demo/symfony8,demo/symfony8-php85. - PHPStan: If you extended or copied
phpstan.neon.dist, removememoryLimitandcheckMissingIterableValueType(not supported in PHPStan 2.x). No impact on runtime or bundle API.
- Global configuration file
config/packages/nowo_password_toggle.yamlis supported; demos and new Flex installs use it. No breaking changes if you were using defaults.
First stable release.
- Requirements: PHP >= 8.1, Symfony ^6.0 || ^7.0 || ^8.0.
- Optional: symfony/ux-icons ^2.0 || ^3.0 for icon support.