Not Completed

Entity Manager and related topics
#2144677: Add per entity type managers to improve DX
#1867228: Make EntityTypeManager provide an entity factory (API Addition)
#1233394: [Policy, no patch] Agree on a property naming pattern
Documentation
#1729812: Separate storage operations from reactions
Entity fields
#2084829: The FieldDefinition should be injected in the Field / FieldItem objects
#2150511: [meta] Deduplicate the set of available field types
#2280639: Add the FieldStorageDefinition class to define field storage definitions in hook_entity_field_storage_info()
#2027059: Improve the documentation of WidgetBase::errorElement() for mapping violation property paths to form elements
#2833378: Create an EntityCreatedInterface with accompanying trait to promote code reuse and standardization
#2209971: Automatically provide a changed field definition
Widgets / formatters rendering
#2010930: [META] Apply formatters and widgets to rendered entity base fields (all besides node.title)
#2466913: Allow EVD to render fields across bundles
Typed Data / Metadata
#2028097: Map data types to interfaces to make typed data discoverable
Access
#777578: Add an entity query access API and deprecate hook_query_ENTITY_TYPE_access_alter() (issue about grant system)
#2809177: Introduce entity permission providers
Caching
#1885830: Enable static caching for config entities
Language / Translation
#1824964: Setting entity language to an invalid language should throw exception
Revisions
#2927077: $entity->toUrl('revision-*') should fill revision parameter on all applicable routes.
#3043321: Use generic access API for node and media revision UI
#2350939: Implement a generic revision UI
#3023194: [PP-2] Add parallel revisioning support
#1776796: Provide a better UX for creating, editing & managing draft revisions.
#2869056: Automatically set revision user/log information/created time on entity revisions
Storage
#2079019: Make Views use SqlEntityStorageInterface
#2081513: Deprecate FIELD_LOAD_* constants
#2346013: Improve DX of manually applying entity/field storage definition updates
#2423323: Streamline EntityQuery's Tables::addField()
#3037247: Add an API for determining if an entity object is the active variant
#2841291: Fix NOT NULL handling in the entity storage and 'primary key' changes when updating the storage definition of an identifier field
Form
#1728816: Ensure multiple entity forms can be embedded into one form (also #766146: Support multiple forms with same $form_id on the same page)
#2006248: Add an EmbeddableFormInterface so that FormInterface can delegate to multiple objects (possible solution for above problem)
#1728818: Clarify $operation and the relationship to form modes (as a counterpart of view modes)
#2091871: Add an ConfigEntityForm with an exists() method
#3037144: Ensure that entity edit forms use the active variant of an entity
Validation
#2023465: Allow validation constraints to add in message replacements
#2012776: [META] Improve validation constraint test coverage
#2012690: [Meta] Add useful information to 'type' constraints error messages
REST
#2259445: Entity Resource unification
Nice things
#2004672: Add a default value for filter format item properties
#2350509: Implement auto-route generation for all core entities and convert all of the core entities.
#2976861: add an entity Links handler, to provide menu links/tasks/actions for entity types
#2201137: Introduce a "duplicate" entity operation
#2989889: Extract DraggableListBuilderTrait from DraggableListBuilder for use with content entities
#2953566: Allow entities to specify a "collection permission"
#2270883: Automatically add theme hook suggestions for all entity types
#267855: Provide an entity hierarchy API
Bugs
#3035037: Entity param conversion may be slow due to available context resolution
#1863258: Move entity preparation from form controller to entity class: "last changed" timestamp not updated and "create new revision" setting not respected when updating entities via Entity API

Completed

Existing meta issues that this replaced
#1346204: [meta] Drupal 8 Entity API improvements
#1346214: [meta] Unified Entity Field API
#2316171: [meta] Improve DX of entity defining (if you want a UI)
Entity Manager and related topics
#2095587: #HardProblems DX conclusion: Remove IdentifiableInterface
#1879200: Remove uneeded $entity_type argument from entity type callbacks
#2005716: Promote EntityType to a domain object
#2168333: Ensure custom EntityType controllers can be provided by modules
#2165155: Change $entity_type to $entity_type_id and $entity_info to $entity_type/$entity_types
#2164827: Rename the entityInfo() and entityType() methods on EntityInterface and EntityStorageControllerInterface
#2191655: Type hint $entity_type everywhere it is an instance of EntityTypeInterface.
#2078387: Add an EntityOwnerInterface
#1981858: Rename hook_entity_info/alter() to hook_entity_type_build/alter()
#2191651: Rename Drupal\Core\Entity\Query\QueryInterface::getEntityType() to getEntityTypeId()
#2119905: Provide @ConfigEntityType and @ContentEntityType to have better defaults
#2154711: Move entity_get_(form/view)_mode_options() functions to EntityManager and add get(Form/View)ModeOptions() methods
#2182239: Improve ContentEntityBase::id() for better DX
#2190313: Add $EntityType::load() and loadMultiple() to simplify loading entities
#2096899: Add $EntityType::create() to simplify creating new entities
#2039435: Convert EntityManager to extend DefaultPluginManager
#1976158: Rename entity storage/list/form/render "controllers" to handlers
#2015535: Improve instantiation of entity classes and entity controllers
Access
#2409691: EntityAccessControlHandlers miss entity admin access
Documentation
#2216553: Fill in @defgroup/topic docs for Typed Data
#2216533: Fill in topic/@defgroup docs for Entity API overview
#2216535: Replace Node overview topic and Node API topic with Entity Hooks topic
Config / Content Entities
#2004244: Move entity revision, content translation, validation and field methods to ContentEntityInterface
#2256521: [META] New plan, Phase 2: Implement menu links as plugins, including static admin links and views, and custom links with menu_link_content entity, all managed via menu_ui module
Core / module
#2050835: Move Widget, Formatter, and FieldType plugin types to the Core\Field system
#2031725: Move all entity display interfaces to the core component
#2031717: Make entity module not required
#2079427: Core/Entity depends on classes / functions from field.module
Entity fields
#2051923: Rename \Drupal\Core\Entity\Field\Field, related subclasses and interfaces to *FieldItemList
#2023563: Convert entity field types to the field_type plugin
#2014671: [META] Convert all field types to plugins
#1819472: Consider renaming the "*_field" data type to "*_item" and DX around the reference fields
#1988612: Apply formatters and widgets to rendered entity base fields, starting with node.title
#2052135: Determine how to deal with field types used in base fields in core entities
#2047229: Make use of classes for entity field and data definitions
#2143263: Remove "Field" prefix from FieldDefinitionInterface methods
#1798140: Agree upon terminology for configurable fields
#2042773: Change #items within a theme_field() render array from an *array* to the same $items *object* used throughout the rest of the formatter pipeline
#2095303: Rename 'field_entity' to 'field_config' and 'field_instance' to 'field_instance_config'
#2152825: rename FieldItemBase::getFieldSetting[s]() to getSetting[s]()
#2156337: merge ConfigEntityReferenceItemBase up into EntityReferenceItem, and fix inconsistencies
#2114707: Allow per-bundle overrides of field definitions
#2192259: Remove ConfigField.. Item and List classes + interfaces
#2095919: Kill ContentEntityBase::init()
#2191709: Remove the "configurable" flag on field types
#2116363: Unified repository of field definitions (cache + API)
#2167167: Remove field_info_*()
#2188075: Remove magic getter of EntityReferenceItem
#2143291: Clarify handling of field translatability
#2287727: Rename FieldConfig to FieldStorageConfig
#2224761: Add a generic way to add third party configuration on configuration entities and implement for field configuration
#2465053: Drupal 8 only allows one user every 6 hours to register when page caching is enabled — caused by entity UUID in form state
#2023473: Merge FieldItem::insert() and FieldItem::update() on fields into preSave()
#2404331: Can't serialise an entity with an entity reference to an unsaved entity (remove EntityReferenceItem::$NEW_MARKER in favour of a validation constraint)
Widgets / formatters rendering
#2157153: Remove field_attach_preprocess()
#2090509: Optimize entity_get_render_display() for the case of "multiple entity view"
#2134887: move field_view_field() / field_view_value() to methods
#2095195: Remove deprecated field_attach_form_*()
#2005434: Let 3rd party modules store extra configuration in EntityDisplay
#2023571: Support preprocessing in EntityViewBuilder
Typed Data / Metadata
#2002134: Move TypedData metadata introspection from data objects to definition objects
#1928938: Improve typed data definitions of lists
#2132145: Rename 'typed_data' / Drupal::typedData() to 'typed_data_manager' / Drupal::typedDataManager
#2110467: Add first(), get($index) and possibly other methods to ListInterface
#2144631: Add a revisionable key to field definitions
#2002138: Use an adapter for supporting typed data on ContentEntities
#2418521: Translating field definition descriptions problematic due to early t(), hard to test
Access
#1947880: Replace node_access() by $entity->access()
#1994140: Unify entity field access and Field API access
#2078473: Use entity access API for checking access to private files
#2028027: [META] Missing access control for base fields
#2204363: [sechole] Returning TRUE from hook_entity_access()/hook_ENTITYTYPE_access() must not bypass EntityAccessController::checkAccess()
#2461049: Node module permissions are broken if hook_node_grants is implemented
Caching
#2027795: Optimize content entity serialization
#2083785: Add support for determining which field properties are cacheable
#597236: Add entity caching to core
#2099137: Entity/field access and node grants not taken into account with core cache contexts
#2444267: EntityViewBuilder should add the language of the entity as context, always
Language
#2019055: Switch from field-level language fallback to entity-level language fallback
#2076445: Make sure language codes for original field values always match entity language regardless of field translatability
#2018685: Remove field_is_translatable()
#1916790: Convert translation metadata into regular entity fields
#2428795: Translatable entity 'changed' timestamps are not working at all
#2073217: Remove the $langcode parameter from the entity view/render system
#2072945: Remove the $langcode parameter in EntityAccessControllerInterface::access() and friends
#2090983: ContentEntityInterface::getTranslation() should throw an exception when an invalid language is specified
#2465901: [META] Make entity revision translation work
Storage
#2095399: Merge DatabaseStorageController and DatabaseStorageControllerNG
#2057401: Make the node entity database schema sensible
#2142549: Support multi-column field types in base tables
#2095283: Remove non-storage logic from the storage controllers
#1823494: Field API assumes serial/integer entity IDs, but the entity system does not
#2144327: Make all field types provide a schema()
#2267753: ContentEntityDatabaseStorage::mapToStorageRecord hard-codes $entity->$name->value
#2183231: Make ContentEntityDatabaseStorage generate static database schemas for content entities
#2144263: Decouple entity field storage from configurable fields
#1498720: [meta] Make the entity storage system handle changes in the entity and field schema definitions
#1740492: Implement a default entity views data handler
#2068325: [META] Convert entity SQL queries to the Entity Query API
#2100343: Remove 'fieldable' key in entity definitions in favour of 'field_ui_base_route'
#2137801: Refactor entity storage to load field values before instantiating entity objects
#2068655: Entity fields do not support case sensitive queries
#2297817: Do not attempt field storage write when field content did not change
#2340993: SqlContentEntityStorageSchema::requiresEntityDataMigration() returns TRUE for cases where it should return FALSE
#2337921: Improve the UX of update.php's handling of entity type updates
#2391829: ContentUninstallValidator relies on the not required ContentEntityStorage::hasData() method
#2384459: Add entity query condition for delta in EFQ
Form
#2151775: EntityFormController does things that only make sense for ContentEntities
#2022875: Resolve difference between submitForm(), submit(), and save() in EntityFormController
#2453175: Remove EntityFormInterface::validate() and stop using button-level validation by default in entity forms
Validation
#1696648: [META] Untie content entity validation from form validation
#2070429: Configurable fields aren't validated against the "required" constraint except in forms
#2002180: Entity forms skip validation of fields that are edited without widgets
#2105797: Add CompositeConstraintBase so that constraints involving multiple fields, such as CommentNameConstraint, can be discovered
#2395831: Entity forms skip validation of fields that are not in the EntityFormDisplay
Operations
#1839516: Introduce entity operation providers
REST
#1979260: Automatically populate the author default value with the current user
Nice things
#2085071: Auto validate fields on $entity->save(), but allow opt-out
#1980822: Support any entity with path.module
#2145103: Provide non-configurable field types for entity created, changed and timestamp fields
#2201051: Convert path.module form alters to a field widget
Bugs
#2050201: Unsetting field item properties via FieldItemBase::set() does not always work
#221081: Entity cache out of sync and inconsistent when saving/deleting entities
#2322503: getDisplayModeOptions() returns only full or teaser regardless of the status of the entity display
#2443165: Drupal\Core\Entity\EntityInterface\ContentEntityStorageBase::doCreate() assumes that the bundle is a string

