Skip to content

Update and slim down third party libraries - #76

Open
gn36 wants to merge 1 commit into
claude/hopeful-curie-f08cpbfrom
claude/update-dependencies
Open

gn36 wants to merge 1 commit into
claude/hopeful-curie-f08cpbfrom
claude/update-dependencies

Conversation

@gn36

@gn36 gn36 commented Oct 30, 2026

Copy link
Copy Markdown
Owner

Builds on #75 (this PR is based on its branch; after #75 is merged it can be retargeted to master, the diff then only contains the commit below).

Summary

Audit of the Composer dependencies (composer outdated, composer audit, composer why) and what the extension actually uses from vendor/:

Before Problem Now
robloach/component-installer, oomphinc/composer-installers-extender both abandoned; only pulled in by the datetimepicker/moment and only produce a components/ dir the extension never uses replace in composer.json, not installed
kriswallsmith/assetic, composer/installers transitive of the above gone
symfony/process 3.4.47 CVE-2024-51736 (transitive via assetic) gone, composer audit is clean
components/jquery 4.0.0 unused, phpBB ships its own jQuery replaced
fortawesome/font-awesome 4.4.0 redundant: phpBB 3.2/3.3 ship Font Awesome 4.7 (loaded by prosilver); the extension only redefined the FontAwesome @font-face dependency and @font-face removed, the glyph codes in hookup.css are the same in 4.7
eonasdan/bootstrap-datetimepicker >=4.17 unbounded ^4.17.49 (latest of the 4.x line)
moment/moment (transitive) used directly (locale files, moment.min.js) direct requirement ^2.30 (2.31.0 installed)

Installed packages go from 9 to the 2 that are used.

Other changes:

  • ext.php: the dependency check for the datetimepicker was overwritten by the moment check (same array key); both files are checked now. Removed the checks for packages that are no longer required.
  • Removed the tracked composer.phar (Composer 1.10, unused since Travis was removed)
  • actions/checkout v4 → v6 in tests-3.2.yml (Node 20 deprecation)

Not changed

eonasdan/bootstrap-datetimepicker 4.17.49 is the last release of its line (Bootstrap 3 based, the project has moved on to Tempus Dominus). moment is in maintenance mode as well. Replacing the picker with Tempus Dominus 6 would be a rewrite of cal-settings.js and the picker CSS (needs Popper and Bootstrap 5 styling, is not available on Packagist), so it is left for a separate change.

Test plan

  • composer install from scratch: only the two packages, composer audit finds nothing
  • Locally (phpBB 3.3.x, PHP 8.3): code sniffer, executable check, 55 unit tests and 18 functional tests OK (functional tests enable the extension, which checks the vendor files)
  • Browser check with Chromium: picker renders with the new vendor files, locale de loads, the chevron/clock icons render with phpBB's Font Awesome 4.7, no JS errors
  • GitHub Actions (phpBB 3.2 and 3.3 matrix)

Generated by Claude Code

- Replace the abandoned robloach/component-installer and oomphinc/composer-installers-extender
  (and with them kriswallsmith/assetic, symfony/process 3.4 with CVE-2024-51736 and composer/installers)
  via composer 'replace'; the extension only uses files directly from vendor/
- Drop components/jquery 4.0 (phpBB ships jQuery) and fortawesome/font-awesome 4.4
  (phpBB ships Font Awesome 4.7, remove the @font-face override)
- Require moment/moment directly (^2.30), eonasdan/bootstrap-datetimepicker ^4.17.49
- ext.php: check both the datetimepicker and moment files (the first check was overwritten)
- Remove the outdated tracked composer.phar (Composer 1.10), update actions/checkout to v6

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014TpJhHt7ke8q3BnSZ8wGZf
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.

2 participants