No breaking changes. No application upgrade steps. Hosts using the default demo layout pick up extracted CDN partials automatically. Optional: ui.layout_template: '@NowoWorkflowBundle/layout_integrate_base.html.twig' when the project layout is base.html.twig.
composer update nowo-tech/workflow-bundleNo breaking changes. No application upgrade steps.
composer update nowo-tech/workflow-bundle- Back up
config/packages/nowo_workflow.yaml - Read CHANGELOG.md for breaking changes
- Run
composer update nowo-tech/workflow-bundle - Run
php bin/console nowo:workflow:sync-schema - Clear cache:
php bin/console cache:clear
Review Flex recipe security_nowo_workflow.yaml after update.
composer update nowo-tech/workflow-bundleReview Flex recipe security_nowo_workflow.yaml access rules after install/update.
composer update nowo-tech/workflow-bundleNo application upgrade steps.
composer update nowo-tech/workflow-bundleNo application upgrade steps. Demos only: Hot Reload Bundle ^1.4 (FrankenPHP Mercure/hot_reload, dev/test). Continue requiring nowo-tech/workflow-bundle as before.
From 1.6.0 — maintainer/CI fix only (composer.lock content-hash + prepend coverage). No host migration.
composer update nowo-tech/workflow-bundleFrom 1.5.2 — FormKit admin forms, UiKit macros, Twig Extra (REQ-TWIG-004), Twig-CS-Fixer.
composer update nowo-tech/workflow-bundle
php bin/console cache:clear
php bin/console assets:install --symlink --relative publicRequires nowo-tech/form-kit-bundle ^2.0 and nowo-tech/ui-kit-bundle ^1.4. Hosts that render Twig templates need twig/extra-bundle + twig/string-extra (usually via Flex).
From 1.5.1:
composer update nowo-tech/workflow-bundle
php bin/console cache:clearNo database migration, configuration change, or consumer code update is required. This patch tightens maintainer QA (coverage-check), PHPStan (ignoreErrors: []), Packagist metadata, Docker IPAM, and DBAL 4 sequence listing in SchemaSyncService.
From 1.5.0:
composer update nowo-tech/workflow-bundle
php bin/console cache:clearNo database migration, configuration change, or consumer code update is required. This patch completes maintainer/demo standards: demo Makefile aliases (make -C demo up), open-PR gate in release-check, Symfony DebugBundle in the FrankenPHP demo, and HTTP smoke in demo release-verify.
From 1.4.x:
composer update nowo-tech/workflow-bundle
php bin/console cache:clearSee CHANGELOG.md for the full list. Summary for integrators:
- The CRUD UI is no longer open by default. Without
symfony/security-bundle, container compilation fails unless you setnowo_workflow.security.allow_unauthenticated: true(local demos/tests only) or providesecurity.access_checker. - With SecurityBundle,
RoleBasedWorkflowUiAccessCheckeris wired automatically usingsecurity.access_roles(defaultROLE_ADMIN). ui.required_rolesremains as a BC alias ofsecurity.access_roles.- Empty
access_roles/required_rolesnow means no bundle-level role check (previously denied everyone). - Protect
ui.path(default/workflow) with Symfonyaccess_controlin the host app.
Minimal production config:
nowo_workflow:
ui:
path: '/workflow'
layout_template: 'base.html.twig'
css_framework: bootstrap5
security:
access_roles: [ROLE_ADMIN]
allow_unauthenticated: false# config/packages/security.yaml
security:
access_control:
- { path: ^/workflow, roles: ROLE_ADMIN }New keys under ui:
| Key | Default |
|---|---|
layout_template |
@NowoWorkflowBundle/layout.html.twig |
css_framework |
bootstrap5 |
icon_set |
bootstrap-icons |
list_page_size |
20 |
Pages now extend @NowoWorkflowBundle/base.html.twig and stack assets with {{ parent() }}. Set layout_template to your project layout. Dashboard and definition index lists are paginated (?page=); set list_page_size: 0 only for small demos. See CONFIGURATION.md.
Stable blocks: nowo_ui_content, nowo_ui_styles, nowo_ui_scripts, nowo_ui_page_header, nowo_ui_modals, nowo_ui_flashes. Renaming these later is a breaking change.
- Flex recipe YAML documents the new defaults.
- The Symfony 8 demo intentionally sets
security.allow_unauthenticated: true(no SecurityBundle). Do not copy that into production.
From 1.4.2:
composer update nowo-tech/workflow-bundle
php bin/console cache:clearNo database migration, configuration change, or code update is required for Symfony integrators. This release improves maintainer CI/git hygiene, PHP-CS-Fixer import rules, and the FrankenPHP demo (FRANKENPHP_MODE). Bundle consumers who do not run demo/ are unaffected.
If you maintain a local clone of the demo, set FRANKENPHP_MODE=classic (or worker) in demo/symfony8/.env and recreate containers after pulling.
From 1.4.1:
composer update nowo-tech/workflow-bundle
php bin/console cache:clearNo database migration, configuration change, or code update is required. This release only renames and refines maintainer CI documentation (GITHUB_CI.md); Symfony integrators are unaffected.
From 1.4.0:
composer update nowo-tech/workflow-bundle
php bin/console cache:clearNo database migration, configuration change, or code update is required. This release adds maintainer-only git hygiene tooling, Code of Conduct, and CI/documentation updates; Symfony integrators are unaffected.
From 1.3.x:
composer update nowo-tech/workflow-bundle
php bin/console cache:clearNo database migration, configuration change, or code update is required. This release adds maintainer-only Spec Kit scaffolding and baseline documentation; Symfony integrators are unaffected.
From 1.2.x:
composer update nowo-tech/workflow-bundle
php bin/console cache:clearNo database migration is required.
If you use Symfony Security, you can alias the built-in checker instead of writing a custom class:
# config/services/nowo_workflow_security.yaml
services:
Nowo\WorkflowBundle\Contract\WorkflowUiAccessCheckerInterface:
class: Nowo\WorkflowBundle\Service\RoleBasedWorkflowUiAccessChecker
arguments:
$requiredRoles: ['ROLE_ADMIN']
$authorizationChecker: '@security.authorization_checker'New Flex installs receive this file from the recipe (commented until symfony/security-bundle is installed). The ui.required_roles config key documents the intended roles but does not auto-register the checker — you must alias the service (or use access_control).
Catalogs for de, nl, and pt ship with the bundle. Add them to ui.locales to show them in the locale switcher:
nowo_workflow:
ui:
locales: [en, es, fr, it, de, nl, pt]From 1.1.x:
composer update nowo-tech/workflow-bundle
php bin/console cache:clear| Requirement | 1.1.x | 1.2.0 |
|---|---|---|
| PHP | 8.1+ | 8.2+ |
| Symfony | 6.3, 7.x, 8.x | 7.x, 8.x only |
| Symfony 8 + Doctrine | — | PHP 8.4+ and doctrine/doctrine-bundle ^3.2.4 |
If you run Symfony 6.4 or PHP 8.1, stay on 1.1.x until you upgrade the host application.
For Symfony 8, ensure the app uses doctrine/doctrine-bundle ^3.2.4 (requires PHP 8.4+). Symfony 7 apps can keep doctrine-bundle ^2.13.
From 1.0.x:
composer update nowo-tech/workflow-bundle
php bin/console nowo:workflow:sync-schema
php bin/console cache:clearNo database migration is required when keeping the default table_prefix: workflow_ (same physical table names as 1.0.0).
Register a custom WorkflowUiAccessCheckerInterface implementation. Without it, the UI remains open (same as 1.0.0). See SECURITY.md.
If you set table_prefix to a value other than workflow_, run nowo:workflow:sync-schema after changing config. Existing installations should keep the default unless you intentionally rename tables.
If you override bundle translations, ensure files are named NowoWorkflowBundle.<locale>.yaml (not nowo_workflow.<locale>.yaml). The translation domain is still NowoWorkflowBundle.
WorkflowApplicator now depends on WorkflowRegistryInterface. Custom implementations or test doubles should implement that interface; DatabaseWorkflowRegistry remains the default service.
Initial release. Install with:
composer require nowo-tech/workflow-bundleRegister routes and sync schema as described in INSTALLATION.md.
UI translations use domain NowoWorkflowBundle. Override in translations/NowoWorkflowBundle.<locale>.yaml.
Override under templates/bundles/NowoWorkflowBundle/ (see USAGE.md).
| Bundle | Symfony | PHP |
|---|---|---|
| 1.x | 7.x (PHP 8.2+), 8.x (PHP 8.4+) | 8.2 – 8.5 |
If you use admin/dashboard Symfony forms, ensure nowo-tech/form-kit-bundle ^2.0 is installed (pulled transitively) and Nowo\FormKitBundle\NowoFormKitBundle is registered. Form types use profile workflow via #[FormKitConfig]; the bundle prepends that profile when the host has not defined it.
From 1.5.2 — Adds FormKit and/or UiKit where applicable, Twig Extra (REQ-TWIG-004), and Twig-CS-Fixer. Register TwigExtraBundle, NowoFormKitBundle, and NowoUiKitBundle if Flex did not. See CHANGELOG.
composer update nowo-tech/workflow-bundle
php bin/console cache:clearHosts that render this bundle's Twig templates must install:
composer require twig/extra-bundle twig/string-extraand enable Twig\Extra\TwigExtraBundle\TwigExtraBundle. Flex recipes usually register it automatically.
Package maintainers: composer twig:lint / composer twig:fix use .twig-cs-fixer.php over src/ (and templates/ when present).