Comments

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Add kill issue

fago’s picture

Issue summary: View changes

Added another nice to have.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

plach’s picture

Issue summary: View changes

Updated issue summary.

plach’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Adding a space to see the updates issue colors.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

fago’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

swentel’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

plach’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes

Updated issue summary.

Berdir’s picture

Issue summary: View changes
Berdir’s picture

Issue summary: View changes
Berdir’s picture

Issue summary: View changes
Berdir’s picture

Issue summary: View changes
Berdir’s picture

Issue summary: View changes
fago’s picture

Issue summary: View changes
yched’s picture

yched’s picture

Issue summary: View changes

bleh, added link in wrong "summary" :/

yched’s picture

Berdir’s picture

Issue summary: View changes
Berdir’s picture

Issue summary: View changes
Berdir’s picture

Issue summary: View changes
Berdir’s picture

Issue summary: View changes
fago’s picture

Issue summary: View changes
yched’s picture

yched’s picture

yched’s picture

yched’s picture

fago’s picture

yched’s picture

fago’s picture

fago’s picture

rivimey’s picture

Issue summary: View changes
rivimey’s picture

Issue summary: View changes
rivimey’s picture

Issue summary: View changes
rivimey’s picture

Issue summary: View changes
webchick’s picture

Out of 149 criticals, 20 of them (~13.4%) have Entity system, Field system, or Field UI as their component. There are likely other ones hiding in there as well. Unfortunately, this situation has basically gone unchanged since the last time I pulled these numbers (July it was 18/140, or ~12.8%), despite the fact that I know a small handful of people are working very hard on these.

