Updated: Comment #0
Problem/Motivation
- At DrupalCon Prague, core maintainers agreed to stop using the database update system for major version upgrades, and to instead replace it with a core Import API that may be added after 8.0 is released. Details: https://groups.drupal.org/imp
- Despite this decision, 8.x core still retains not only existing
hook_update_N()
implementations for the 7.x to 8.x migration, but also upgrade path tests for these migrations. - Testbot therefore spends a nontrivial amount of time testing a database upgrade path that will not be used (the tests are some of the slowest in the test suite), and core developers also have to troubleshoot failures in automated tests that do not test anything that will be a part of the 8.0 release.
Proposed resolution
- Remove the existing upgrade path tests (for major version upgrades) and testing architecture.
- Retain the tests for the "update path" (minor version upgrades) as the plan is to continue using these for minor version updates, at least for now.
- Retain the D7 database dumps as these may be useful for testing the migration path eventually. (?)
- Stop requiring upgrade path tests for D8 data model changes; test coverage should be added for each as migrations are created for them, per the testing gate.
Removing the hook_update_N()
themselves is out of scope for this issue and will be discussed separately.
Remaining tasks
- All done!
API changes
UpgradePathTestBase
is removed.
Text for change notification
Drupal 8 will use a new Import API to migrate data between Drupal installations, instead of update.php
. For this reason, UpgradePathTestBase
and all existing automated tests for the deprecated 7.x to 8.x upgrade path have been removed.
A different base class will be used for testing Drupal 8 data imports; for details, see Writing Upgrade Path Tests.
Related Issues
https://groups.drupal.org/imp (BTW, this should really have a sparkly new 8.x meta if it doesn't yet, and a canonical issue tag.)
Comment | File | Size | Author |
---|---|---|---|
remove_upgrade_path_tests.patch | 129.91 KB | xjm | |
Comments
Comment #1
xjmComment #2
chx CreditAttribution: chx commentedThe dumps are needed cos the cherry on the migrate cake is when those dumps upgrade just fine.
Comment #3
xjmI made rough updates to https://drupal.org/node/1429136 so I think we're ready to go. Yay.
Comment #4
catchNot committing just yet but raising priority so this gets in sooner rather than later.
Comment #5
xjmCreated an unpublished change notification at https://drupal.org/node/2135739 and added the text to the summary for review.
Comment #6
xjmComment #7
webchickSeems like something we could get into alpha5.
But it's worth pointing out that once we support
head2headrelease2release upgrades (which afaik we're targeting from beta1 on), we'll need to start reintroducing these tests once again for further schema changes. So I don't think removing the base classes and such is a good idea. Needs work for that.Comment #8
webchickAnd then, that possibly means keeping a test or two around for said base class so we don't horribly break it between now and beta1. Hm.
Comment #9
xjmThis patch does not remove the minor version update tests; those use a separate base class, as per the second bullet in the proposed resolution. See:
http://drupalcode.org/project/drupal.git/tree/refs/heads/8.x:/core/modul...
https://drupal.org/node/1429136
Comment #10
xjmComment #11
catchYes this is fine since have separate test infrastructure for minor updates vs. major and it leaves the minor update tests in place. Committed/pushed to 8.x, thanks!