Skip to content

Upgrade dependencies - #2162

Merged
blued-gear merged 95 commits into
mainfrom
upgrade_dependencies
Oct 6, 2026
Merged

blued-gear merged 95 commits into
mainfrom
upgrade_dependencies

Conversation

@blued-gear

@blued-gear blued-gear commented Jun 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

This PR upgrades all dependencies, including PHP, Symfony and JS. Broken code was fixed, many (but not all) new deprecations cleaned and the functionality of the site restored with best effort. A summary of major version jumps is attached at the end of this text.

I'm asking you to

verify the state of the site. There are many things I and the tests can not check; like 2FA and OAuth authenticator integration (Google, Github, ...).
We need a graceful rollout of this branch from dev to prod-like environments to ensure all broken thing (which likely still exist) get caught.

Other fixes

While I was at it, I fixed smaller things which annoyed me ;)

  • in the "create entry" page the Magazine search is now case-insensitive and clears old search-results when typing a name

Todo

  • upgrade PHP in the Docker containers
  • revert content of to be reverted commits
  • update docs

Upgrades

php:
php 8.3 -> 8.5
- notable new features:
- Asymmetric Visibility
- Property hooks
- New array_*() functions + array_first() and array_last() functions
- Fatal Errors (such as an exceeded maximum execution time) now include a backtrace
- Pipe Operator
- Uri class
- breaking changes:
- Using null as an array offset or when calling array_key_exists() is now deprecated
doctrine-bundle 2.18 -> 3.2
- https://github.com/greg0ire/DoctrineBundle/blob/4.0.x/UPGRADE-3.0.md
doctrine-migrations-bundle 3.7 -> 4.0
- https://github.com/derrabus/DoctrineMigrationsBundle/blob/4.0.x/UPGRADE.md
- https://github.com/doctrine/migrations/blob/3.0.x/UPGRADE.md
- need to run the doctrine:migrations:sync-metadata-storage command
doctrine PostgreSQL enum handling
- replaced the custom DBAL enum types with native PHP enums mapped by heymoon/doctrine-psql-enum
- the included migration converts the existing PostgreSQL enum definitions and must run as part of the normal deployment migration step
debril/rss-atom-bundle -> php-feed-io/feed-io
- the old bundle is abandoned and was removed
- the RSS feed was reimplemented directly with FeedIo while keeping the existing /feed endpoint
FrankenPHP runtime
- removed runtime/frankenphp-symfony; FrankenPHP now uses Symfony’s standard SymfonyRuntime directly
oauth2-google 4 -> 5
- https://github.com/thephpleague/oauth2-google/blob/main/CHANGELOG.md
reflection-docblock 5.4 -> 6.0
- do we even use this?
2fa-backup-code, 2fa-bundle, 2fa-totp 7.5 -> 8.6
- https://github.com/scheb/2fa/blob/8.x/UPGRADE.md#7x-to-8x
- Priority of the two-factor authenticator has changed from 0 to -100
oauth2-keycloak 5.1 -> 6.1
- https://github.com/stevenmaguire/oauth2-keycloak/releases/tag/6.0.0
- nothing major changed
ux-autocomplete 2.18 -> 3.2
- https://github.com/symfony/ux-autocomplete/blob/3.x/CHANGELOG.md
- nothing major changed for us
ux-chartjs 2.18 -> 3.2
- https://github.com/symfony/ux-chartjs/blob/3.x/CHANGELOG.md
- nothing major changed for us
ux-twig-component 2.18 -> 3.2
- https://github.com/symfony/ux-twig-component/blob/3.x/CHANGELOG.md
- nothing major changed for us
webmozart/assert 1.11 -> 2.4
- https://github.com/webmozarts/assert/blob/master/CHANGELOG.md
- nothing major changed for us
phpunit 12.5 -> 13.2
- https://github.com/sebastianbergmann/phpunit/releases/tag/13.0.0
- nothing major changed for us

js:
babel/core 7.29 -> 8.0
- https://babeljs.io/docs/v8-migration/
babel/preset-env 7.29 -> 8.0
eslint/js 9.39 -> 10.0, eslint 9.39 -> 10.5
- https://github.com/eslint/eslint/releases/tag/v10.0.0
fontawesome-free 6.7 -> 7.3
- https://fontawesome.com/changelog
- Icon canvases now render at a consistent fixed width. To use the default rendering from v6, add our new fa-width-auto class.
stylistic/eslint-plugin 2.13 -> 5.10
- https://github.com/eslint-stylistic/eslint-stylistic/releases/tag/v5.0.0
- nothing major changed for us
symfony/stimulus-bridge 3.2 -> 4.0
- https://github.com/symfony/stimulus-bridge/releases/tag/v4.0.0
- nothing major changed for us
symfony/webpack-encore 5.3 -> 7.1
- https://github.com/symfony/webpack-encore/blob/main/UPGRADE.md
- needed changes were applied
chart.js 3.8 -> 4.5
- https://www.chartjs.org/docs/latest/migration/v4-migration.html
- not directly used by us (Symfony handles it)
globals 15.15 -> 17.7
hotkeys-js 3.13 -> 4.0
- https://github.com/jaywcjlove/hotkeys-js/releases/tag/v4.0.0
- no notable changes
- do we even use this?
sass-loader 16.0 -> 17.0
- https://github.com/webpack/sass-loader/releases/tag/v17.0.0
- no notable changes
simple-icons-font 14.15 -> 16.24
- https://github.com/simple-icons/simple-icons-font/releases/tag/15.0.0
- https://github.com/simple-icons/simple-icons/releases/tag/16.0.0
- no notable changes
webpack-cli 5.1 -> 7.0
- https://github.com/webpack/webpack-cli/blob/main/CHANGELOG.md
- only used by Symfony

GL HF

@melroy89 melroy89 mentioned this pull request Sep 21, 2026
@blued-gear
blued-gear marked this pull request as ready for review September 21, 2026 16:11
@melroy89
melroy89 force-pushed the upgrade_dependencies branch 2 times, most recently from 274b2ac to d025742 Compare September 23, 2026 20:19
# Conflicts:
#	assets/controllers/rich_textarea_controller.js
#	composer.json
#	composer.lock
#	src/Controller/AjaxController.php
Comment thread src/Enums/ESortOptions.php Outdated
Comment thread src/Enums/ESortOptions.php Outdated
@melroy89

Copy link
Copy Markdown
Member

I think we are now ready to test this branch on kbin.melroy.org. I believe

@melroy89

melroy89 commented Oct 1, 2026

Copy link
Copy Markdown
Member

On the UI I notice on this specific magazine: https://kbin.melroy.org/m/piracy@lemmy.dbzer0.com the sidebar (right) to become wider then usual:

image

Comment thread src/Service/ActivityPubManager.php
Comment thread src/Service/ActivityPubManager.php
@blued-gear

Copy link
Copy Markdown
Collaborator Author

On the UI I notice [...]

IMO we can fix this in a separate PR we will address all UI issues we noticed in the past (so more that just during the dependency upgrade). The PR can be started after merging this PR and be included in the same release.

melroy89
melroy89 previously approved these changes Oct 3, 2026

@melroy89 melroy89 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then yes no further regression issues observed. And the pr is already big enough so I agree.

@blued-gear
blued-gear merged commit 7ecf2cb into main Oct 6, 2026
9 checks passed
@blued-gear
blued-gear deleted the upgrade_dependencies branch October 6, 2026 23:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants