Follow-up to #2825215: Media initiative: Roadmap
Follow-up to #2831274: Bring Media entity module to core as Media module

Instructions for porting media modules to the refined core Media API.

Update path for Media Entity

#2880334: Add update path of media_entity config changes from 1.x to core media module

Media provider modules update

There are already several media provider modules that extend functionality of
Media entity:

Reported installs* -Branch
✓Release
Module Issue
- ✓ 4.x 500px #2940371: Have a version to work with Media from core
923 ✓ 2.x Audio #2864024: Audio Port to the proposed Media core module API
52 - Audio Embed Field -
136 - Brightcove #2820436: Integrate with media (now in core)
- - 2.x Carto #2916982: Support Media core module (Drupal core 8.4.x-dev)
16,281 ✓ 2.x Crop #2908544: Support media module in the Drupal core (introduced in 8.4.x)
8,714 ✓ Core Document #2883449: Provide upgrade path for media_entity_document config changes to Drupal core
#2870140: [PP-1] Document Port to the proposed Media core module API
2 - Dailymotion -
30,968 - Devel #2912102: Generate core Media entities
10,653 ✓ 2.x Dropzonejs #2897255: Support Media core module (Drupal core 8.4.x-dev)
18,894 ✓ 2.x Entity Browser #2902324: Create a new branch compatible with the new Media in core API
- - Kaltura -
278 ✓ 2.x Facebook #2869021: Facebook Port to the proposed Media core module API
48 - 4.x Flickr #2902676: Porting to Media Entity API in core
6 ✓ 4.x Google Docs #2938830: [META] Upgrade to work with Media provided by Drupal 8.4
15,236 ✓ Core Image #2831937: Add "Image" MediaSource plugin
#2883452: Provide upgrade path for media_entity_image config changes to Drupal core
#2925712: Media Entity Image 8.x-2.x - core Media API roadmap & integration
10 - Imgur -
21,483 Inline Entity Form #2912010: Create a branch of IEF compatible with Media in core (>= 8.4.x)
4,687 ✓ 2.x Instagram #2880122: Create a port of media_entity_instagram compatible with media in core API
- - IPTC Media #2908468: IPTC media port to the proposed Media core module API
- - Libsyn -
- - Lightning - 500px -
- - Lightning - Facebook -
- - Lightning - Flickr
- - Lightning Imgur -
- - Lightning Pinterest -
- - Lightning - Soundcloud -
- - Lightning - Spotify -
- - Lightning - Tumblr -
1,353 ✓ 2.x Media Entity Browser #2906068: Create a new branch compatible with the new Media in core API
800 ✓ 2.x Media Expire #2905324: Port to the proposed Media core module API
432 ✓ 2.x Pinterest #2905333: Pinterest Port to the proposed Media core module API
797 - Plugin
22 ✓ 3.x Riddle Marketplace #2912728: Create a port of riddle_marketplace compatible with media in core API
3,081 - 2.x Slick Media #2905335: Slick Media Port to the proposed Media core module API
65 ✓ 2.x SlideShare #2902318: Create a port of media_entity_slideshare compatible with media in core API
2,755 ✓ 2.x Slideshow #2869308: Slideshow Port to the proposed Media core module API
221 ✓ 2.x Soundcloud #2870174: SoundCloud Port to the proposed Media core module API
58 - Spotify #2912612: Create a port of media_entity_spotify compatible with media in core API
32 - 2.x Tumblr #2912613: Tumblr Port to the proposed Media core module API
4,815 ✓ 2.x Twitter #2869157: Twitter Port to the proposed Media core module API
828 ✓ 2.x Video (local) #2916564: Create a port of media_entity_video compatible with media in core API
24,843 ✓ 2.x Video Embed Field #2902316: Create a port of video_embed_media compatible with media in core API
10 - Vimeo Discussion: #2912858: Do we really need this module - where is the difference to video_embed_field
6 - Woodwing Elvis DAM -
- - - -

* Reported installs: Approximate number of reported installs, as of Oct, 2017.

Comments

naveenvalecha created an issue. See original summary.

xjm’s picture

Title: [PP-1] Plan for Contributed Modules after 2831274 » [PP-1] Plan for contributed modules with Media Entity API in core

Clarifying what the node ID is for those who don't have it memorized. Thanks @naveenvalecha!

naveenvalecha’s picture

Issue summary: View changes

Added issue link for facebook and media_entity_audio

Thanks @xjm Could we get the reviews on the recent ports media_entity_facebook and media_entity_audio

//Naveen

naveenvalecha’s picture

Issue summary: View changes

Added child issues for media_entity twitter and media_entity_image

//naveen

naveenvalecha’s picture

Issue summary: View changes

Added inline_entity_form, Devel and Plugin module to the list.

//Naveen

naveenvalecha’s picture

Issue summary: View changes

Added sub-issue of SlideShow module #2869308: Slideshow Port to the proposed Media core module API

//Naveen

naveenvalecha’s picture

naveenvalecha’s picture

Issue summary: View changes

Added link of media_entity_document issue #2870140: [PP-1] Document Port to the proposed Media core module API

//Naveen

chr.fritsch’s picture

naveenvalecha’s picture

naveenvalecha’s picture

Issue summary: View changes

Converted unordered list to ordered list.

naveenvalecha’s picture

geek-merlin’s picture

Hi all, i boldly added #2879969: Make Media field mappings reusable between media types here as i feel this will be an issue and i might put some effort into it.
Please can somebody who knows the media issue space and agenda better tell what's a good place for it - thanks!

EDIT: Picked the wrong issue, moved to #2825215: Media initiative: Roadmap

naveenvalecha’s picture

Title: [PP-1] Plan for contributed modules with Media Entity API in core » Plan for contributed modules with Media Entity API in core

This is no longer a blocker issue.

naveenvalecha’s picture

Status: Postponed » Active

This issue is unblocked now as the main patch #2831274: Bring Media entity module to core as Media module is in :)

//Naveen

seanB’s picture

Issue summary: View changes
Gábor Hojtsy’s picture

SeanB just wrote this in the media meeting on this topic: We need to target media_entity / media_entity_document and media_entity_image as those will be the modules we actually will deprecate. Other modules will probably need to release new versions to adapt to the new API. I think that is mostly what is going on in this issue but more related issues would need to be opened for sure.

marcoscano’s picture

Just extending from #17 on possible scenarios, with the purpose of being explicit and having everyone on the same page :)
(I believe we are, but as they say... "better explicit than implicit")

I'm assuming all scenarios below are happening when Drupal 8.Y is released, where "Y" here is the version from which we will start saying "don't use media_entity contrib anymore because media is in core now". Based on https://www.drupal.org/node/2825215#followup-roadmap I "think" this will be 8.5, but TBH I'm not 100% sure about the consensus here. This would be also the point in time where we start officially considering media_entity (& co.) deprecated.

Scenario 1: A new site is built after 8.Y

- The site uses / wants to use:
-- media entities
-- files
-- images
-- "foo" media source (with stable 2.x branch)
-- "bar" media source (without stable 2.x branch)

This site is strongly encouraged to use the media-in-core path and contribute to port the source plugin "bar" during the site's development effort.

Scenario 2: An existing site uses media entities and needs to upgrade to 8.Y due to a security release

- The site uses:
-- media_entity
-- media_entity_document
-- media_entity_image
-- "foo" media entities (with stable 2.x branch)

This site will need to follow the upgrade paths:
#2880334: Add update path of media_entity config changes from 1.x to core media module
#2883449: Provide upgrade path for media_entity_document config changes to Drupal core
#2883452: Provide upgrade path for media_entity_image config changes to Drupal core
+ whatever the "foo" source plugin has defined in its upgrade path.

Scenario 3: An existing site uses media entities and needs to upgrade to 8.Y due to a security release

