? PR-5.0-dev Pending

User tests: Successful: Unsuccessful:

avatar richard67
richard67
18 Jun 2023

Pull Request for Issue # .

Summary of Changes

This pull request (PR) adapts the minimum database server version required by the CMS on installation to the versions listed here https://www.joomla.org/announcements/release-news/5868-joomla-5-panta-rhei-the-follow-up.html :

Joomla 5 will support MySQL 8.0.11+, MariaDB 10.4+ and PostgreSQL 12+.

Request for Comments (RFC)

  1. Are the version numbers mentioned above still up to date, or has there meanwhile made a change in the requirements?

  2. Shall we also adapt the minimum version requirements of the database drivers in the 3.0-dev branch of the joomla-framework/database repo and if yes, to which versions, same as CMS requirements or lower?

  1. Which documentation needs to be created or changed where?
    Currently https://downloads.joomla.org/technical-requirements is not prepared yet for Joomla 4.
    The "Joomla! 5x section" on https://developer.joomla.org/roadmap.html doesn't mention the increased technical requirements, and there is no "Joomla! Framework 3.x" section.

  2. Shall we increase the minimum version for MySQL to 8.0.13?

The reason for question 4 is as follows:

Since Joomla 4 the database schema checker and fixer not only handles the CMS core but also 3rd party extensions.

We have some issues reported by extension developers that they want to use CURRENT_TIMESTAMP as default value for datetime columns, but the database checker currently doesn't support that. See e.g. #40765 and joomla-framework/database#267 .

There might be other kinds of expressions which extension developers want to use as default values for their database columns.

While MariaDB supports expressions since version 10.2.1 and PostgreSQL at least since 11, if not longer, MySQL is different:

  • Prior to version 8.0.13, MySQL supports expressions for default values of table columns only for datetime or timestamp columns using NOW or CURRENT_DATE or CURRENT_TIMESTAMP.
  • Since version 8.0.13, MySQL supports expressions without these limitations similar to MariaDB and MariaDB.

See https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html , https://mariadb.com/kb/en/create-table/#default-column-option and https://www.postgresql.org/docs/12/ddl-default.html .

When we want to improve the database schema checker / fixer to be able to handle expressions as default values, which is one thing I plan to work on hopefully soon enough, we can either limit that for MySQL to the functionality of 8.0.11, or we can raise the version requirement to 8.0.13 and implement it without these limitations in a similar way as for the other databases.

@HLeithner @bembelimen Please check the above 4 questions and if necessary discuss in the production department. Thanks in advance.

Testing Instructions

Code review, or try to make a new installation of a curent 5.0-dev branch or 5.0-dev nightly build with a database server which doesn't fulfil the minimum version requirements of Joomla 5, and then try the same with the installation package created by Drone for this PR.

Actual result BEFORE applying this Pull Request

Joomla 5 can be installed using a database server which doesn't fulfil the minimum version requirements of Joomla 5.

Expected result AFTER applying this Pull Request

Joomla 5 cannot be installed using a database server which doesn't fulfil the minimum version requirements of Joomla 5.

Link to documentations

Please select:

  • No documentation changes for docs.joomla.org needed

  • No documentation changes for manual.joomla.org needed

avatar joomla-cms-bot joomla-cms-bot - change - 18 Jun 2023
Category Installation
avatar richard67 richard67 - open - 18 Jun 2023
avatar richard67 richard67 - change - 18 Jun 2023
Status New Pending
avatar richard67 richard67 - change - 18 Jun 2023
The description was changed
avatar richard67 richard67 - edited - 18 Jun 2023
avatar HLeithner
HLeithner - comment - 18 Jun 2023

Are the version numbers mentioned above still up to date, or has there meanwhile made a change in the requirements?

For now yes, but point 4 make sense to change for me

Shall we also adapt the minimum version requirements of the database drivers in the 3.0-dev branch of the joomla-framework/database repo and if yes, to which versions, same as CMS requirements or lower?

https://github.com/joomla-framework/database/blob/3.x-dev/src/Mysqli/MysqliDriver.php#L81-L95
https://github.com/joomla-framework/database/blob/3.x-dev/src/Pgsql/PgsqlDriver.php#L49-L55

That's a good question, our minimum version for our runtime environment is only a "minimum supported version", it is not checked in the framework if the database is really this version, so I would suggest to increase the version in the framework too, because it's unlikely that we fix end of life runtime environment.

Which documentation needs to be created or changed where?
Currently https://downloads.joomla.org/technical-requirements is not prepared yet for Joomla 4.
The "Joomla! 5x section" on https://developer.joomla.org/roadmap.html doesn't mention the increased technical requirements, and there is no "Joomla! Framework 3.x" section.

