Summary
This issue documents the analysis and planning for upgrading Høringsportal from Drupal 10 to Drupal 11.
Current Status
| Component |
Version |
D11 Ready |
| Drupal Core |
^10.0 |
Needs update to ^11.0 |
| PHP |
^8.4.0 |
✅ Exceeds D11 minimum (8.3) |
| Custom Modules |
27 modules |
✅ All declare ^11 compatibility |
| Contrib Modules |
57 modules |
✅ Major versions compatible |
| Themes |
2 themes |
✅ Already declare ^11 compatibility |
Compatibility Analysis
✅ PHP Version - READY
- Current requirement: PHP ^8.4.0
- Drupal 11 requires: PHP 8.3+
- Status: Already exceeds requirements
✅ Custom Modules - READY
All 27 custom modules already declare Drupal 11 compatibility in their core_version_requirement:
- Core modules: hoeringsportal_hearing, hoeringsportal_citizen_proposal, hoeringsportal_public_meeting, etc.
- All use modern patterns (Hook attributes, AutowireTrait, DrushCommands)
- No deprecated API usage detected
✅ Themes - READY
hoeringsportal: core_version_requirement: ^8 || ^9 || ^10 || ^11
hoeringsportal_admin: core_version_requirement: ^10 || ^11
✅ Deprecated APIs - NONE FOUND
- No @deprecated comments in custom code
- All validation methods use current API (addViolation)
- All messenger methods use current API (addError)
- Modern Hook attributes already in use
⚠️ Patches - REQUIRES REVIEW
4 patches need verification for D11 compatibility:
- drupal/better_exposed_filters - Visually hidden label (local patch)
- drupal/core - 3 patches:
- Text format wrapper description_display (2421445)
- Validation bug fix (3210319)
- AutowireTrait for plugins (3294266)
- drupal/site_status_message - Cache support patch
- vincentlanglet/twig-cs-fixer - Trans tag plural handling
Action Required: Check if these issues are resolved in D11 core or contrib releases.
⚠️ Contrib Modules in Pre-release
Some modules are in alpha/beta/RC status:
webform (^6.3@beta)
openid_connect (^3.0@alpha)
email_registration (^2.0@RC)
entityqueue (^1.0@alpha)
viewsreference (^2.0@beta)
Action Required: Monitor for stable releases before/during upgrade.
⚠️ jQuery Dependencies - MINIMAL
Only 2 custom modules have jQuery dependencies:
hoeringsportal_quicklinks
itk_admin_links
Status: Not blocking, but worth noting for future modernization.
Upgrade Plan
Phase 1: Pre-Upgrade Preparation
Phase 2: Perform Upgrade
Phase 3: Post-Upgrade Validation
Risk Assessment
| Risk |
Level |
Mitigation |
| Custom module compatibility |
Low |
All already declare D11 support |
| Contrib module compatibility |
Low |
Major versions compatible |
| Core patches breaking |
Medium |
Manual review required |
| Integration failures |
Low |
Test in staging first |
| Theme issues |
Low |
Already D11 compatible |
Estimated Effort
- Pre-upgrade preparation: 1-2 days
- Upgrade execution: 1 day
- Testing and validation: 3-5 days
- Total: ~1-2 weeks
Conclusion
The codebase is well-prepared for Drupal 11 upgrade with:
- ✅ No major blockers identified
- ✅ All custom code already D11-compatible
- ✅ Modern development patterns in use
- ⚠️ Only patches require manual review
References
Summary
This issue documents the analysis and planning for upgrading Høringsportal from Drupal 10 to Drupal 11.
Current Status
Compatibility Analysis
✅ PHP Version - READY
✅ Custom Modules - READY
All 27 custom modules already declare Drupal 11 compatibility in their
core_version_requirement:✅ Themes - READY
hoeringsportal:core_version_requirement: ^8 || ^9 || ^10 || ^11hoeringsportal_admin:core_version_requirement: ^10 || ^11✅ Deprecated APIs - NONE FOUND
4 patches need verification for D11 compatibility:
Action Required: Check if these issues are resolved in D11 core or contrib releases.
Some modules are in alpha/beta/RC status:
webform(^6.3@beta)openid_connect(^3.0@alpha)email_registration(^2.0@RC)entityqueue(^1.0@alpha)viewsreference(^2.0@beta)Action Required: Monitor for stable releases before/during upgrade.
Only 2 custom modules have jQuery dependencies:
hoeringsportal_quicklinksitk_admin_linksStatus: Not blocking, but worth noting for future modernization.
Upgrade Plan
Phase 1: Pre-Upgrade Preparation
upgrade_statusmodule report (already installed)Phase 2: Perform Upgrade
composer.json: Changedrupal/corefrom^10.0to^11.0drupal/core-*packages to^11.0composer update drupal/core* --with-all-dependenciesdrush updatedbfor database schema updatesdrush cache:rebuilddrush config:exportPhase 3: Post-Upgrade Validation
Risk Assessment
Estimated Effort
Conclusion
The codebase is well-prepared for Drupal 11 upgrade with:
References