I think it's worth the folks leading this effort to have a real hard discussion about what things we can push to D9 (and/or 8.1.x) so that we can get D8 out the door.

yched’s picture

Berdir’s picture

Issue summary: View changes
amateescu’s picture

@webchick: ... really? Should we do the same count for CMI or WSCCI then?

~13.4% does not seem like a lot to me considering the impact of the entity field api on D8.

webchick’s picture

Yes, we absolutely should. Each area of core needs a firm path to beta/RC. I feel like I know what that path is for CMI and WSCCI, I'm not as sure with entity/field API. That list of issues above is ENORMOUS. :( There's gotta be stuff in there we can de-scope in order to get things into a better place sooner.

Berdir’s picture

Not everything in that list is critical or even major, not everything is beta blocking/target/API changing. A list of beta blockers is being worked on, @catch and @xjm are in the loop.

webchick’s picture

Yes, I realize that. However, by nothing in this ginormous list being explicitly de-scoped, it's all still on the table, which means we in a lot of cases end up picking away at these edges and making less progress on the beta/release blockers overall. For example, #1976158: Rename entity storage/list/form/render "controllers" to handlers which is a great DX improvement, but doesn't actually directly lead to getting D8 out the door faster (rather, it causes issues that *do* get D8 out the door faster to have to re-roll their patches, hence delaying the release overall).

Maybe I'm needlessly worrying, and there are tons of these entity/field API criticals which are mere docblock-and-whitespace-nit-picking away from getting into 8.x? Can we focus instead on cranking those out, and then turn back to refactoring once things are in a better place, assuming there are still non-Entity/Field API issues blocking the beta?

I don't know. We're 6 months past the initial API freeze now, though, and I fear if we fast-forward another 6 months and still don't have a beta out, we'll be facing widespread burnout of the core team ala D7 which I do NOT want to repeat under any circumstances. :( I'm trying to take Dries's call for focus seriously, and entity/field API takes up a non-trivial portion of what's left. I'm genuinely open to whatever ideas you have.

catch’s picture

20 of them (~13.4%) have Entity system, Field system, or Field UI as their component. There are likely other ones hiding in there as well. Unfortunately, this situation has basically gone unchanged since the last time I pulled these numbers (July it was 18/140, or ~12.8%),

I'm not sure that indicates lack of progress. Some current field API critical issues are sub-tasks of old meta issues, which have been independently promoted to critical. An example would be #2015687: Convert field type to FieldType plugin for taxonomy module which is one of two remaining conversions from an older critical meta issue that previously covered several, and which I just promoted to critical yesterday.

The same has been happening for the last, sticky CMI conversions that were previously covered under one critical meta issue, and in other subsystems too. Basically by not swamping the critical queue with dozens/hundreds of trivial conversions, we also managed to hide some intractable, release-blocking issues in the major/normal queues until they eventually ended up individually blocking the criticals. Some like menu links (which is as much CMI/WSCCI as an entity system issue although it's been primarily entity system that's resolved it) were obvious at the time as hard issues, some like search variables not so much.

So for those kinds of issues at least, it was technical debt introduced a long time ago, where 90% of the conversions are done, and 90% of the conversions are remaining ;)

Looking through the rest of the Entity/Field stuff in the critical queue, fourthree of those critical issues are render caching-related, which is completely distinct from Entity/Field API improvements. That's using the entity/field API to cover over performance regressions introduced throughout the rendering process (some of which is within the entity/field API but a lot of it isn't - Twig, link generation, CMI - anything which can happen within entity view). And to improve (cached) rendering performance to a position that's faster compared to 7.x's uncached performance, to compensate for other performance regressions outside of entity rendering too, we hope. Neither of these are anything to do with this issue, except that it happens to be entity/fields that make up the bulk of page content in Drupal.

#2099137: Entity/field access and node grants not taken into account with core cache contexts
#2099105: Clean-up render cache when permission changes
#2099131: Use #pre_render pattern for entity render caching

#1510544: Allow to preview content in an actual live environment is also not really entity/field API (and was promoted to critical by webchick in October) - that's a usability regression/improvement.

Another is missing hook_help() for display modes.

I've also committed one critical Entity patch this morning, and downgraded a critical/beta blocker that was fixed enough by that patch to no longer be critical/beta blocker.

All of that combined, I get 16 total issues in the critical queue (as of today) that are in those three components, minus 5 issues which are not Entity/Field API changes or are performance/usability improvements, which leaves 11.

I count 124 critical issues in the queue at the moment, not 149, but those ten remaining critical bugs and API changes which properly belong to this meta issue come in at 8.8% of 124.

fago’s picture

ad #27: I'm unsure why it's expected that the Entity & Fields system criticals have to be fixed faster than the others :-(

Anyway, @number-of-criticals:
Yes, as pointed out by catch a lot of stuff gets put into the entity-bag. If we want to look at this conversion I think it would be more reasonable to filter criticals by our tag: link

Yes, I realize that. However, by nothing in this ginormous list being explicitly de-scoped, it's all still on the table, which means we in a lot of cases end up picking away at these edges and making less progress on the beta/release blockers overall

I don't think there is a reason to de-scope anything if it can go in after beta as well. But as you know we are currently identifying beta blockers what prioritizes them and - imho - leads exactly to the discussion you'd like to see.

#1976158: Rename entity storage/list/form/render "controllers" to handlers is certainly an issue that could be discussed for d8/d9, although I think it's critical for a sane DX. However, I don't see renames like this so problematic as the amount of required rerolls is minimal when the patches can go in fast. Moreover, I see the time it takes to get an average RTBC issue in - without any IRC boost - as more problematic. After a few weeks patches always start to conflict given d8's development pace, need periodic re-rolls and consequently take away worthwhile contribution time.

amateescu’s picture

Moreover, I see the time it takes to get an average RTBC issue in - without any IRC boost - as more problematic.

This! I've also said it a few times before, good to know I'm not the only one concerned by it.

Edit: I realised that this comment could be interpreted as a critique regarding core maintainers. It's definitely not. The number of core maintainers relative to the number of patches in the queue is the issue, IMO.

Berdir’s picture

Issue summary: View changes
fago’s picture

I realised that this comment could be interpreted as a critique regarding core maintainers. It's definitely not. The number of core maintainers relative to the number of patches in the queue is the issue, IMO.

I don't intended to blame core maintainers either. I'm not sure whether the problem is the number of maintainers though, or more the development model used for developing a project of d8's size.

Anyway, that's a discussion which doesn't belong on this meta. My apologies for bringing this up here, but it gets sometimes frustrating.

Berdir’s picture

Issue summary: View changes
Berdir’s picture

Issue summary: View changes
yched’s picture

Do we really want to keep the "Completed" section here ?

Also, when adding new issues in the summary list (well, at least in the "Not completed section"), it would be more convenient for people following here to also put the issue links in the comment :-)

Berdir’s picture

I think the completed section is useful, we either have to move or delete completed issues, because the colors for fixed/resolved/needs work and so on are inconsistent and it's impossible to easily see what's remaining. That said, maybe move it below?

Will try to remember to comment about new issues, I mostly just moved them around.

yched’s picture

yched’s picture

Issue summary: View changes

Added a new "Widgets / formatters rendering", moved a couple existing issues into it, and added #2090509: Optimize entity_get_render_display() for the case of "multiple entity view"

yched’s picture

Issue summary: View changes

Right. Moved "Completed" below.

(this "completed" section is also why just the "view diff" is not good enough, because when looking at the diff you can't really tell if a change happened in the "completed" or "not completed" section :-p)

yched’s picture

Berdir’s picture

Berdir’s picture

Berdir’s picture

Issue summary: View changes
Berdir’s picture

Berdir’s picture

Issue summary: View changes

Added #2145103: Provide non-configurable field types for entity created, changed and timestamp fields to nice things, aka not a requirement or blocker in anyway, but a non API-changing addition with pretty nice DX improvements.

rivimey’s picture

rivimey’s picture

#1879200: Remove uneeded $entity_type argument from entity type callbacks is in the completed section but is currently marked Active following a status update from 'catch'. I'm not sure quite what has happened but it seems possible it should be moved back out of Completed.

Berdir’s picture

@rivimey: Thanks! That issue "only" needs a change notice, I think it's fine to leave it where it is. See https://groups.drupal.org/node/394113, you're very welcome to start writing one :)

amateescu’s picture

Berdir’s picture

Issue summary: View changes

Moved the two huge rename follow-up issues that were fixed down:

