Closed greg-1-anderson closed 4 years ago
What's your timeline on this? The main blocker here for a 2.0 is #75 which I am not sure what's up with nor if @Toflar will have time to push it forward soon.
Drupal 9.0.0 stable is currently on track to be released in June; it may or may not make it.
With a stable Semver 2.0.0 release in advance of that date, we could probably make Drupal 9.0.0 compatible with Composer 2, even if Composer 2 is not stable by then. Without a Semver 2.0.0 release, we might be able to be partially compatible (e.g. just our Composer plugins, which is the important part).
It's hard to give a firm deadline on the timeline, because whether issues are committed or not depends on a number of factors, and the actions of multiple community members.
Ok, I hope we can make that happen, but we're in the same boat when it comes to holding deadlines :)
Actually I misspoke here. We only need to upgrade to Semver 2.0.0 in Drupal core in order to run our tests against Composer 2. It would be possible to continue testing with Composer 1, but still in fact be compatible with Composer 2, perhaps with some assurances.
e.g. in this patch I re-run just the plugin tests with the Composer 2 cli, with Composer 1 still in vendor, so the functional tests are against Composer 2, but the unit tests are against Composer 1. Not perfect, but maybe the core committers will still think it's okay, especially since there's an earlier patch that ran the whole suite against Composer 2 (not to be committed, but just to test once).
We'll just do our best with what we have. If you could be so kind as to keep this issue open until the 2.0.0 release is tagged, and then close it, then I will use the GitHub notification to spur myself back into action on the Drupal side. 😄
I was waiting for feedback on #75 (or actually https://github.com/composer/composer/pull/8546) but didn't hear anything until last Thursday :) I'm gonna pick up work again soon so we can get this done. Shouldn't be any issue to get this sorted before the Drupal release :)
2.0.0 of semver is out!
Yay! Thank you!
@greg-1-anderson most likely we're looking at releasing a 3.0 here soon as we unexpectedly piled on so much stuff since 2.0.. Would that cause trouble on your end or not? I could also make it a 2.1 but it's more work if we do it with strict BC concerns. Composer 2 will end up having to require the new version, regardless which it is.
@Seldaek I hope that my request for an early 2.0 didn't cause too much inconvenience. It turns out that a stable tag here isn't going to help me much unless Composer 1 also has a release that includes composer:semver: ^1 || ^3
(or whatever).
We have instead kept the issue of the composer/semver upgrade tied to the composer/composer ^2 upgrade, and separated both from the concern of making our Composer plugins compatible with the Composer 2 API. The good news is that Drupal 8.9.x-dev and 9.0.x-dev are compatible with the Composer 2 API on the current HEAD of each respective branch, so it will be possible to use Composer 2 with Drupal 8.9.0 and 9.0.0.
At this point, there probably isn't enough time to get a stable composer/semver 3.0 and a stable release of Composer 1 that optionally uses it, AND get it into 8.9.x / 9.0.x. The upshot of this is that you WILL be able to use Composer 2 with 9.0.0, but you WILL NOT be able to use Composer 2 APIs in the Drupal tests, or composer/semver 2/3 APIs at all until Drupal 9.1 at the earliest.
I think this is okay.
Yeah it's not gonna be possible for Composer to sanely support two versions of semver I'm afraid.. Anyway 3.0 is out here, now back to focusing on Composer 2.0.
Composer 2 testing for Drupal 8.9 / 9.0 dev is in progress.
It might be possible to release a version of Drupal compatible with Composer 2 prior to the release of Composer 2. However, drupal/core depends on composer/semver, and we can't increase our dependency here to 2.x until there's a stable 2.0.0. (Drupal requires composer/composer for testing, so we need to use a composer/semver that is compatible with Composer.)
We can probably still release versions of our Composer plugins that are compatible with Composer 2 in advance even without the new version of composer/semver, which is the important part. If it's possible to tag a stable composer/semver in advance of the stable Composer 2.x, though, it would make things a touch more convenient.