- The site uses:
-- media_entity
-- media_entity_document
-- media_entity_image
-- "foo" media entities (with stable 2.x branch)
-- "bar" media entities (without stable 2.x branch)

This site has then 2 options:

3.a) Stick with media_entity contrib
In this case the site will upgrade core to 8.Y but will continue using the whole set of solutions from contrib (i.e. media_entity 1.x). This example shows why it is important to ensure that whateaver is added to 8.Y, it shouldn't break existing sites that want/need to keep using contrib media_entity modules for some time.

3.b) Upgrade "on their own"
Many sites may be able to:
- have their teams to develop their own upgrade path to "bar" entities
- use an untested / non-stable patch from the "bar" issue queue
- even maybe drop entirely the "bar" entities from their site
so they can still fall into scenario 2 above and upgrade everything. IMHO this shouldn't be considered the rule though.

Does this make sense? Have I missed any other possible scenario?

marcoscano’s picture

Oh there is indeed another one:

Scenario 4: An existing site uses the D8 "media" module itself and needs to upgrade to 8.Y due to a security release

- The site uses:
-- The D8 version of media
-- media_entity
-- media_entity_document
-- media_entity_image
-- "foo" media entities (with stable 2.x branch)
-- "bar" media entities (without stable 2.x branch)

This site unfortunately won't be able to opt to something like 3.a, because in 8.Y core media will have taken the namespace of the media module. The only option this site has will be to uninstall the module and delete it from the codebase before upgrading to 8.Y.
This sounds a big deal, but should be mitigated by the following:
- There was never a stable release of media for D8 (only -dev), and its usage doesn't seem to indicate there was time enough for it to be adopted by many real sites
- Media in D8 was mainly a glue module that provided some default configuration, some CSS, JS and other tweaks. Once it relied always on the media_entity(_*) suite, all storage layer and configuration will still be compatible to the new media-in-core.
- Because of the point above, all upgrade paths indicated in Scenario 2 would be directly applicable here, and the additional work would be to:
-- effectively uninstall / remove the media module itself
-- follow all upgrade paths from Scenario 2 for the config renaming and API code changes
-- potentially apply back (in custom code or by some additional contrib module) the tweaks that the "glue code" implemented in the media module.

seanB’s picture

Scenario 3 is the most problematic obviously. There could be a conflict when we want people to use media instead of file and image (and we change things in core with this in mind) but people not being able to remove media_entity yet because of contrib modules not being ready.

This is something we should discuss some more. If we need to wait with the deprecation of media_entity until all contrib modules have an upgrade path, this significantly increases the amount of work. On the other hand we can't force people to upgrade when we know their site will break if they use certain modules.

seanB’s picture

Issue summary: View changes

Adding the media_entity issue as well. That should be on the top of this list :)

We should also decide which are the must have and the nice to haves on this list, since when you update media_entity to core, you will need to update all contrib modules as well!

marcoscano’s picture

Issue summary: View changes

Added new modules to the IS:

- brightcove
- media_entity_dailymotion
- media_entity_vimeo
- media_entity_carto
- media_entity_imgur
- media_entity_kaltura
- media_entity_d500px
- iptc_media
- media_entity_libsyn

xjm’s picture

Issue summary: View changes

Adding a link to the CR at the top of the summary.

marcoscano’s picture

Issue summary: View changes

Added dropzonejs to the IS once it provides an entity browser widget that relies on the 1.x API.

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

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now 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.

Berdir’s picture

I think entity browser itself also needs to be added here. AFAIK, so far it was media_entity that provided entity_browser integration, that will need to be moved to entity_browser now.

marcoscano’s picture

Issue summary: View changes

Some small IS improvements, linking to some issues on contrib module queues.

marcoscano’s picture

Issue summary: View changes
webchick’s picture

In case it is helpful for prioritizing efforts, I (non-comprehensively) cross-referenced the list of modules in the issue summary with top Drupal 8 modules by usage and here's a "top 10" list based on that:

  1. Devel - 25K sites
  2. Video Embed Field - 20K sites
  3. Inline Entity Form - 17K sites
  4. Entity Browser - 15K sites
  5. Media Entity - 14K sites
  6. Embed - 13K sites
  7. Entity Embed - 12K sites
  8. Media Entity Image - 11K sites
  9. Dropzonejs - 8K sites
  10. Media Entity Document - 7K sites

After that, it starts to fall off more significantly; Media Entity Twitter is the next highest @ 4K sites. Given there are currently 161K Drupal 8 sites, we're talking about the remainder being effort expended for <= 2% of sites out there.

paranojik’s picture

Issue summary: View changes
chr.fritsch’s picture

Issue summary: View changes
chr.fritsch’s picture

Issue summary: View changes
webchick’s picture

Issue summary: View changes

Fixing link to Slick Media.

marcoscano’s picture

Issue summary: View changes

Added Media Entity Browser to the IS

webchick’s picture

Issue summary: View changes

Audio Embed Field is no longer a sandbox.

webchick’s picture

Issue summary: View changes

Lightning Media Flickr is there twice.

eliechoufani’s picture

Issue summary: View changes

IPTC media port to the proposed Media core module API

marcoscano’s picture

Issue summary: View changes

Adding a reference to the IEF issue (#2912010: Create a branch of IEF compatible with Media in core (>= 8.4.x)), even if there's nothing needed there right now.

marcoscano’s picture

Issue summary: View changes

After talking to @seanB and @phenaproxima, we agreed that the best is to have the media_entity upgrade (#2880334: Add update path of media_entity config changes from 1.x to core media module) deal with the config updates for images and files, so we can also cross off those two issues from the list.

marcoscano’s picture

marcoscano’s picture

Issue summary: View changes

Adding a link to #2912102: Generate core Media entities to the IS.

SteffenR’s picture

lucastockmann’s picture

Issue summary: View changes

Add related issue for Media entity Spotify.

SteffenR’s picture

chr.fritsch’s picture

Issue summary: View changes

Twitter landed!

chr.fritsch’s picture

slashrsm’s picture

Issue summary: View changes

Audio and Slideshow landed!

SteffenR’s picture

Issue summary: View changes

Added missing issue for media_entity_flickr.

SteffenR’s picture

Issue summary: View changes
chr.fritsch’s picture

mattlt’s picture

Issue summary: View changes

I found the list hard to read, but if this doesn't look good I'll put it back. Apologies if anyone hates it.

- Alphabetized.
- Updated some modules.
- Turned into a table.
- ✓ means I found a release available, - means branch is available but no release.

mattlt’s picture

Issue summary: View changes

Added back the link to the bright cove issue.

slashrsm’s picture

The ordering was reflecting number of sites that are using each plugin AKA priority for porting. With the alphabetical ordering we lost this info. I'd return to the by priority sort or add number of usages of each plugin into the table.

Other than that I like the new look.

chr.fritsch’s picture

chr.fritsch’s picture

mattlt’s picture

Issue summary: View changes

Added status numbers back in. Sorry.

mattlt’s picture

Issue summary: View changes

Formatting.

mattlt’s picture

Issue summary: View changes

Formatting again. Last one. Sorry.

marcoscano’s picture

Issue summary: View changes

@mattlt Thanks for helping out with that! The table looks definitely better than the list we had before.

Re: sorting, I believe the original sort order was lost at some point along the way when people (myself included) started adding new items to the end of the list. To make it easier, I have changed the "Priority" column to be "Reported installs" (or one approximation at least), so we don't need to bother with the list order, and still have a way of identifying the most likely used modules.

chr.fritsch’s picture

phenaproxima’s picture

xjm’s picture

Is anything planned for the File Entity module? Some users are running into issues with File Entity's entity/field definitions when upgrading to 8.4.0, so the question has come up as to whether these users could eventually migrate to core media. (Unfortunately I don't think it solves the immediate issue for those sites, but still worth knowing.)

garphy’s picture

Issue summary: View changes

Added issue for media_entity_video.

Daniel Korte’s picture

Released 8.x-2.0-alpha1 for media_entity_video.

Daniel Korte’s picture

Issue summary: View changes
plopesc’s picture

Issue summary: View changes
keithdoyle9’s picture

I'll second the ask. Is anything planned for the File Entity module? I'm running into issues with File Entities entity/field definitions when upgrading to 8.4.0 and would like to set up an migration path to core Media. Or at least have a fix for File Entity so that we can upgrade to 8.4.0.

marcoscano’s picture

Re: #62 and #67:

In the contrib space sites would normally choose between the "File Entity" approach OR the "Media Entity" approach. So as a starting point, IMHO, I would say that the upgrade from a site using file entities to core Media shouldn't be included as part of the effort described in this issue (Media Entity upgrade).

Having that said, I don't see why a migration shouldn't be possible, and why potential issues that needed to be ironed out on that process couldn't be solved as part of #2835825: Add d8 media migration (or follow-ups).

Berdir’s picture

As much as I'd like to be able to provide an upgrade path from file_entity, that will be so much more complicated than a media_entity => media migration, where the main concepts stay basically the same, we just renamed a bunch of things. File entity is an entirely different architecture.

From the top of my head, those are all things that would need to be done:

* Convert file types to media types
* Create replacement fields on media types that existed on different file types
* Create a media entity for all those files, migrate the data of the fields
* Convert file/image fields referencing those fields to an entity reference and update them to point to the media entity instead
* Also update widget/formatter configurations and everything related to that, e.g. someone might have used entity browers with upload widgets, file views and so on
* And then also lots of manual/code things, like templates

That said, quite a few of those things will also be needed (minus the file types and fields basically) if we ever want to offer a migration/update from old/plain core file/image, and as it wouldn't make sense to do those things twice, I believe a file_entity migration will only become something to look into once we figured out how to deal with the plain core file/image stuff.

larowlan’s picture

Issue summary: View changes

Updated summary to reflect media entity browser now has a compatible 2.x branch

jwilson3’s picture

Issue summary: View changes

Media Entity Image might still need a 2.x version to get the EXIF support which core left out. Did any other things get left out? Discuss here: #2925712: Media Entity Image 8.x-2.x - core Media API roadmap & integration

jwilson3’s picture

Issue summary: View changes
dww’s picture

RFC: I just submitted #2931878: Provide default configuration for a working media setup for 8.4.x core as a child issue of this. I can't believe I'm the only person trying to do that. ;) Am I missing something obvious? Is that the right place to put energy into trying to solve this interim need for a working default config that works with core 8.4.x? Thoughts? Thanks!

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

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now 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.

vbouchet’s picture

Issue summary: View changes
vbouchet’s picture

Issue summary: View changes

Mark Media Entity GoogleDocs as ready for Media core.

vbouchet’s picture

Issue summary: View changes

Mark Media Entity D500px as compatible with Media from core.

NerOcrO’s picture

Issue summary: View changes
mattlt’s picture

Issue summary: View changes

Updated to show Slick Media's 2.x branch supporting media in core.

mattlt’s picture

Issue summary: View changes

Tumblr has a branch for media in core.

mattlt’s picture

Issue summary: View changes

This is the correct tumblr, sorry.

mattlt’s picture

Issue summary: View changes

media_entity_soundcloud opened a branch supporting media in core.

SocialNicheGuru’s picture

Crop should also support core media

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

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now 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.

othermachines’s picture

Issue summary: View changes

Updating issue - video_embed_field has a 2.x release.

yaswanth pamuru’s picture

Linkit module also has a Patch to support Media core. Patch link: https://www.drupal.org/node/2930171

othermachines’s picture

Issue summary: View changes

media_entity_soundcloud 2.x release has landed

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

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

seanB’s picture

Status: Active » Closed (outdated)

The remaining modules have a relatively small amount of installs. I think there is no real need to keep this issue open. Thanks for the great work everyone!