Skip to content

Initial PHP 8.1 support #48

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 17 commits into from
Aug 23, 2021
Merged

Initial PHP 8.1 support #48

merged 17 commits into from
Aug 23, 2021

Conversation

boesing
Copy link
Member

@boesing boesing commented Aug 19, 2021

Q A
BC Break no
New Feature yes

Description

This provides initial support for PHP 8.1.
This setup is very basic and currently only supports pre-compiled extensions by https://github.com/shivammathur/php-builder.
These extensions are:

amqp
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dom
enchant
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imagick
intl
json
ldap
libxml
mbstring
memcache
memcached
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
xml
xmlreader
xmlwriter
xsl
zip
zlib

The xdebug extension is also available but disabled by default (the same way as in all other PHP versions).
pcov is also available and can be enabled.

If any project needs more than these extensions, they need to install these by themselves by using the pre-run.sh script which is being executed on each run.


This supersedes #46

boesing added 17 commits August 19, 2021 23:58
- Every PHP version has its own setup strategy
- Base system has dedicated `ubuntu` strategy
- Markdownlint has its own strategy

Signed-off-by: Maximilian Bösing <[email protected]>
This will check if an extension is already enabled by the PHP version compiled within this action.
Afterwards, it will check if it is pre-compiled but not yet enabled for the PHP version.
If both checks fail, an extension is marked to be installed.

For PHP 8.1, we do not yet support dynamic installation of extensions as we do for earlier PHP versions. This is due to the fact that PHP 8.1 is not yet provided by the Sury debian repository.

Signed-off-by: Maximilian Bösing <[email protected]>
… that needs to be addressed

Signed-off-by: Maximilian Bösing <[email protected]>
Signed-off-by: Maximilian Bösing <[email protected]>
Signed-off-by: Maximilian Bösing <[email protected]>
Signed-off-by: Maximilian Bösing <[email protected]>
Signed-off-by: Maximilian Bösing <[email protected]>
Signed-off-by: Maximilian Bösing <[email protected]>
Modules may depend on each other and thus, if one is enabled (e.g. `redis`), it will also require `msgpack`, `igbinary` and stuff to be enabled on PHP 8.1

Signed-off-by: Maximilian Bösing <[email protected]>
@boesing boesing added this to the 1.11.0 milestone Aug 19, 2021
@boesing boesing requested a review from weierophinney August 19, 2021 22:00
@boesing boesing mentioned this pull request Aug 19, 2021
@boesing
Copy link
Member Author

boesing commented Aug 19, 2021

This PR lacks support for swoole on PHP 8.1.
I have tried to install it from source using 4.7.0 which did not work.
Maybe 4.7.1 does but we can still add that later on.

@weierophinney
Copy link
Member

Copy link
Member

@weierophinney weierophinney left a comment

Choose a reason for hiding this comment

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

🚢

RUN cd /setup/php/7.3 && bash setup.sh
RUN cd /setup/php/7.4 && bash setup.sh
RUN cd /setup/php/8.0 && bash setup.sh
RUN cd /setup/php/8.1 && bash setup.sh
Copy link
Member

Choose a reason for hiding this comment

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

I like this break-down, as it means that we likely won't need to rebuild most layers unless a change actually occurs to an individual script. That said, I see one potential issue being that forcing a rebuild to pick up a new bugfix release may be harder.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, this is indeed an issue.
I will think about it.

Copy link
Member Author

Choose a reason for hiding this comment

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

https://docs.github.com/en/actions/guides/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy

GitHub will remove any cache entries that have not been accessed in over 7 days.

Maybe we won't have any issues due to this fact?

@weierophinney weierophinney merged commit cd8d97d into 1.11.x Aug 23, 2021
@weierophinney weierophinney deleted the feature/php-8.1 branch August 23, 2021 20:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants