Skip to content
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

Merge 4.1.x into 5.0.x #6475

Merged
merged 17 commits into from
Jul 23, 2024
Merged

Merge 4.1.x into 5.0.x #6475

merged 17 commits into from
Jul 23, 2024

Conversation

derrabus
Copy link
Member

No description provided.

grooverdan and others added 17 commits June 21, 2024 11:41
…rine#6435)

<!-- Fill in the relevant information below to help triage your pull
request. -->

|      Q       |   A
|------------- | -----------
| Type         | improvement
| Fixed issues | doctrine#6433

#### Summary

Nightly cron scheduled alternate to doctrine#6433.
ci: nightly - php-8.1 only + workflow_dispatch
I asked internally how it is supposed to end, and got the answer
straight from the horse's mouth.
<!-- Fill in the relevant information below to help triage your pull
request. -->

|      Q       |   A
|------------- | -----------
| Type         | bug/improvement
| Fixed issues | Incorrect & inconsistent QueryBuilder documentation for
aliases in update/delete

#### Summary

In doctrine#6394 the documentation was partially updated to remove aliases for
the documentation for the update method, as the separate parameter for
it was removed in the upgrade from 3.x to 4.x.

Inline aliasing is still possible, and I suspect this was the reason the
extra parameter was removed. ( `->update('users alias1', 'alias2')`)?

This PR readds the alias to the documentation for the occurences in the
linked PR, and also updates the other occurences in docblocks + the
online documentation.
MySQL 9 has been released and 8.4 has been declared to be the LTS
release. I've added MySQL 9 to the test matrix and took the opportunity
to shrink the test matrix a little. Our CI is othen blocked because of
too many concurrent jobs, so we might not want to test all possible
permutations of PHP and MySQL versions.

Taking into account that we're going to maintain the 3.x branch for a
little longer, we need a strategy for not letting the test matrix grow
exponentially with every future PHP or DBMS release.

My proposal for MySQL:

* Test all supported MySQL versions (currently: 5.7, 8.0, 8.4, 9.0) with
the latest PHP version (currently 8.3).
* Test the oldest supported PHP release (currently 7.4) against one
release only (MySQL 8.0) only.

All other PHP releases are tested against SQLite already.

If this proposal is accepted, I'd like to work out a similar strategy
for the other supported DBMS. I think we should also document that
strategy properly then.
<!-- Fill in the relevant information below to help triage your pull
request. -->

|      Q       |   A
|------------- | -----------
| Type         | feature

#### Summary

Recreated PR doctrine#6467 for branch 4.1.

This PR adds support for the `REAL` type for all DBMS, thereby resolving
issues with partial support and potential bugs related to the `REAL`
type in SQL schemas during migration creation. I've tried to explain
this issue in detail through the `INET` type here
doctrine#6466.

Checked DBMS:

- [x] PostgreSQL (represents `REAL` as `float4` or `real`)
- [x] MySQL/MariaDB
(doctrine#6467 (comment))
- [x] MSSQL (represents `REAL` as `real`)
- [x] Oracle (represents `REAL` as `float(63)`) [doc
](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlqr/Data-Types.html)
- [x] IBM DB2 (represents `REAL` as `real`)
- [x] SQLite (represents `REAL` as `real`)
|      Q       |   A
|------------- | -----------
| Type         | improvement
| Fixed issues | Prevents future issues ;-)

#### Summary

PHP 8.4 will support a new error code 4031 in mysqlnd when the
connection is dropped due to timeouts.

It has been introduced in:

mysql/mysql-server@14508bb

And PHP 8.4 will support it:
php/php-src#13618

The PR gets the test suite green again (mysqli + pdo_mysql). I have used
4.0.x as base, but feel free to change according to your preferences.
* 3.8.x:
  Properly handle MySQL error code 4031 from PHP 8.4 (doctrine#6363)
  CI: Add MySQL 9, reduce test matrix (doctrine#6462)
  Complete sentence
  mariadb: add nightly workflow to facilitate mariadb "nightlies" (doctrine#6435)
* 3.8.x:
  Properly handle MySQL error code 4031 from PHP 8.4 (doctrine#6363)
  CI: Add MySQL 9, reduce test matrix (doctrine#6462)
  Complete sentence
* 4.0.x:
  Properly handle MySQL error code 4031 from PHP 8.4 (doctrine#6363)
  CI: Add MySQL 9, reduce test matrix (doctrine#6462)
  Fix update/delete aliases in documentation (doctrine#6470)
  Complete sentence
  Docs: update custom platform example to use middlewares (doctrine#6460)
  ci: nightly - php-8.1 only + workflow_dispatch
  ci: nightly - php-8.1 min version (doctrine#6457)
  mariadb: add nightly workflow to facilitate mariadb "nightlies" (doctrine#6435)
* 4.1.x:
  Properly handle MySQL error code 4031 from PHP 8.4 (doctrine#6363)
  Add SmallFloat type (doctrine#6471)
  CI: Add MySQL 9, reduce test matrix (doctrine#6462)
  Fix update/delete aliases in documentation (doctrine#6470)
  Complete sentence
  Docs: update custom platform example to use middlewares (doctrine#6460)
  ci: nightly - php-8.1 only + workflow_dispatch
  ci: nightly - php-8.1 min version (doctrine#6457)
  mariadb: add nightly workflow to facilitate mariadb "nightlies" (doctrine#6435)
@derrabus derrabus merged commit 162caab into doctrine:5.0.x Jul 23, 2024
74 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants