Closed TiSiE closed 3 years ago
The Laminas wrapper module for Doctrine MongoODM has not yet released a version compatible with Doctrine MongoODM 2.x
https://github.com/doctrine/DoctrineMongoODMModule/pull/222
We should wait till its released.
OK, let's wait
Here are the migration guides from doctrine/mongodb-odm:
https://github.com/doctrine/mongodb-odm/blob/2.1.2/UPGRADE-2.0.md https://github.com/doctrine/mongodb-odm/blob/2.1.2/UPGRADE-2.1.md
Version 3.x of doctrine/DoctrineMongoODMModule is now released.
@kilip If you want, can you migrate YAWIK to Doctrine Mongo ODM 2 and doctrine/DoctrineMongoODMModule 3? That would be awesome. Simply assign this issue to yourself. Ty
@TiSiE yes I can working on this issue
@kilip
I can see, that you've committed the first commit into you fork. And it's displayed here, because you've mentioned the Issue in the commit message.
OK.
Shall we do something? Or should we just wait for your pull request?
@cbleek I will make a pull request when it's ready.
Do you already have an idea how much time you will need to complete the tasks?
@cbleek Don't know exactly how much time I need. Because there are a lot of major changes required by mongodb-odm 2.0 which will be affecting all paginator (since Doctrine Cursor class is removed without replacement), and all tests that mocking a Doctrine Final Class (Query, UnitOfWork, etc now marked as Final Class).
I am now have all behat tests passed, and 20 errors on phpunit tests. I hope this week I can make a pull requests.
Thank you. That's OK. just go on.
Can you commit your changes to your issue-591 branch on occasion?
@kilip if I run a "composer install" on the latest version, I get a fatal error.
Do you have any idea?
cbleek@php7-cb:~/kilip-yawik$ composer install
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
In Laminas\DependencyPlugin\DependencyRewriterV2::onPrePoolCreate
Nothing to install, update or remove
Package container-interop/container-interop is abandoned, you should avoid using it. Use psr/container instead.
Package doctrine/reflection is abandoned, you should avoid using it. Use roave/better-reflection instead.
Package paypal/rest-api-sdk-php is abandoned, you should avoid using it. No replacement was suggested.
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
Generating optimized autoload files
composer/package-versions-deprecated: Generating version class...
composer/package-versions-deprecated: ...done generating version class
PHP Fatal error: Declaration of Symfony\Component\Console\Style\OutputStyle::write($messages, bool $newline = false, int $type = self::OUTPUT_NORMAL) must be compatibth Symfony\Component\Console\Output\OutputInterface::write($messages, $newline = false, $options = 0) in /home/cbleek/kilip-yawik/vendor/symfony/console/Style/OutputSthp on line 52
Fatal error: Declaration of Symfony\Component\Console\Style\OutputStyle::write($messages, bool $newline = false, int $type = self::OUTPUT_NORMAL) must be compatible wimfony\Component\Console\Output\OutputInterface::write($messages, $newline = false, $options = 0) in /home/cbleek/kilip-yawik/vendor/symfony/console/Style/OutputStyle.p line 52
cbleek@php7-cb:~/kilip-yawik$ git log -1
commit af05f490cc8aaaf2a8a827d6bedc664519968335 (HEAD -> issue-591, origin/issue-591)
Author: Anthonius Munthi <me@itstoni.com>
Date: Fri Dec 4 15:53:22 2020 +0800
added 0.36 migrator
@cbleek
yawik/composer-plugin
package is broken. Just run composer install with --no-scripts
: composer install --no-scripts
@TiSiE @cbleek
Upgrade summary:
alcaeus/mongo-php-adapter
library is no longer needed. I have remove it from composer dependencies../bin/console migrate
in order to make old GridFS bucket to be compatible with doctrine odm 2.0. This command will rename/move GridFS bucket field into metadata.* field. Here's a reference on new doctrine GridFS upload method: https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/storing-files-with-gridfs.html
PHP Fatal error: Declaration of Symfony\Component\Console\Style\OutputStyle::write($messages, bool $newline = false, int $type = self::OUTPUT_NORMAL) must be compatibth Symfony\Component\Console\Output\OutputInterface::write($messages, $newline = false, $options = 0) in /home/cbleek/kilip-yawik/vendor/symfony/console/Style/OutputSthp on line 52
I cannot see how this could be a problem in yawik/composer-plugin? Looks like a problem in symfony/console
However, browsing symfony issues, it may be that dependencies are installed for a different php versions - which is not the case, since we require php 7.4 now...
@cbleek @kilip see https://github.com/symfony/symfony/issues/39368
We have a big problem with this composer-plugin issue.
The OutputInterface of Symfony has changed in symfony/console 5.x .
When running a plugin, composers internal dependencies override the dependencies defined in composer.json.
Composer 2.0 uses symfony/console 2.8
When the yawik/composer-plugin is run, it uses Core\Application to initialize the Yawik application, which creates a SymfonyStyle instance in the clearCache method. Here, the SymfonyStyle class from the console 5.x package is used, but the OutputInterface it must implement is loaded from composers console 2.8 package - hence the incompatible declarations.
We must use symfony/console 5.x because it#s required by DoctrineMongoODMModule.
According to https://github.com/composer/composer/issues/9531 , composer 2.2 should have more recent symfony dependencies.
The only solution I see for now is to not use symfony/console in the plugin and Core\Application
@kilip I will handle that
@kilip I've merged your PR into odm-module3. The brnch ist running at https://staging.yawik.org
I create Issues for things, which I nitice. Please feel free to assign them to yourself
Update 23.11.2020:
We want YAWIK to run with Doctrine Mongo ODM 2.x
We need doctrine/DoctrineMongoODMModule Version 3.x as this version finally support Doctrine ODM 2.x