Skip to content

maint: move to PHP 8.4, Apache 2.4.68 - #210

Merged
mcdurdin merged 1 commit into
masterfrom
maint/php-84
Sep 10, 2026
Merged

maint: move to PHP 8.4, Apache 2.4.68#210
mcdurdin merged 1 commit into
masterfrom
maint/php-84

Conversation

@mcdurdin

@mcdurdin mcdurdin commented Sep 8, 2026

Copy link
Copy Markdown
Member

Detail in keymanapp/keyman.com#828.

Changes required:

  • move from PHP 7.4 to PHP 8.4 Docker image (upgrades Debian, Apache, PHP as major components)
  • dependency upgrades forced for phpunit
  • addition of BCTLS flag to .htaccess mod_rewrite rules (https://stackoverflow.com/q/75684314/1836776)

See-also: keymanapp/keyman.com#828
See-also: keymanapp/s.keyman.com#1712
Relates-to: #209
Test-bot: skip

Detail in keymanapp/keyman.com#828.

Changes required:
* move from PHP 7.4 to PHP 8.4 Docker image (upgrades Debian, Apache,
  PHP as major components)
* dependency upgrades forced for phpunit
* addition of BCTLS flag to .htaccess mod_rewrite rules
  (https://stackoverflow.com/q/75684314/1836776)

See-also: keymanapp/keyman.com#828
See-also: keymanapp/s.keyman.com#1712
Relates-to: #209
Test-bot: skip
@mcdurdin
mcdurdin marked this pull request as draft September 8, 2026 11:53
@github-actions github-actions Bot added the maint label Sep 8, 2026
@keymanapp-test-bot

Copy link
Copy Markdown

User Test Results

Test specification and instructions

User tests are not required

@github-project-automation github-project-automation Bot moved this to Todo in Keyman Sep 8, 2026
@keymanapp-test-bot keymanapp-test-bot Bot added this to the B19S1 milestone Sep 8, 2026
mcdurdin added a commit to keymanapp/help.keyman.com that referenced this pull request Sep 9, 2026
As the PHP 7.4 image broke with missing security dependencies in Debian
Bullseye (at time of writing, as yet unresolved), resolved to complete
the upgrade to PHP 8.4 rather than try to build a stopgap solution based
on existing PHP 7.4. Unfortunately PHP 8.4 has a number of incompatible
changes in 8.x series, documented at
https://www.php.net/manual/en/migration80.incompatible.php. I have
audited some of the more obvious ones -- but there is potential for
other breakages which we will need to monitor.

Changes required:
* move from PHP 7.4 to PHP 8.4 Docker image (upgrades Debian, Apache,
  PHP as major components)
* dependency upgrades forced for Sentry, phpunit, curl-client, Parsedown
* addition of BCTLS flag to .htaccess mod_rewrite rules
  (https://stackoverflow.com/q/75684314/1836776)
* Fixup of several undefined variables (also fixed in keyboards repo)

See-also: keymanapp/keyman.com#828
See-also: keymanapp/s.keyman.com#1712
See-also: keymanapp/keymanweb.com#210
Relates-to: keymanapp/keymanweb.com#209
Test-bot: skip
mcdurdin added a commit to keymanapp/help.keyman.com that referenced this pull request Sep 9, 2026
As the PHP 7.4 image broke with missing security dependencies in Debian
Bullseye (at time of writing, as yet unresolved), resolved to complete
the upgrade to PHP 8.4 rather than try to build a stopgap solution based
on existing PHP 7.4. Unfortunately PHP 8.4 has a number of incompatible
changes in 8.x series, documented at
https://www.php.net/manual/en/migration80.incompatible.php. I have
audited some of the more obvious ones -- but there is potential for
other breakages which we will need to monitor.

Changes required:
* move from PHP 7.4 to PHP 8.4 Docker image (upgrades Debian, Apache,
  PHP as major components)
* dependency upgrades forced for Sentry, phpunit, curl-client, Parsedown
* addition of BCTLS flag to .htaccess mod_rewrite rules
  (https://stackoverflow.com/q/75684314/1836776)
* Fixup of several undefined variables (also fixed in keyboards repo)

See-also: keymanapp/keyman.com#828
See-also: keymanapp/s.keyman.com#1712
See-also: keymanapp/keymanweb.com#210
Relates-to: keymanapp/keymanweb.com#209
Test-bot: skip
Comment thread build.sh
Comment on lines +49 to +50
builder_run_action composer-start docker_build_and_start_composer_container
builder_run_action composer-stop docker_stop_and_cleanup_composer_container

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Note that these actions depend on an upcoming change to shared-sites. Putting them here for convenience only. They have no other impact.

mcdurdin added a commit to keymanapp/api.keyman.com that referenced this pull request Sep 9, 2026
As the PHP 7.4 image broke with missing security dependencies in Debian
Bullseye (at time of writing, as yet unresolved), resolved to complete
the upgrade to PHP 8.4 rather than try to build a stopgap solution based
on existing PHP 7.4. Unfortunately PHP 8.4 has a number of incompatible
changes in 8.x series, documented at
https://www.php.net/manual/en/migration80.incompatible.php. I have
audited some of the more obvious ones -- but there is potential for
other breakages which we will need to monitor.

Changes required:
* move from PHP 7.4 to PHP 8.4 Docker image (upgrades Debian, Apache,
  PHP as major components)
* update apt process for accessing Microsoft packages on Debian
* add libicu-dev and install intl php extension (not included by default
  in the 8.4 image)
* dependency upgrades forced for Sentry, phpunit, curl-client,
  guzzlehttp/guzzle
* removed unused parsedown, parsedown-extra
* addition of BCTLS flag to .htaccess mod_rewrite rules
  (https://stackoverflow.com/q/75684314/1836776)
* Add unit tests to verify several endpoints - focus on spaces in
  parameters where they are allowed (e.g. legacy keyboard ids)
* Fixup call to `str_getcsv`
* Other minor tweaks as required

See-also: keymanapp/keyman.com#828
See-also: keymanapp/s.keyman.com#1712
See-also: keymanapp/keymanweb.com#210
See-also: keymanapp/help.keyman.com#2655
Relates-to: keymanapp/keymanweb.com#209
Test-bot: skip
@mcdurdin
mcdurdin marked this pull request as ready for review September 10, 2026 08:54
@mcdurdin
mcdurdin merged commit 42dd0c4 into master Sep 10, 2026
6 checks passed
@mcdurdin
mcdurdin deleted the maint/php-84 branch September 10, 2026 08:55
@github-project-automation github-project-automation Bot moved this from Todo to Done in Keyman Sep 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants