Problem/Motivation

see #2407505: [meta] Finalize the menu links (and other user-entered paths) system

We want to be able to reference any entity from a menu link (except other menu links!) from a new type of menu link entity backing a menu link plugin type

Proposed resolution

Add a dynamic entity reference base field to core with some tests, taking code from https://www.drupal.org/project/dynamic_entity_reference

Remaining tasks

patch & tests

User interface changes

n/a

API changes

new field type

Suggested Commit Message

git commit -m 'Issue #2407587 by larowlan, jibran: Add a dynamic entity reference base field type to core'

Comments

larowlan’s picture

swoon

larowlan’s picture

Assigned: Unassigned » larowlan
Issue tags: +CriticalADay

Hard-blocker for #2407505: [meta] Finalize the menu links (and other user-entered paths) system so claiming it as #CriticalADay ;)

pwolanin’s picture

Priority: Normal » Critical

should be critical if we are going to use this to execute the plan

larowlan’s picture

Status: Active » Needs review
StatusFileSize
new36.27 KB

So stuck the JavaScript and widget in entity_reference module, like the existing Entity reference widgets.
If you want a widget, you need to enable entity-reference module. If you just want the primitive data type, core is enough.

Added some tests.

Lets see how broken this is.

Nice lunchtime task

Status: Needs review » Needs work

The last submitted patch, 4: der-core-2407587.1.patch, failed testing.

larowlan’s picture

Status: Needs work » Needs review
StatusFileSize
new4.05 KB
new39.54 KB
larowlan’s picture

Assigned: larowlan » Unassigned
kim.pepper’s picture

Issue summary: View changes
jibran’s picture

