wikimedia / composer-merge-plugin

Merge one or more additional composer.json files at Composer runtime
MIT License
926 stars 160 forks source link

Work around Composer multi-version loading hack using a "V2" namespace #206

Closed tstarling closed 3 years ago

tstarling commented 3 years ago

Composer would try to load two versions of the same plugin, by reading the main plugin file and rewriting the class name. But this doesn't work if the plugin has multiple classes. It tries to run the new plugin class with old helper classes.

So:

Note that the namespace version number will have to be incremented every time there is an internal interface change.

Closes #205

tstarling commented 3 years ago

I'm not really interested in exploring alternative approaches, I just want to release it and move on to the next thing. This way is simple, it works, and it's done already. If @mcaskill approves then I'll merge and release it as 2.0.0.

tstarling commented 3 years ago

I tagged "2.0.0" before I realised that "v2.0.0" would be the correct convention for this package (for other packages I have used the plain version number without the "v"). So I deleted the tag, deleted the package version from packagist, and tagged v2.0.0. I didn't see v2.0.0 in packagist, so I released the same commit as v2.0.1, expecting that packagist got confused about the deleted version. Both v2.0.0 and v2.0.1 did end up in packagist eventually.

The point is, this is released as 2.0.1, please test and enjoy.