- #2165155: Change $entity_type to $entity_type_id and $entity_info to $entity_type/$entity_types
- #2164827: Rename the entityInfo() and entityType() methods on EntityInterface and EntityStorageControllerInterface

Replaced with a bunch of much smaller follow-ups:

- #1981858: Rename hook_entity_info/alter() to hook_entity_type_build/alter()
- #2191651: Rename Drupal\Core\Entity\Query\QueryInterface::getEntityType() to getEntityTypeId()
- #2191655: Type hint $entity_type everywhere it is an instance of EntityTypeInterface.

Also moved #2090509: Optimize entity_get_render_display() for the case of "multiple entity view" to fixed, just needs a change notice now.

Added #2154711: Move entity_get_(form/view)_mode_options() functions to EntityManager and add get(Form/View)ModeOptions() methods, moves entity_get_view_modes() to the entity manager should then allow us to kill entity_info_cache_clear(), this is the last static reset in there.

Adding #2182239: Improve ContentEntityBase::id() for better DX, which improves DX for implementing entity types ( no need to override id() and so on) and should make it faster when I've completed the pre-fill part. Should also address concerns from @yched about having to go through all the entity field methods/magic to access simple entity keys when I'm done with the optimization part.

There are also a bunch of other small issues, e.g. new field types and schema related improvements, not sure how much we want to list here.

Berdir’s picture

rivimey’s picture

Berdir’s picture

Issue summary: View changes

Moved #2192259: Remove ConfigField.. Item and List classes + interfaces to completed.

Adding #2191709: Remove the "configurable" flag on field types which is about removing the distinction of configurable and non-configurable field types as a follow-up of that. And another related issue #2150511: [meta] Deduplicate the set of available field types, which removes duplicate field types.

Berdir’s picture

Berdir’s picture

Berdir’s picture

Issue summary: View changes

Haven't updated this for a while :)

- Replaced with #1842858: [PP-1] Convert menu links to the new Entity Field API with it's successor #2227441: New plan, Phase 1:Review the architecture and overall implementation proposal for menu links as plugins
- Added #2190313: Add $EntityType::load() and loadMultiple() to simplify loading entities, currently blocks the create() issue
- Added #2183231: Make ContentEntityDatabaseStorage generate static database schemas for content entities
- Removed #1596472: Replace hard coded static cache of entities with cache backends, I don't think that's going to happen, the entity cache is added in a different issue
- Added #2039435: Convert EntityManager to extend DefaultPluginManager
- Added #1740492: Implement a default entity views data handler
- Added #2216553: Fill in @defgroup/topic docs for Typed Data and #2216533: Fill in topic/@defgroup docs for Entity API overview to add documentation
- Done: #2116363: Unified repository of field definitions (cache + API), added #2167167: Remove field_info_*() as follow-up
- Done: #2201051: Convert path.module form alters to a field widget
- Added #2010930: [META] Apply formatters and widgets to rendered entity base fields (all besides node.title)
- Added #2259445: Entity Resource unification, I'm out of the loop with all the entity url/uri/resource issues, but a lot of discussion around that currently
- Added #2188075: Remove magic getter of EntityReferenceItem, small clean-up once #2267753: ContentEntityDatabaseStorage::mapToStorageRecord hard-codes $entity->$name->value is fixed.
- Another critical: #2099137: Entity/field access and node grants not taken into account with core cache contexts, removed the value note about render caching instead, that's one of the last ones apart from the views bubble up.
- Another critical #2005434: Let 3rd party modules store extra configuration in EntityDisplay :(

Lots of new issues added I know, but we also got a lot done that wasn't in here.

Berdir’s picture

Issue summary: View changes
Berdir’s picture

Berdir’s picture

Ups, #2287727: Rename FieldConfig to FieldStorageConfig got undone, will wait a bit too see if will be a follow-up.

xjm’s picture

I re-fixed that one but added #2312093: Rename FieldInstanceConfig to FieldConfig (but I don't see the previous one in the summary).

