Problem/Motivation

Sources and destinations are sharing some common methods like getIds() and fields(). They are referring exactly the same things but each on the opposite endpoint of the pipe.

Proposed resolution

Create a new interface \Drupal\migrate\Plugin\MigrateEndpointInterface and move ::getIds() and fields() from MigrateSourceInterface and MigrateDestinationInterface there. Make MigrateSourceInterface and MigrateDestinationInterface extend the new MigrateEndpointInterface. I'm not sure that the "endpoint" term from the interface name is the best - I'm not a native English speaker. By that, I want to describe something that is either source or destination. Opinions?

Right now, this hard blocked by #2543568: Remove the md_entity destination plugin hack but depends also on #2783715: Entity destination ID schema should match entity ID definition in terms of documentation.

Remaining tasks

Un-postpone when #2543568: Remove the md_entity destination plugin hack is in.

User interface changes

None.

API changes

None.

Data model changes

None.

CommentFileSizeAuthor
#5 2820642-5.patch10.67 KBclaudiu.cristea
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

claudiu.cristea created an issue. See original summary.

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

quietone’s picture

Status: Postponed » Active

No longer postponed

claudiu.cristea’s picture

Issue summary: View changes
Status: Active » Needs review
FileSize
10.67 KB

I guess this is all (still not sure on the destination deprecated parameter, while we cannot change the signature in dest interface because of PHP 7.2)

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.4 was released on January 3, 2018 and is the final full bugfix release for the Drupal 8.4.x series. Drupal 8.4.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.5.0 on March 7, 2018. (Drupal 8.5.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.5.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

heddn’s picture

What purpose does adding the interface serve? There doesn't seem to be a compelling reason to do this.

phenaproxima’s picture

Status: Needs review » Postponed (maintainer needs more info)

We discussed this in the Migrate maintainer call, and I'm not 100% convinced that this is needed either. It is a little cleaner, but I don't think it confers a lot of benefit now that Migrate's API is stable. I'm open to being persuaded otherwise, though.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.6 was released on August 1, 2018 and is the final bugfix release for the Drupal 8.5.x series. Drupal 8.5.x will not receive any further development aside from security fixes. Sites should prepare to update to 8.6.0 on September 5, 2018. (Drupal 8.6.0-rc1 is available for testing.)

Bug reports should be targeted against the 8.6.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

quietone’s picture

Status: Postponed (maintainer needs more info) » Closed (won't fix)

Discussed at the migration meeting today on Slack and there were no objections to closing this issue, including from claudiu.cristea.

Closing as won't fix.