Problem/Motivation
cckfield plugins were introduced to make migrating cck fields easier but we're now using the same plugin type for D7 fields as well.
This is confusing for developers as 'CCK' was primarily a Drupal 6 concept whereas Drupal 7 had the same functionality in core under the name 'Field'.
Proposed resolution
Rename the plugin type to 'FieldPluginBase' as suggested in #2631736: Cckfield Plugins must distinguish core versions to make it less confusing.
Introduce a backwards compatibility layer for 'CckFieldPluginBase' so that classes that extend that base class don't stop working.
Remaining tasks
The patch in #112 has become too unwieldy to review, so we will split the patch in two:
- The conversion of the CckFieldPuginBase class to just FieldPluginBase, BC layer and required changes to the core migrations using the CCK field plugins. A single conversion a class extending the CckFieldPluginBase.
- All the other conversions of classes extending CckFieldPluginBase and their unit tests. This will be reviewed and handled in a follow-up issue. See follow-up: #2833206: Convert Migrate's cckfield plugins to use the new field plugins
- The split is now accomplished. The patch was shrunk by 30kb as a result and now has only the *necessary* changes.
- Review of the patch is also accomplished. Now all that is left is to commit the patch.
User interface changes
None.
API changes
No API breaks but two deprecations:
- Deprecated the CckFieldPluginBase class, and add a new FieldPluginBase class.
- Deprecate plugin manager class 'plugin.manager.migrate.cckfield', add 'plugin.manager.migrate.field' service.
Data model changes
None.
Comments
Comment #2
mikeryanComment #3
mikeryanComment #4
mikeryanThis would disrupt #2631736: Cckfield Plugins must distinguish core versions, which is clearly more important, so let's not try to do this until that is committed.
Comment #5
mikeryanUnblocked.
Comment #6
mikeryanRenaming stuff makes for a nice mindless Friday-afternoon task... The basic algorithm was to remove "CCK" wherever it appeared next to "field", and otherwise replace it with "field".
Comment #8
mikeryanMissed one file rename...
Comment #9
benjy commentedProbably need a change record here, going to break any contrib modules that have migration paths but I don't think there are many anyway.
Comment #10
vasi commentedComment #11
mikeryanI'd like to add a BC layer where possible (deprecated CCK-named plugins/classes wrapped around the new names).
Comment #12
mikeryanBC layer added, draft change record written. Interdiff was a bit confused by the BC layer, but I'm assuming no one has reviewed too closely so far...
Comment #13
benjy commentedDo we need a BC layer this, Video Embed field was obviously the first contrib module using this, only last week with #2631736: Cckfield Plugins must distinguish core versions and I can't imagine many contrib modules are providing migrations from D6 but not D7 at this point. Seems like other than migrations of custom field types in custom migrations, the BC layer benefits very few people?
Will this cause the processing to run twice?
Comment #14
mikeryanI think at least the plugins need the BC layer - people have been implementing custom Drupal-to-Drupal migration paths and have migrations referencing those plugins, which they will have to edit if we don't have the BC layer.
If you're using the d6_cck_link plugin, it's implemented by the CckLink class which simply wraps the FieldLink class and runs the code in the FieldLink class.
Comment #15
phenaproximaThere's an extra character of whitespace at the end of this line, and the git gods will smite us if it stays.
Same here (the blank line).
Isn't this supposed to return an array?
Ditto here.
Comment #16
mikeryanFixed the trailing whitespace issues.
Perhaps - but this is not an actual change in this patch, that's just code that moved.
Had to reroll for recent changes - interdiff was unhappy because the old patch no longer applies....
Comment #17
mikeryanRerolled and empty array returns added to the tests.
Comment #19
mikeryanRandom update test failure, retesting.
Comment #21
phenaproximaThis patch is a lot less intimidating than it appears. It's just renaming things. And to that extent, it looks completely legit and incredibly thorough. Excellent work, @mikeryan!
My one question is this. If this already constitutes a BC break (and the issue is tagged as such), why are we bothering to keep the deprecated CckField cruft around? Can't we just remove it, flat-out, and break BC?
Comment #22
mikeryanI neglected to remove the tag when I added the BC layer.
Comment #23
phenaproximaWell, if we're going to leave the BC layer in for now, then maybe we can remove the cckfield crap in the next minor version, as suggested by @catch on IRC.
In the meantime, I dig this patch. As far as I'm concerned, RTBC.
Comment #24
phenaproximaComment #26
phenaproximaComment #27
quietone commentedReroll. Only one file didn't apply, core/modules/migrate_drupal/src/Plugin/migrate/CckMigration.php.
Comment #29
quietone commentedMissed that the D7 link migration was changed in #2674090: Unable to migrate D7 link fields. Rolled that in and it passes locally.
Comment #30
catchIf this is no bc break, I think we should consider doing it against 8.2.x, then remove the bc in 8.3.x - that makes it more likely to happen before migrate becomes beta (after which I don't think we could remove the bc). It seems most likely people would be using these in specific migrations, which are less likely to persist beyond a minor release anyway.
Comment #31
quietone commentedSeems to me that the field plugin manager should be of class Drupal\migrate_drupal\Plugin\MigrateFieldPluginManager not Drupal\Component\Plugin\PluginManagerInterface. That's changed, plus some other tidy up.
And removed the reroll tag.
Comment #32
phenaproximaIt actually should be PluginManagerInterface, since we try to type hint to interfaces rather than actual classes. It loosens the coupling in general and makes it easier to mock test objects. Can you restore the original type hint?
Comment #33
quietone commentedIt also makes the IDE complain. But sure. Restored. The only change then is removing two use statements identified by the IDE as not being used. It is easier to see the wee change with interdiff against #29.
Comment #34
phenaproximaSeems completely legit.
Comment #35
hussainwebThe namespace shouldn't really change here. Apart from breaking BC, it also makes this class impossible to find as the directory hasn't changed.
As per standards, this could all be on one line.
Another thing I realized is that since the migrations now use the newer classes, which use the newer annotations, and so on, the tests really don't check for old classes anymore. I don't really care too much about that though.
Comment #36
hussainwebI fixed the points in #35 and also reduced the patch size by detecting more renames. Hopefully, that will be easier to review too.
Comment #37
phenaproximaThis will probably be removed before D9, so let's change "in" to "before".
s/in/before
s/in/before
s/in/before
This interface is missing a deprecation notice.
s/in/before
Why not use in_array() here?
s/in/before
Can we change this to "field configuration and values"?
Whoops! This is the wrong FieldPluginBase.
s/in/before
Let's use $this->container->get() rather than \Drupal::service().
Can we change this to assertInstanceOf() for readability?
I'd rather this were its own test method using the @expectedException and @expectedExceptionMessage annotations.
Let's change all of these to assertInstanceOf().
Can this be its own method with @expectedException and @expectedExceptionMessage?
s/in/before
Comment #38
hussainweb@phenaproxima: Regarding most of your comments for s/in/before/: I think it is how we are interpreting those words. I see your point that it might mean that it will be present in Drupal 9.0 but it also means that it will be removed in Drupal 9.0, which means before Drupal 9.0 is released.
I checked how this is used in other parts of the core and it is mixed. Some places mention in while others use before. To me, the meaning is clear with both (because it is semver).
For point 9, I changed it to 'field config and values' as it goes beyond 80 characters.
I am fixing point 12 even though it's slightly out of scope because it is a simple change, but I think points 13-16 can be a follow-up. Actually, code in points 13 and 15 gets changed in #2787639: MigrateCckFieldPluginManager mixes up its behaviour for creating and loading definitions and then we don't need assertInstanceOf at all.
Comment #39
hussainwebBased on chat in IRC with @phenaproxima, I am changing s/in/before/. I think I got them all.
Comment #41
phenaproximaComment #42
hussainwebRerolling first.
Comment #44
hussainwebThe patch got messed up for some reason. I don't know how but I am inclined to blame OS X.
This patch should apply correctly and apart from the reroll, also changes references to MigrateCckFieldPluginManager.
Comment #46
hussainwebKind of a stupid mistake. :/
Comment #48
hussainwebFixing the failure in plugin manager test.
Comment #50
phenaproximaLooks great!
Comment #51
alexpottI don't see how this is maintaining BC - existing migrations are going to be broken by this change - no?
Comment #52
phenaproxima@alexpott, where are you seeing that? I can't locate the line in question...
Comment #53
benjy commentedThe yaml changes are right at the top of the patch? The call_user_func call moved to FieldMigration which CckMigration now extends.
call_user_func([$this->fieldPluginCache[$field_type], $this->pluginDefinition['field_plugin_method']], $this);Comment #54
mikeryanI see - if someone has an existing migration containing
CckMigration wraps FieldMigration so the right class is used, but then call_user_func() is looking for field_plugin_method and getting cck_plugin_method instead.
The attached patch will fall back to cck_plugin_method if field_plugin_method is not available.
Comment #55
mikeryanYes, git diff 8.2.x works better...
Comment #57
phenaproxima@alexpott explained his comment to me while sprinting yesterday. Nice catch.
Comment #58
alexpottI think the BC layer can been improved.
To do this I would put a const on the class.. on this class the constant would be equal to 'field_plugin_method' and on the old class that has been gutted should override this constant and set it to cck_plugin_method.
This way once we remove the old class we no longer support 'cck_plugin_method' and don't need to remember to change the new class.
Comment #59
hussainwebI couldn't get to this earlier but I had a slightly different approach to solving this. Since the 'cck_plugin_method' only comes in picture when used with CckMigration, it would be better to isolate the changes there. This is what I had in mind.
With the above, the changes to FieldMigration in #55 can be reverted. We could probably add checks to the above but this is just to convey the idea.
The approach in #55 works too but the above code keeps the deprecated parts in the deprecated class and hence easier to remove later.
Comment #60
hussainwebAh, cross-post. The const idea by @alexpott seems like lesser work and better than what I said.
Comment #61
michael_wojcik commentedImplemented alexpott's suggestion of adding a constant that defines which configuration option has the migration processing function.
Comment #62
phenaproximaNo interdiff because I'm getting a weird error from it ("hunk-splitting is required in this case, but is not yet implemented"). But I saw this patch before it was posted, and the changes look OK to me. RTBC.
Comment #63
alexpott@phenaproxima that is because the patch in #61 is not made with with
in the git config... @michael_wojcik see https://www.drupal.org/documentation/git/configure
This is not part of the patch :)
Here's a new patch without that and coding standards fix. Interdiff back to #55.
Comment #64
phenaproximaWell caught, @alexpott. Thank you! Pre-emptively re-RTBC assuming Drupal CI passes.
Comment #65
phenaproximaThis is now soft-blocking #2447727: Add base class for migrating reference fields.
Comment #66
alexpottCommitted and pushed 24f816a to 8.3.x and dbf8ac6 to 8.2.x. Thanks!
Before migrate goes into beta we should get this done - there is a BC layer so existing migrations should not be affected.
Comment #68
bojanz commentedCommitting this to 8.2.x after 8.2.1 was released is odd. As a maintainer I must either drop 8.2.1 support, or use the deprecated classes.
Comment #69
sam152 commenteds/processCckFieldValues/processFieldValues is a BC break, but not sure it's worth fixing given it's such a minor change. Perhaps a mention in the CR.
I've opened #2816529: Any references to CckFieldPluginBase should now use FieldPluginBase. The tests didn't pass locally but will see what the bot says.
Comment #70
bojanz commentedMissed that part. Time to revert this from 8.2.x then?
Comment #72
alexpottAh damn the BC layer doesn't work because the old base class. Untested BC layers suck... let's fix that.
Comment #73
alexpottHere's the fix - I should have spotted this. And we should add a test too.
Comment #74
sam152 commentedShouldn't the method name/call be the other way around?
Comment #75
alexpott@Sam152 nope. We've renamed processCckFieldValues to processFieldValues so I think #73 was correct.
Comment #76
sam152 commentedIf you apply #73, in older plugins there is still no implementation of processFieldValues, which is what the new interface requires. #74 fixes this.
Comment #77
alexpottAh I see @Sam152 is right :) nice one.
Comment #78
alexpottSo we can go one better and add an abstract method to keep the old interface promise alive and well.
Comment #79
alexpottSo we need to add a test module that leverages every aspect of the BC layer added here so we don't break things again.
Comment #80
phenaproximaI stared at this with a befuddled expression on my face for the better part of an hour before I figured out how to write a test for it. As far as I can tell, there's not really much to this BC layer that can be actively tested -- really, it's just the processCckFieldValues() method, and that is what I have added a test for in this patch. Everything else in the BC layer would, I'd think, reveal itself very clearly if it wasn't working -- I imagine that the Migrate tests would be blowing up left and right with complaints about non-existent classes and interfaces, or calls to non-existent methods. If there are other aspects of the BC layer that need explicit tests, I'm all ears.
Apologies that there is no interdiff -- for some reason, despite my best efforts, the patch is always an extra 30 KB when I roll it, so interdiff gives me flak about "hunk-splitting", whatever that means, and refuses to generate an interdiff.
Comment #81
alexpottHere's a proper patch which looks the right size and an interdiff to #78.
Comment #82
alexpottWe need to call process on it and ensure that processCckFieldValues() is called. Atm this is not really testing the BC layer.
Comment #83
phenaproximaOkay. After getting clarification from @alexpott in IRC, here is a better test that actually verifies the BC layer for processCckFieldValues(). Sorry about the continued lack of an interdiff; my git is still misbehaving for whatever reason.
Comment #85
heddnComment #87
heddnActually, there isn't a BC break here. What was I thinking? However, it is blocking #2631698: Fix sub-optimal DX in MigrateFieldInterface, which is a BC break.
Comment #88
prashant.cComment #90
phenaproximaRerolled and fixed the broken test. No interdiff because reroll.
Comment #91
neclimdulThis is almost certainly an API Break. If nothing else there is the new/changed abstract method in CckFieldPluginBase so custom cck migrations would have to change. Whether that's ok is a different discussion.
This doesn't look right and wouldn't apply locally.
Comment #92
mikeryanCould you elaborate on this? What I see in the current patch is that processCckFieldValues() got moved from the interface into an abstract function on CckFieldPluginBase - the signature is the same, and custom plugins derived from CckFieldPluginBase will need to define it either way, so I don't see how they would break.
Looks like someone missed a rebase? Setting "needs work" to fix this...
Comment #93
quietone commentedReroll of the latest patch. Something changed in file/src/Plugin/migrate//process/d6/CckFile.php.
Comment #94
mikeryan@heddn, can you review and possibly RTBC?
Thanks.
Comment #95
heddnDoes this break BC?
Nit.
Issue 2487568 is closed won't fix. Why is this comment in here? I think this came from a re-roll. This entire try/catch was recently removed from the codebase in another commit.
This is still for cck field types, so no need to change the wording here.
Same here. In the BC layer, this is still for cckfields.
BC layer should still call this CCK field values, no?
This is a stray insertion.
Comment #96
heddnWe are fairly close to committing this, but to make it easier for reviews, I've opened #2833206: Convert Migrate's cckfield plugins to use the new field plugins to handle the actual conversion work. Let's slim this back to a single conversion and testing the BC layer. Then punt the rest into the follow-up. With the lack of interdiffs and the re-roll issues we've been facing, I think splitting is going to make things a lot easier.
Comment #97
heddnDiscussed in the weekly migrate meeting and decided that splitting this into two issues has decent rational. Assigning to quiteone for additional follow-up.
Comment #98
quietone commentedFirst, fixes for 2-7 in #95.
Comment #99
quietone commentedRemove the migration ymls.
Tried to do this but then MigrateNodeTest fails.
Comment #100
quietone commentedNeeds a reroll after #2673960: Unable to migrate D7 User cck fields. Tagging as novice for the reroll.
Comment #101
quietone commentedComment #102
steven jones commentedI've re-rolled the patch. There was the expected conflict of the User migrate plugin, whose base class needed to change.
I couldn't seem to get a sensible interdiff, sorry!
Comment #104
heddnre #102 a interdiff isn't necessary for a re-roll. However, it looks like there might be some imports that didn't get fixed-up. Go ahead and give it another try today. It's close.
Comment #105
steven jones commentedAh yeah, sorry, this fixes the obvious issue with the patch in #102.
Comment #107
steven jones commentedApologies for the noise. PHPStorm was even warning me about those.
Comment #109
steven jones commentedI came for a simple-ish re-roll and mistakes aside, I think there's a non-trivial issue remaining now.
Trying to make sense of this patch etc, it looks like maybe the term reference field isn't being migrated properly.
This possibly makes sense, because the
D7TaxonomyTermDeriverclass is using the cckfield BC layer, and callingprocessCckFieldValuesstill I can't see how that makes it back to callprocessFieldValues, but I'm not really sure, sorry!Comment #112
quietone commentedI think D7TaxonomyTermDeriver made it in after this patch in #99. So, update that file to use the field plugins and not cck plugins.
Comment #113
quietone commentedRight, tests pass now. Still to do is
. Anyone up for working on that?
Removing novice and needs reroll tags and setting to NW.
Comment #114
phenaproximaThis is critical because it's blocking a critical: #2447727: Add base class for migrating reference fields
Comment #116
steven jones commentedAny chance you could outline what this involves? From my limited understanding of this issue on of these conversions was performed between the patches in #107 and #112? So we'd be rolling that back? But we already know that won't work. So is it that or is it something else?
Comment #117
heddn@Steven Jones, my comment there is to put in the new plumbing and do only a single conversion. Then punt all the rest to a follow-up. At nearly 100K, this get very complicated to do a valid review. The plumbing by itself is fairly large. So, let's commit it, prove it works by doing a single conversion and do the rest later.
Comment #118
steven jones commented@heddn Okay, so what I'm getting at it is what is a 'single conversion'?
Would an example from the patch in #112 be the conversion of
core/modules/file/src/Plugin/migrate/cckfield/d7/ImageField.phptocore/modules/file/src/Plugin/migrate/field/d7/ImageField.php?So we undo all but one of those conversions and if the patch still passes then we should be good to go, and we pop those individual conversions back in other patches.
Or
Is it that the changes to
D7TaxonomyTermDeriverneed to be rolled back to get this in?It seems like we have a BC layer for the field plugins, but not for the migrations themselves, is that understanding correct?
I.e. people will need to upgrade their migrations that are using cckfield plugins, but people implementing cckfield plugins will get the BC layer.
Comment #119
heddnre #118: the first option. Patch in #112 and a single conversion; the example of ImageField is fine. The rest in a follow-up.
Comment #120
steven jones commentedI applied the patch in #112 and then went through and un-did what I think were all the changes for the 'conversions' leaving the plumbing and hopefully valid tests in place. This is the -no-conversions patch.
I then re-added the changes for the Imagefield, i.e. the single conversion discussed in #118 and #119. This is the -imagefield-conversion.patch
I don't have a local testing environment set up at the moment, so these patches may fail I suppose. If they do I'll get an environment set up and work on them until they don't.
Comment #121
steven jones commentedComment #124
jofitzI've had a go at re-writing the no-conversions patch and will take on the imagefield conversion patch next.
Comment #125
jofitz...and here's an interdiff.
Comment #127
jofitzHere's another attempt at the no-conversions patch from which to base the (single) imagefield conversion patch.
Comment #128
jofitzYet another improved version of the no-conversions patch.
The single conversion patch will be based from (the final version of) this - with the filefield updated (rather than imagefield which only has a D7 version).
Please shout if you think this patch is taking things in the wrong direction - I don't want to be wasting my time!
Comment #130
quietone commentedRerolled the patch.
Comment #131
quietone commentedI understand the intention was to include filefield but I has some errors and thought I would try with the link field. That seems to work, so lets see what testbot finds.
Comment #132
quietone commentedNo, that is wrong. I left in core/modules/link/src/Plugin/migrate/cckfield and didn't update the associated CckLinkTest.
Comment #133
quietone commentedIgnore patch in #131.
Another attempt at add just the link migration.
After too much blank staring at field types, field formatters and field widgets and caffeine I finally spotted something worth changing. It is easy to see by comparing d6_field_instance_widget_settings.yml and d7_field_instance_widget_settings.yml. The d7 version converts 'link_field' to 'link_default' but the d6 version has no similar conversion for 'link'. Simply adding 'link: link_default' in the d6 migration template is an improvement, d6/MigrateNodeTest fails without that change. Although MigrateUpgrade6Test fails on the link migration.
But I've yet to explain why in the full cck environment this works without that change. What am I missing?
Let's see what else the testbot finds.
Comment #135
quietone commentedThe map table error was "Failed to lookup field type array ( 0 => 'link',...". Sorry about the abbreviated error, I didn't save it. In response to that,, this patch adds link to the static map looking in d6_field_formatter_settings.
Comment #137
quietone commentedNo, that is wrong too. Rubber duck (actually, mine is a gnu soft toy) programming isn't working for me on this.
Comment #138
quietone commentedBig thank you to joelpittet for his assistance via a hangout. Full credit to him for finding the problem (and showing me another way to think about the problem), I just made the patch.
There are 7 files that use the new MigrateFieldPluginManager. Six of those try to get the plugin from the MigrateCckFieldPluginManager first and if that fails it then uses the Migrate FieldPluginManager. Just needed to make the 7th file, FieldMigration, do that and things are much better.
This is working locally with the link conversion. But before testing that, let's make sure all the tests pass with these changes to the no-conversions patch.
Comment #140
quietone commentedOK more errors. I'm not sure the 'proper' way to fix FieldMigration and CckMigration. Can someone provide some guidance on that?
Comment #141
jofitzI think all that was missing was a little tweak to Drupal\user\Plugin\migrate\User (which extends FieldMigration which was edited in #138) - locally it now passes the tests that failed on #138, let's see what the testbot has to say...
Comment #142
jofitzNow that we (hopefully) have a stable "no conversions" version, here is a version with a single conversion: linkfield.
(Assuming the testbot passes this patch) we now meet @heddn's requirements from way back in #96. RTBC perhaps?
Comment #143
quietone commented@Jo Fitzgerald, thanks for looking at this again. I noticed that since User.php extends from FieldMigration it doesn't need it own constructor, so I removed all that. And I moved the cckPluginCache property into FieldMigration.
Comment #145
quietone commentedSorry, rename the previous interdiff wrong.
Now apply the changes for the link conversion.
Comment #146
quietone commentedWith that small change we are ready for review.
From #96
After that the goal was to make two patches, one with just the renaming and another with one conversion added. That has now been achieved.
The patch in #143 does the renaming only. The patch in #145 does the renaming plus one conversion. That will prove it works with both cck plugins and field plugins in play and it makes the patch smaller and easier to review. The conversion done is to rename the d6 and d7 link plugins from @MigrateCckField to @MigrateField.
Comment #147
heddnAssigning to myself to review.
Comment #149
jofitzRe-rolled.
Let's get this one moving again and push it over the line.
Comment #151
quietone commentedThe field plugin, LinkField.php, was in the directory cckfield instead of field.
Comment #152
dbjpanda commentedPatch cleanly applied.
Comment #153
quietone commented@dbjpanda, thank you for your review. You say that patch applied, but what other tests or review did you do? What comes to mind is checking that it meets the coding standards, running the relevant tests locally or even running a real migration using this patch. There is more information about Reviewing Patches in the handbook.
For now, setting back to NR.
Comment #154
heddnI think it would make more sense to flip this logic and do try first on the new fieldManager, followed by cck.
And we should re-roll things for #2575081: [policy, no patch] Use E_USER_DEPRECATED in Drupal 8 minor releases and https://www.drupal.org/node/2575081. Almost there.
Comment #155
quietone commentedFlipped the logic on all the occurrances of getting a cck or field plugin so the field plugin is done first. Added the new deprecations and changed the notice to use 8.3.x instead of 8.2.x. Note that there isn't an example for classes, https://www.drupal.org/node/2856615#how-class, so this could be very wrong.
Comment #156
heddnLooks good to me. Not sure about the standards either. But let's see what a committer things. And... drumroll....
This is ready for RTBC again.
Comment #158
quietone commentedBack to the drawing board?
Comment #159
quietone commentedI didn't check every error most there are a significant number of yaml parse errors. I had followed,https://www.drupal.org/node/2856615#how-service, as is but the deprecated can't span lines. So fixed that.
And there was a trailing whitespace error.
Comment #160
Pavan B S commented@inheritoc should be near to the method testPluginSelection() and use short array syntax.
Applying the patch , suggest me comments please,if i am wrong .
Comment #162
jofitzLet's sort out those pesky coding standards.
Comment #163
jofitzOK @heddn, bring on the RTBC! :)
Comment #164
heddnAnd back to rtbc
Comment #165
heddnAttempt to update IS with outstanding tasks.
Comment #166
catchComment #167
alexpotttwo spaces in front of \Drupal - this could have been fixed on commit but there are a couple of other things...
Is this not deprecated too?
These need to be updated to 8.3.x
Comment #168
jofitzOn it...
Comment #169
jofitzMade all the changes from #167.
Comment #170
heddnI think we want to use trigger_error(), no? See #154 & https://www.drupal.org/node/2575081
Comment #171
jofitzI assume you are referring to \Drupal\link\Plugin\migrate\process\d6\CckLink. Should the same apply to \Drupal\migrate_drupal\Plugin\migrate\CckMigration too?
Comment #172
jofitzComment #173
heddnAnd back to RTBC.
Comment #174
heddnQueuing up tests, just to be extra careful. I don't want to see this get reverted.
Comment #175
alexpottRenamed to make it less of a consideration.
Comment #176
heddnRandom failure due to #2860663: UserTimeZoneTest fails on PHP 7.0.x-dev and 7.1.x-dev. But otherwise, tests came back green.
Comment #178
jofitzRetests passed, back to RTBC.
Comment #180
phenaproximaThis appears to have been set back to NW for no reason whatsoever. I blame Drupal CI.
Comment #181
phenaproximaBriefly discussed with @webchick and she thinks this probably needs framework manager review.
Comment #182
catchBoth I and Alex Pott have reviewed this a fair bit (and Alex wrote some of the bc layer), it just kept falling through the gaps of the RTBC queue for me.
Committed/pushed to 8.4.x, thanks! Moving to 'to be ported' for after the 8.3.x code freeze.
Comment #184
quietone commentedThis is now blocking #2665196: Migration for email fields is missing.
Comment #185
mikeryanComment #186
jofitzAlso blocking #2566779: Migration D6 > D8 of CCK date fields.
Comment #188
gábor hojtsyThanks all! Merged this in as per our discussion in person yesterday. Let's unblock everything else :)
Comment #190
heddnTagging for mention in 8.4.0 release notes. This is all related to the same change record: https://www.drupal.org/node/2751897
Comment #191
xjmSince this has a BC layer, follows our deprecation policies, and has a good change record, I don't think it needs a release notes mention on its own. It seems like it was a soft blocker for a number of other critical issues that are mentioned on their own already. :)
Thanks everyone!