Great start.

  1. +++ b/core/lib/Drupal/Core/Field/Plugin/DataType/DynamicEntityReference.php
    @@ -0,0 +1,75 @@
    +  public function setValue($value, $notify = TRUE) {
    

    this is same as parent.

  2. +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DynamicEntityReferenceItem.php
    @@ -0,0 +1,231 @@
    + *   list_class = "\Drupal\Core\Field\EntityReferenceFieldItemList",
    

    Should be DER.

  3. +++ b/core/modules/system/src/Tests/Entity/EntityUnitTestBase.php
    @@ -179,7 +179,7 @@ protected function refreshServices() {
    -      $id = $string ? $this->randomMachineName() : mt_rand(1, 0xFFFFFFFF);
    +      $id = $string ? $this->randomMachineName() : mt_rand(1, 0xFFFFFF);
    

    This is not related.

Status: Needs review » Needs work

The last submitted patch, 6: der-core-2407587.2.patch, failed testing.

larowlan’s picture

Status: Needs work » Needs review
StatusFileSize
new2.63 KB
new38.07 KB

Fixes #9, that test passes locally so no sure what's up there.
Looks like db-updates need to run?

larowlan’s picture

StatusFileSize
new97.34 KB

Screenshot from stark

Status: Needs review » Needs work

The last submitted patch, 11: der-core-2407587.3.patch, failed testing.

larowlan’s picture

Issue summary: View changes
Status: Needs work » Needs review
StatusFileSize
new683 bytes
new38.15 KB

Status: Needs review » Needs work

The last submitted patch, 14: der-core-2407587.4.patch, failed testing.

larowlan’s picture

can't work the fail out, hoping someone else can

webchick’s picture

Hm. This isn't necessarily a hard-blocker to #2407505: [meta] Finalize the menu links (and other user-entered paths) system, but was originally listed as a possible example of how we'd implement the UI. Before we go down any particular implementation path, IMO we really should do a round brainstorming, mockups, etc. building on the previous thinking on this at #1123662: Participants did not know how to get the path while creating a menu link and #1101600: Users need to be able to select from list when adding menu items to a menu.

Peter, is this the issue you intended that brainstorming to take place? If so, we probably need a new issue that doesn't have a patch and is more of a brainstorming/discussion piece.

dawehner’s picture

IMHO DER would give us a basic tool we could use as a initial prototype. Whether its the solution at the end
is not sure, but its something we can use in the transition phase, without have to worry about further UI bits.

dawehner’s picture

Wow, that is quite some code, but not that different to entity references.

Here is a quick review.

  1. +++ b/core/lib/Drupal/Core/Field/DataDynamicReferenceDefinition.php
    @@ -0,0 +1,37 @@
    +/**
    + * A typed data definition class for defining dynamic references.
    + */
    +class DataDynamicReferenceDefinition extends DataReferenceDefinition {
    

    It would be nice to explain why we need to define a custom data reference definition (I guess its because we want to provide a string for each entity type, right?)

  2. +++ b/core/lib/Drupal/Core/Field/DataDynamicReferenceDefinition.php
    @@ -0,0 +1,37 @@
    +    /* @var $definition \Drupal\Core\TypedData\DataReferenceDefinition; */
    

    Afaik we use it the other way round, much like @param type $var

  3. +++ b/core/lib/Drupal/Core/Field/DynamicEntityReferenceFieldItemList.php
    @@ -0,0 +1,132 @@
    +/**
    + * Defines a item list class for dynamic entity reference fields.
    + */
    +class DynamicEntityReferenceFieldItemList extends EntityReferenceFieldItemList {
    +
    

    It would be also nice to explain why we need a custom field item list.

  4. +++ b/core/lib/Drupal/Core/Field/DynamicEntityReferenceFieldItemList.php
    @@ -0,0 +1,132 @@
    +          $entity_ids = \Drupal::entityQuery($target_type)
    +            ->condition('uuid', $uuids, 'IN')
    +            ->execute();
    

    According to #2389335: Deprecate entity.query service and replace with using the entity storage's getQuery() method we should just use the storage to get an entity query.

  5. +++ b/core/lib/Drupal/Core/Field/DynamicEntityReferenceFieldItemList.php
    @@ -0,0 +1,132 @@
    +  public function defaultValuesFormSubmit(array $element, array &$form, FormStateInterface $form_state) {
    +    // We want to bypass the EntityReferenceItem::defaultValuesFormSubmit()
    +    $default_value = FieldItemList::defaultValuesFormSubmit($element, $form, $form_state);
    

    SO this doesn't work, see : http://3v4l.org/ioZq3

  6. +++ b/core/lib/Drupal/Core/Field/DynamicEntityReferenceFieldItemList.php
    @@ -0,0 +1,132 @@
    +    $all_ids = array();
    

    Just in case you want to convert to [] in all new added files.

  7. +++ b/core/lib/Drupal/Core/Field/Plugin/DataType/DynamicEntityReference.php
    @@ -0,0 +1,48 @@
    +      $entity = entity_load($target_type, $this->id);
    

    Can we at least use \Drupal::entityManager()->getstorage->load...

  8. +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DynamicEntityReferenceItem.php
    @@ -0,0 +1,231 @@
    + * - exclude_entity_types: Allow user to include or exclude entity_types.
    

    If you can do both, why not name it available_entity_types or something more generoc?

  9. +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DynamicEntityReferenceItem.php
    @@ -0,0 +1,231 @@
    +    $properties['entity'] = DataDynamicReferenceDefinition::create('entity')
    ...
    +      ->setComputed(TRUE)
    +      ->setReadOnly(FALSE);
    

    Ideally this properties would be inherited from the DataDynamicReferenceDefinition ... given that it should now these two already, don't it?

  10. +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DynamicEntityReferenceItem.php
    @@ -0,0 +1,231 @@
    +        'length' => EntityTypeInterface::BUNDLE_MAX_LENGTH,
    

    It should be EntityTypeInterface::ID_MAX_LENGTH, yes its the same value, but ...

  11. +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DynamicEntityReferenceItem.php
    @@ -0,0 +1,231 @@
    +      // We have to bypass the EntityReferenceItem::setValue() here because we
    

    Should we maybe use "here, because"? At least I would do it like that.

  12. +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DynamicEntityReferenceItem.php
    @@ -0,0 +1,231 @@
    +        $key = $target_entity_type instanceof ConfigEntityType ? 'config' : 'content';
    ...
    +            if ($entity) {
    +              $dependencies[$key][] = $entity->getConfigDependencyName();
    +            }
    

    We do have now $entity->getConfigDependencyKey()

  13. +++ b/core/modules/entity_reference/js/dynamic-entity-reference-widget.js
    @@ -0,0 +1,53 @@
    +  Drupal.behaviors.dynamicEntityReferenceWidget = {
    

    It would be helpful to describe it quickly what the behaviour is, we attach here. In other words, WHY, do we need some custom JS

  14. +++ b/core/modules/entity_reference/src/EntityReferenceController.php
    @@ -99,4 +100,61 @@ public function handleAutocomplete(Request $request, $type, $field_name, $entity
    +   *   (optional) The entity ID the entity reference field is attached to.
    +   *   Defaults to ''.
    

    Mh, the optionality does not map the signature, ... not sure what we do here.

  15. +++ b/core/modules/entity_reference/src/EntityReferenceController.php
    @@ -99,4 +100,61 @@ public function handleAutocomplete(Request $request, $type, $field_name, $entity
    +    if (!isset($definitions[$field_name])) {
    +      throw new AccessDeniedHttpException();
    +    }
    

    Sounds for me like a NotFoundHttpException ...

  16. +++ b/core/modules/entity_reference/src/EntityReferenceController.php
    @@ -99,4 +100,61 @@ public function handleAutocomplete(Request $request, $type, $field_name, $entity
    +    if ($field_definition->getType() != 'dynamic_entity_reference' || !$access_control_handler->fieldAccess('edit', $field_definition)) {
    

    Can we pass the $account from the controller in?

  17. +++ b/core/modules/entity_reference/src/Plugin/Field/FieldWidget/DynamicEntityReferenceWidget.php
    @@ -0,0 +1,208 @@
    + *   id = "dynamic_entity_reference_default",
    ...
    +class DynamicEntityReferenceWidget extends AutocompleteWidget {
    

    What about name it "entity_reference_dynamic_autocomplete" to be more in sync with the parent?

  18. +++ b/core/modules/entity_reference/src/Plugin/Field/FieldWidget/DynamicEntityReferenceWidget.php
    @@ -0,0 +1,208 @@
    + *   field_types = {
    + *     "dynamic_entity_reference"
    + *   }
    + * )
    

    Nitpick: Just in case you want to, we support trailing commas now. This is just one of possible implementations.

  19. +++ b/core/modules/entity_reference/src/Plugin/Field/FieldWidget/DynamicEntityReferenceWidget.php
    @@ -0,0 +1,208 @@
    +      '#attributes' => array(
    +        'class' => array('dynamic-entity-reference-entity-type'),
    +      ),
    

    I'm curious what modern JS standards say, should we use classes here or data attributes to attach the behaviour?

  20. +++ b/core/modules/entity_reference/src/Plugin/Field/FieldWidget/DynamicEntityReferenceWidget.php
    @@ -0,0 +1,208 @@
    +    $target_type_info = \Drupal::entityManager()->getDefinition($target_type);
    

    Widgets can use DI, can't they?

catch’s picture

@webchick Menu links are going to need a field type that can reference any entity type. While entity reference is generic, each field definition is tied to a specific type - so you can configure a field storage to reference nodes OR taxonomy terms, but not nodes AND taxonomy terms at the same time.

This is because entity reference stores the entity type in the field configuration and there's no entity type in the schema (see https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Field!Plugin!Fiel...).

With dynamic entity reference the entity type is in the schema, and it allows for entity types to be excluded, but otherwise any entity type on the system is fair game. (http://cgit.drupalcode.org/dynamic_entity_reference/tree/src/Plugin/Fiel...).

So while the specific UI that DER provides isn't a hard blocker (although it's also available now without a lot of work), the field type itself is.

amateescu’s picture

This is because entity reference stores the entity type in the field configuration and there's no entity type in the schema.

I'd like to note that this is true only for the current code in D8 HEAD and D7 contrib. The entity reference field in D7 initially provided a 'target_type' schema column with this exact goal in mind (dynamic entity reference), but it didn't work out due to Views integration, something related to views relationships not being able (or maybe invalid SQL) to join multiple entity base tables from a single field table, but I don't remember the exact details.

jibran’s picture

something related to views relationships not being able (or maybe invalid SQL) to join multiple entity base tables from a single field table

For DER I tried to create the views integration in #2321721: Provide a views relationship for each dynamic entity reference field it worked as it turned out views missing some functionality #2378729: JoinPluginBase doesn't allow extra conditions on left table. The patch just need reroll+views config schama once #2378729: JoinPluginBase doesn't allow extra conditions on left table is in.

catch’s picture

So I was wondering about whether we should merge the two field types, but #21 and #22 suggest that could be tricky, useful to know!

Not being able to use views for this doesn't feel like a blocker at all - the core use-case only requires basic EntityFieldQuery (find the menu links referencing X entity) and entity loading (load the entity referenced by Y menu link) - so something we could add separately.

jibran’s picture

Form #19 @dawehner thank you for the review. If a quick review consist of 20 points then I am wondering what would be in depth review look a like. :D. Here are some replies.

  1. Yeah need fix.
  2. It is same as parentDataReferenceDefinition so I think it also needs a fix.
  3. Yeah need fix.
  4. Nice catch
  5. So how can we call parent parent then?
  6. I think this is out of the scope here. We can fix this for all the core once we agree to do that.
  7. Yeah need fix.
  8. so you want to invert the logic here by changing the name? Sounds good to me. It is there because @larowlan design the module to only exclude the entity types so when I created this option I went with this name to avoid the confusion but for core of course we can fix that.
  9. Well EntityReferenceItem::propertyDefinitions() is strongly dependent on ER field settings which are different for DER field settings so I don't see a possible way to use parent method.
  10. This is same as parent.
  11. I wrote that comment but I am no expert here perhaps @larowlan re-write it better.
  12. Yeah this need fix. Already fixed for parent.
  13. Yeah need fix.
  14. It is optional cuz we are setting it NULL in routing file. We can modify function signature here.
  15. Well it is same as EntityReferenceController::handleAutocomplete()
  16. it is same as EntityReferenceController::handleAutocomplete()
  17. this is a good suggestion but this is the only formatter so naming it then like this did make sense but of course we can rename it.
  18. ok
  19. Is that issue fixed yet? We can update it if data- issue is fixed.
  20. This is same a parent.
jibran’s picture

We can use views with DER. I had a working patch before I found those issues.
For more DER screenshots please see #2331331: Widget for cardinality 1 is missing the field label. Here is the screenshot form seven for both single field and multi value field.

pwolanin’s picture

@webchick - I agree with catch and dawehner that since this matches the exact use case in terms of data model, it doesn't make seems to do a lot of brainstorming. The widget may be pluggable or can be altered if we aren't happy with the autocomplete, but I think that will make sense as a reasonable starting point.

I thought the plan was to get a working implementation (and data model) and then invest in some UX work?

larowlan’s picture

Issue tags: +Entity Field API
webchick’s picture

Gotcha, thanks all for the clarification. I'll update the issue summary at #2407505: [meta] Finalize the menu links (and other user-entered paths) system accordingly.

larowlan’s picture

Issue tags: +Critical Office Hours

tagging for re-roll during office hours today

xjm’s picture

So, having read #20 and #21, I'm not sure why we need to add an additional field type to core, rather than building on the functionality of ER. That seems to move us in the wrong direction, IMO.

larowlan’s picture

Probably worth noting that comment module has entity_id and entity_type in it's schema - which could re-use whatever we come up with here.

amateescu’s picture

Yes, I should have been more explicit myself, sorry :) #21 should read more as: I would prefer if we can bake this functionality into the existing ER field type rather than a separate non-configurable field which has to override quite a bit of assumptions/code from the existing one.

On the other hand, I think I have a viable alternate solution for this entire problem space that I will finish writing soon and post it in the parent meta issue.

larowlan’s picture

Irc conversation


larowlan
xjm: just to be clear you're proposing we change the schema of ERReferenceItem to add an entity_type column?
xjm
larowlan: that we consider it, at least
larowlan
xjm: ok
xjm: views would be the sticking point
xjm: it would mean dynamic joins I think
xjm: exploring this a bit more, in that world, node_field_data would need three more columns, one for each of the three ER fields?
xjm
uh
dawehner
larowlan: 3?
larowlan
xjm: dawehner uid, revision_uid, node_type
berdir
revision uid is just in the revision table and type is in the base table. but yes, still a lot more columns :)
larowlan
taxonomy would get 2 for vid and pid
dawehner
larowlan: oh you want to also merge the revisions in?
larowlan
comment for comment-type and author
user roles table for the role
xjm
okay so I missed something, why would this mean we need to denormalize everything?
larowlan
I'm playing devils advocate here
xjm
er normalize
wait
larowlan
so either the entity type is in the field config (ER) field or its in a column (DER)? is there another way?
xjm
All I'm saying is it's a huge UX fail to have two things in core that do almost the same thing
larowlan
xjm: wait this is no UI » TRUE
xjm
I wasn't actually thinking about the data model at all and still don't see why we couldn't just join
larowlan
xjm: you cannot use it from field UI
berdir
it's a huge ux fail to have taxonomy term ref and entity ref
dynamic ER and ER is IMHO quite different
larowlan
xjm: so it is limited to single cardinality base fields
xjm
larowlan: but there are screenshots of a UI all over the issue?
I must have failed at reading
larowlan
xjm: the UI is on a base field
xjm: uses a widget just like title
xjm: but no way should it be available from field UI to add new fields - agree 1000%
xjm: if you want that, you need the DER contrib module
xjm: also, the UI should be considered representative (what you get for free) the field is about the data model at this stage, far as I'm aware that is the intent
widgets are widgets
pwolanin’s picture

@xjm, @amateescu - Please let us move forward with DER as a separate field type. Trying to rewrite core entity reference as part of this will mean we are digging ourselves into a deep hole and expanding the scope of this issue from doable in the 2 week timeframe to undoable in a much longer time frame.

pwolanin’s picture

Status: Needs work » Needs review
Related issues: +#1927648: Allow creation of file entities from binary data via REST requests
StatusFileSize
new40.09 KB
new10.31 KB

I'm not seeing that test exception locally.

Berdir tells me #1927648: Allow creation of file entities from binary data via REST requests is related since it would potentially fix the fact that EntityReferenceItemNormalizer doesn't include the entity type, which we'd want for a DER field.

Fixing some of the trivial/doc changes suggested by dawehner

re: #4 - skipping until I see if tests pass
re: #5 - Since it's not a static method, I think we just have to copy the code?
re: #9 - I don't think it can use the parent definition, since it's very much based on the settings.
re: #11 - I think it's ok as is, or I don't understand the suggestion

Status: Needs review » Needs work

The last submitted patch, 35: der-core-2407587-35.patch, failed testing.

larowlan’s picture

There's a der normalizer in the contrib project if needed

larowlan’s picture

Note I asked @tstoekler to have a look at this issue in case there's something he can suggest w.r.t. the exception

pwolanin’s picture

Status: Needs work » Needs review
StatusFileSize
new39.7 KB
new9.75 KB

ok, let's try splitting up the test modules, since somehow adding the 2 base fields seems to be failing on testbot.

Status: Needs review » Needs work

The last submitted patch, 39: der-core-2407587-39.patch, failed testing.

pwolanin’s picture

Status: Needs work » Needs review
StatusFileSize
new50.87 KB
new17.09 KB

Ok, something is fragile about altering in the base field, so let's just split out a test entity type where it's actually a normal base field for initial testing.

jibran’s picture

Status: Needs review » Needs work
jibran’s picture

Status: Needs work » Needs review
StatusFileSize
new11.46 KB
new52.31 KB

Fixed #42 and some minor adjustments. Thanks @pwolanin for fighting with test bot to fix the fails.

+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DynamicEntityReferenceItem.php
@@ -0,0 +1,232 @@
+ *   constraints = {"ValidReference" = {}}

This should be Valid DynamicReference IMO

jibran’s picture

Fixing #43 in #2405607: Fix DER constraint validation it is not a blocker imo

pwolanin’s picture

Looks like we still need to wait for #2107243: Decouple entity reference selection plugins from field definitions to uncomment the last part of the test.

Without that the SelectionPluginManager doesn't find what it's looking for since it ends up getting the setting from the itemDefinition rather than the fieldDefinition. Maybe easier to fix the underlying problem?

pwolanin’s picture

StatusFileSize
new53.3 KB
new7.27 KB

Testing the autocomplete route in the test and by hand - it's broken the same as for the widget posting with no ID present.

Here are some more small fixes from review in #19, plus some more commented-out test code.

pwolanin’s picture

Status: Needs review » Postponed

postponing due to change of direction on the parent issue

larowlan’s picture

Priority: Critical » Major

no longer a blocker

dpi’s picture

dpi’s picture

Is this still being considered for core? Especially considering parent issue is going with just node entity type for now*

* #2418017: Implement autocomplete UI for the link widget : Resolution

webchick’s picture

I think it could, but at this point I'd be inclined to mark it a feature and postpone to 8.1.x. Other opinions?

webchick’s picture

effulgentsia’s picture

Issue tags: -Critical Office Hours

Since this issue is no longer critical, untagging for critical office hours. Don't know if we have or should start a "Major Office Hours" or similar tag. Leaving the "CriticalADay" tag, since maybe that concept still applies to work done while an issue was critical at some point.

xjm’s picture

So since this turned out not to be a blocker for the menu link work, I think this is actually a feature request?

jibran’s picture

Version: 8.0.x-dev » 8.1.x-dev
Category: Task » Feature request

I think this is correct let's focus at #2423093: Allow multiple target entity types in the 'entity_autocomplete' Form API element and #2427803: [PP-1] Expose target type, selection handler and selection settings in LinkWidget for now.
I'll keep on improving dynamic entity reference in contrib and I'll make sure we can replace entity reference completely with dynamic entity reference without BC break that's why I moved it to 8.1.x instead of 9.0.x.

jibran’s picture

Status: Postponed » Active
dpi’s picture

@larowlan @jibran is the goal still for 8.1?

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

Drupal 8.1.0-beta1 was released on March 2, 2016, which means new developments and disruptive changes should now be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

timmillwood’s picture

Issue tags: +Needs reroll

Patch from #46does not apply any more (which is kinda obvious for a patch that's a year old, but just tagging as needs reroll).

amateescu’s picture

Title: Add a dynamic entity reference base field type to core » Allow multiple target entity types in the entity reference field
Priority: Major » Normal
Status: Active » Postponed
Issue tags: -Needs reroll

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

Drupal 8.2.0-beta1 was released on August 3, 2016, which means new developments and disruptive changes should now be targeted against the 8.3.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.0-alpha1 will be released the week of January 30, 2017, which means new developments and disruptive changes should now 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.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.

aaronbauman’s picture

Status: Postponed » Active

Parent issue has been resolved, so re-opening this.

#2423093: Allow multiple target entity types in the 'entity_autocomplete' Form API element would need to happen first.

Seems like the data type should come before the form widget, no?
ie. #2423093 should be postponed on this issue, and not vice versa.

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.

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.

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.

alienzed’s picture

bump

this is important guys :P

jonathanshaw’s picture

Status: Active » Postponed

Seems like the data type should come before the form widget, no?
ie. #2423093 should be postponed on this issue, and not vice versa.

No, @amateescu had it right.

#2423093: Allow multiple target entity types in the 'entity_autocomplete' Form API element is about the form element, which is used by the field widget but is more generic.

You could argue that this issue could address the field type only, and then a followup (postponed on both #2423093: Allow multiple target entity types in the 'entity_autocomplete' Form API element and this issue) could address the widget, but as no one is actually working on any of these that's of dubious value.

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

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). 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.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now 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.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 11.x-dev » main

Drupal core is now using the main branch as the primary development branch. New developments and disruptive changes should now be targeted to the main branch.

Read more in the announcement.