manual.joomla.org in the migration guide and of course we need to update the technical requirements and downloads.

Shall we increase the minimum version for MySQL to 8.0.13?

I think it makes sense, also 8.0.13 is 5 years old when j5.0 is released. I will run a motion in production for it.

avatar richard67
richard67 - comment - 18 Jun 2023

Shall we also adapt the minimum version requirements of the database drivers in the 3.0-dev branch of the joomla-framework/database repo and if yes, to which versions, same as CMS requirements or lower?

https://github.com/joomla-framework/database/blob/3.x-dev/src/Mysqli/MysqliDriver.php#L81-L95
https://github.com/joomla-framework/database/blob/3.x-dev/src/Pgsql/PgsqlDriver.php#L49-L55

That's a good question, our minimum version for our runtime environment is only a "minimum supported version", it is not checked in the framework if the database is really this version, so I would suggest to increase the version in the framework too, because it's unlikely that we fix end of life runtime environment.

The framework doesn't check against the minimum versions which are defined there so you can use an external database for whatever. But as far as I remember the CMS uses the minimum versions from the framework for the pre-update check because the installation stuff which is changed here is not available when the installation folder has been deleted. But maybe I remember wrong or that has been changed meanwhile.
Update: The stroke through text was wrong. I remember it uses the info from the update sites.

Which documentation needs to be created or changed where?
Currently https://downloads.joomla.org/technical-requirements is not prepared yet for Joomla 4.
The "Joomla! 5x section" on https://developer.joomla.org/roadmap.html doesn't mention the increased technical requirements, and there is no "Joomla! Framework 3.x" section.

manual.joomla.org in the migration guide and of course we need to update the technical requirements and downloads.

With updating the technical requirements and downloads I can't help. For the migration guide on manual.joomla.org I would need a hint on where to add it how.

avatar HLeithner
HLeithner - comment - 21 Jun 2023

motion passed please update minium mysql version to 8.0.13 thanks, btw. I would also fix #40765 in 4.4 to support mysql 8.0.13 syntax.

avatar brianteeman
brianteeman - comment - 21 Jun 2023

motion passed please update minium mysql version to 8.0.13 thanks, btw. I would also fix #40765 in 4.4 to support mysql 8.0.13 syntax.

what is the equivalent mariadb version that is supported by this syntax?

avatar HLeithner
HLeithner - comment - 21 Jun 2023

what is the equivalent mariadb version that is supported by this syntax?

As richard said:

While MariaDB supports expressions since version 10.2.1 and PostgreSQL at least since 11, if not longer, MySQL is different:

so I would expect at least 10.2.1

avatar richard67
richard67 - comment - 21 Jun 2023

motion passed please update minium mysql version to 8.0.13 thanks, btw. I would also fix #40765 in 4.4 to support mysql 8.0.13 syntax.

what is the equivalent mariadb version that is supported by this syntax?

@brianteeman See the details below question 4 in the description (initial post) or this PR:

While MariaDB supports expressions since version 10.2.1 ...

avatar brianteeman
brianteeman - comment - 21 Jun 2023

Sorry didnt read carefully enough

avatar richard67 richard67 - change - 21 Jun 2023
Labels Added: ? PR-5.0-dev
avatar HLeithner HLeithner - change - 21 Jun 2023
Status Pending Fixed in Code Base
Closed_Date 0000-00-00 00:00:00 2023-06-21 09:24:12
Closed_By HLeithner
avatar HLeithner HLeithner - close - 21 Jun 2023
avatar HLeithner HLeithner - merge - 21 Jun 2023
avatar HLeithner
HLeithner - comment - 21 Jun 2023

thanks

avatar richard67
richard67 - comment - 21 Jun 2023

@HLeithner Regarding the framework: I think we shouldn't change the minimum versions there. They are not checked by the framework at all, and in the CMS we use the stricter requirement of the CMS and the framework requirement. The framework package can also be used to connect to another external database, not the one where Joomla is installed in, and this database doesn't need to fulfill the CMS requirements. Also I've noticed that when in past in the 2.0-dev branch of the framework repo the requirements were updated, they were not updated according to the CMS requirements but to what functionality is used in the framework. Let me know if you have a different opinion and think we should update the versions in the framework, too.

avatar HLeithner
HLeithner - comment - 21 Jun 2023

Yes make no sense to change the framework yet except to make clear that we will not fix mysql 5.7 errors for example, more or less like in the cms

Add a Comment

Login with GitHub to post a comment