Berdir’s picture

Issue summary: View changes
Berdir’s picture

Yeah, you're right, I re-added it now.

Berdir’s picture

Berdir’s picture

Issue summary: View changes

Trying to get this issue updated, so we have an overview for the dev days sprints..., First step, moving resolved issues.

Solved:
#2028027: [META] Missing access control for base fields
#2204363: [sechole] Returning TRUE from hook_entity_access()/hook_ENTITYTYPE_access() must not bypass EntityAccessController::checkAccess()
#1916790: Convert translation metadata into regular entity fields
#2137801: Refactor entity storage to load field values before instantiating entity objects
#2068655: Entity fields do not support case sensitive queries

Next, making sure that critical issues are in here, new:
#2465053: Drupal 8 only allows one user every 6 hours to register when page caching is enabled — caused by entity UUID in form state
#2105797: Add CompositeConstraintBase so that constraints involving multiple fields, such as CommentNameConstraint, can be discovered
#2395831: Entity forms skip validation of fields that are not in the EntityFormDisplay
#2297817: Do not attempt field storage write when field content did not change
#2461049: Node module permissions are broken if hook_node_grants is implemented (node issue, but related to entity access)

And now major:
#2340993: SqlContentEntityStorageSchema::requiresEntityDataMigration() returns TRUE for cases where it should return FALSE
#2081513: Deprecate FIELD_LOAD_* constants
#2322503: getDisplayModeOptions() returns only full or teaser regardless of the status of the entity display
#2428795: Translatable entity 'changed' timestamps are not working at all
#2466913: Allow EVD to render fields across bundles
#2465901: [META] Make entity revision translation work
#2350509: Implement auto-route generation for all core entities and convert all of the core entities.
#2453175: Remove EntityFormInterface::validate() and stop using button-level validation by default in entity forms
#2404331: Can't serialise an entity with an entity reference to an unsaved entity (remove EntityReferenceItem::$NEW_MARKER in favour of a validation constraint)
#2443165: Drupal\Core\Entity\EntityInterface\ContentEntityStorageBase::doCreate() assumes that the bundle is a string
#2444267: EntityViewBuilder should add the language of the entity as context, always (render caching)
#1696648: [META] Untie content entity validation from form validation
#2346013: Improve DX of manually applying entity/field storage definition updates
#2391829: ContentUninstallValidator relies on the not required ContentEntityStorage::hasData() method
#2423323: Streamline EntityQuery's Tables::addField()
#2418521: Translating field definition descriptions problematic due to early t(), hard to test
#2337921: Improve the UX of update.php's handling of entity type updates
#2409691: EntityAccessControlHandlers miss entity admin access
#2384459: Add entity query condition for delta in EFQ

Well, lots of them. There are more majors, but that's enough for now ;)

plach’s picture

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

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should 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.

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

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should 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.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.

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.

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.

AaronMcHale’s picture

Issue summary: View changes

Moving some closed issues to the completed lists.

Do we really need to keep all of the completed ones now?

AaronMcHale’s picture

Version: 8.6.x-dev » 8.8.x-dev
Issue summary: View changes

Issues about improving the generic entity revision API/UI. Also bumping to 8.8.

AaronMcHale’s picture

Issue summary: View changes

More issues

joseph.olstad’s picture

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.

joachim’s picture

Just seen #2316171: [meta] Improve DX of entity defining (if you want a UI) has been closed in favour of this. Could this get a better title, so it's not just about fields?

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.

geek-merlin’s picture

rivimey’s picture

Folks, the title of this issue is "Complete...", which implies a vision of what complete looks like, but this list seems to have become simply a list of entity issues.

How about working through the list of incomplete items, bumping some to "entity issues for D9" and some to "entity issues for D10", preferably with some overarching vision guiding both sets, and then mark this list closed?

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.

andypost’s picture