Problem/Motivation
Split from #3118143: [meta] Release Drupal 10 on December 14... or 15... 2022.
We released Drupal 8 without the migration path from Drupal 7 being finished, this was in November 2015.
The Drupal 7 migration path should be stable by the time Drupal 9.0.0 releases, this will be just under five years since Drupal 8 was released.
However, there are still more than 700,000 Drupal 7 sites, and Drupal 7 EOL is due on Novermber 28, 2022.
This means we're likely to see an acceleration of Drupal 7-9 migrations in the next 18 months, more bugs uncovered, and migrations added for contrib modules that previously didn't have them (in contrib rather than core except possibly some remaining cases where core replaced a contributed module and there's something to migrate).
Drupal 9 EOL will be 2023.
Drupal 10 will be released in 2022.
On the other hand, Drupal 7 vendor extended support will be provided until at least end of 2024 (well after Drupal 9 EOL and two and a half years into Drupal 10).
Proposed resolution
1. Continue to support Drupal 7 migrations to Drupal 10 in core.
Remaining tasks
None.
Comments
Comment #2
gábor hojtsyAdded Drupal 7 vendor extended support link/time which could IMHO be the deciding factor here.
Comment #3
gábor hojtsyComment #4
anavarreI'm very heavily leaning towards:
Comment #5
gábor hojtsy@anavarre: well, removing migrations from Drupal 7 in Drupal 10 would mean that we keep maintaining the Drupal 7 to Drupal 9 upgrade path until the last Drupal 9 release (which should have the same data structure as the first Drupal 10 release). So you *could* use the contrib module to migrate from Drupal 7 to Drupal 10.0, as it would be entirely compatible with it. Even if it used deprecated code, that would not be the case anymore in the last Drupal 9 release per definition of how we mark deprecated code now. So removing it from Drupal 10 mean that you would still have an up to date migration path but Drupal 10 would not need to maintain it for years onwards.
Also we made the Drupal 7 LTS a commercial program because we did not have community resources anymore to maintain it. The same question applies to the Drupal 7 migration path really. With it being in Drupal 9 (even the Drupal 6 path being in there, see #3010983: Deprecate Drupal 6 and Drupal 7 migrations and move to contrib) we are already keeping it working up until the release of Drupal 10 at least already as it is now, so up until at least end of 2023 (end of support for Drupal 9).
Comment #6
catchOne thing which could influence things here, is we don't know exactly how much work it will be to move the Drupal 6 migrations to contrib.
If we supported the Drupal 7 migration path in Drupal 10, would we require a contrib module for Drupal 11 in order to remove it, or would we just say that Drupal 10's EOL (probably 2026 or so?) is far enough and remove the code outright?
It could end up being less work to support it in core for one major release cycle, than to do the work to move all the migrations + migrate_drupal and etc. out of core to contrib prior to deprecating/removing from core.
But if we have to move it to contrib for Drupal 11 anyway, that would be the most amount of work in total.
Comment #7
anavarreIn the event the Drupal 7 migration path would indeed be stable by the time D9 comes out, IDK how long it'll take before people actually test things on real sites and report back with meaningful data (and corresponding bug reports)? I anticipate we'll know exactly by mid-2021 at best, and possibly later via the LTS. Would it be an option to make our decision based on D7 usage then or will it be too late?
Also, I don't think it's an overstatement to assume if we put this in contrib, in the event criticals bugs are uncovered, we might not be prompt at taking care of them since it won't be a focus for Drupal core anymore (you did mention community resources, which will remain an issue, sadly).
Is it an option that instead of supporting migrating from Drupal 7 for the entire lifespan of Drupal 10 we'd agree to remove migrations in a minor release once D7 LTS is behind us? Or would that break backwards compatibility somehow and it would force us to only remove them in Drupal 11?
Comment #8
gábor hojtsyWell, its a release requirement for Drupal 9 for that to be the case for core stuff. We cannot hold core for lack of contrib migrations which is probably what is going to hit actual sites.
We did undeprecate things in Drupal 8 when it turned out it was not feasible to do what we wanted. So deprecating the module in Drupal 9 would not 100% mean we actually get to remove it if there was a good reason to keep it.
Well, Drupal 7 will also be in vendor's hands at this point, not in the "community"'s hands. The fundamental question here is should the migration path also become "vendor extended"?
Currently the Drupal 7 vendor extended support program says "participation for at least for 3 years in the program", not that that would be the absolute limit. So there is a chance the Drupal 7 vendor extended support program runs longer. (The Drupal 6 LTS program is still running as of now for example). So cannot know for sure now if Drupal 7 vendor extended support will surely end at end of 2024 or not. That said, if it would end, it would be a backwards compatibility change to remove migrate from core in the middle of a major release cycle, so it would need to be kept until Drupal 11 yes.
Comment #9
anavarreThanks for clarifying! 👌
Ha! That's a very good point.
Comment #10
xjmI do think we need to have a D7-D10 migration path, regardless of whether the migrations exist in core or contrib.
How much work was it to port the (non-multilingual) sources and destinations to D9? Were there any challenging issues?
Comment #11
quietone commentedComment #12
tonytheferg commentedNow that Drupal extended D7 EOL to Nov 2022, i think a 7 to 10 migration path will be needed.
https://www.drupal.org/psa-2020-06-24
Comment #13
gábor hojtsyComment #16
quietone commentedCorrect Drupal 7 EOL date.
Comment #17
gábor hojtsyHow much complexity does the exsitence of the Drupal 7 migration path mean in core? Are there potentials of significant improvements if moved to contrib or lowering maintenance overhead from core or is the migration path more like a "what's done is mostly ok/stable"?
Unrelated:
Correcting this to two and a half years. Middle of 2022 + 1.5years is just end of 2023, not end of 2024.
Comment #18
catchI still have the same questions as #6:
If we remove the Drupal 7 migration path, would we also move migrate_drupal and migrate_drupal_ui to contrib at the same time?
Could it end up being less work overall to continue supporting the Drupal 7 migration in Drupal 10, and just remove it entirely (with no contrib replacement at all) in Drupal 11, rather than the two step process of moving to contrib first?
For context there are still about 500,000 Drupal 7 sites.
We also still need to do #3010983: Deprecate Drupal 6 and Drupal 7 migrations and move to contrib.
Comment #19
quietone commentedThis was discussed at the Migrate Meeting 2021-07-15 attended by benjifisher, mikelutz, heddn, marvil07 and srjosh. The short answer is yes, Drupal 10 should support migration from Drupal 7. It was an easy decision because Drupal 7 EOL is after Drupal 10 expected release date. Plus we all we want to provide an upgrade path that is as simple as possible.
Thanks everyone for the discussion.
Comment #20
benjifisherAt some point, we will want to remove support for migrating from Drupal 6 and Drupal 7. We could open another planning issue for that. Will it be in Drupal 11?
For the record, @dinarcon and @quietone also attended the meeting mentioned in #19.
Comment #21
catchWe have #3010983: Deprecate Drupal 6 and Drupal 7 migrations and move to contrib open for Drupal 6, in there I've been wondering if it'd be easiest to remove both together at the same time - which would be Drupal 11 at this point.
We may not even be concerned about supporting them in contrib when we get there, since very worst case someone could install the Drupal 10 LTS beyond the LTS date, migrate into that, then update to a supported version of Drupal 11 and keep going from there, but we should be past the end of Drupal 7 commercial LTS by then.
Comment #22
webchickDrupal 11 seems like a good date to drop support. Thanks for keeping it around for Drupal 10, though. I think there will indeed be folks who wait until then to do their upgrades.
Comment #23
benjifisher@catch, @webchick:
Thanks for the comments. During the meeting last week,
When deciding whether to add a migration feature to core or to a contrib module (often Migrate Plus) we have been using the criterion: is it needed by the core migrations? If most of the core migrations go away, what will the new criterion be?
Comment #24
webchickOn this one, I feel that migrating from X to Drupal is a perennial problem that will persist even until Drupal 2000. :) So it makes sense to me that the criterion would shift to something like "does this make it easier / less buggy / etc. to migrate from X to Drupal"?
Happy to join a meeting to discuss the others!