-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Drop forceful loading of annotations #10321
Drop forceful loading of annotations #10321
Conversation
Since doctrine/annotations 1.10, autoloading is used when everything else has failed. Using registerFile() has been deprecated in favor of that later on.
* 2.14.x: Drop forceful loading of annotations (doctrine#10321) Document stdClass structures used by CommitOrderCalculator (doctrine#10315) Psalm 5.3.0 (doctrine#10317) PHPStan 1.9.4 (doctrine#10318) add apcu enabled check if apcu extension loaded (doctrine#10310) (doctrine#10311) Add TypedFieldMapper for automatic mapping of typed PHP fields to DBAL types (doctrine#10313)
* 2.14.x: Drop forceful loading of annotations (doctrine#10321) Document stdClass structures used by CommitOrderCalculator (doctrine#10315) Psalm 5.3.0 (doctrine#10317) PHPStan 1.9.4 (doctrine#10318) add apcu enabled check if apcu extension loaded (doctrine#10310) (doctrine#10311) Add TypedFieldMapper for automatic mapping of typed PHP fields to DBAL types (doctrine#10313)
This is a breaking change and shouldn't have been included in a dot release... We have this line in our code: \Doctrine\Common\Annotations\AnnotationRegistry::registerFile('doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php'); And it now breaks the execution with an
|
I had no idea this was used directly like that outside the package itself, so to me it wasn't a breaking change and was therefore OK to include in a minor release. It is mentioned in the |
Many projects have hundreds of dependencies, and checking the changelog of all of them is not feasible. |
Semver does not protect you if you bypass the public API of a package. This package's file structure is not part of its public API. If you include specific files directly you are basically on your own. |
Also, technically everything is a breaking change. For instance, a change to the README can be a breaking change if you do the following in your project: if (md5(file_get_contents('vendor/doctrine/orm/README.md')) === 'some_hash_here') {
// do stuff
} So if everything is a breaking change, nothing is, and it's up to us maintainers to decide what's a breaking change and what isn't. We try to listen though, but you'll have to admit the lecture on semver wasn't necessary, and that the attitude some of your contributors have towards us is not exactly going geared towards understanding and listening: concretecms/concretecms@18b8216 |
What's this document? |
Likewise, if you think we're in the wrong, the right thing to do IMO is not to point it out and attempt to embarrass us in the process. Just state what your argument plainly. Example:
What's so hard about being nice to your fellow maintainers? And even, for the interest of your project, how is this going to make us want to care about your issues? |
When exactly have I been so rude? |
When exactly have I said you were? |
Since
doctrine/annotations
1.10, autoloading is used when everything else has failed. UsingregisterFile()
has been deprecated in favor of that later on.