When a configuration entity that acts as a bundle for another entity is first saved, it does not have an "original ID" yet. If that configuration entity is then re-saved during Entity::postSave() or hook_entity_insert(), the site shows a blank screen (WSOD).

This is because ConfigEntityBundleBase::preSave() throws an exception if the entity ID differs from the original ID. Of course this is always the case for new bundle entities, as they have NULL for their original ID. See below for the relevant code:

  public function preSave(EntityStorageInterface $storage) {
    parent::preSave($storage);

    // Only handle renames, not creations.
    if (!$this->isNew() && $this->getOriginalId() !== $this->id()) {
      $bundle_type = $this->getEntityType();
      $bundle_of = $bundle_type->getBundleOf();
      if (!empty($bundle_of)) {
        throw new ConfigNameException("The machine name of the '{$bundle_type->getLabel()}' bundle cannot be changed.");
      }
    }
  }

However, EntityStorageBase::doPostSave has a fix for this, but it's being called too late:

  protected function doPostSave(EntityInterface $entity, $update) {
    $this->resetCache(array($entity->id()));

    // The entity is no longer new.
    $entity->enforceIsNew(FALSE);

    // Allow code to run after saving.
    $entity->postSave($this, $update);
    $this->invokeHook($update ? 'update' : 'insert', $entity);

    // After saving, this is now the "original entity", and subsequent saves
    // will be updates instead of inserts, and updates must always be able to
    // correctly identify the original entity.
    $entity->setOriginalId($entity->id());

    unset($entity->original);
  }

Proposed resolution:

  • Move the relevant piece of code above the postSave and invokeHook for new entities and leave it below the hooks for updated entities.
  • Alternatively, do the above in a brand new ConfigEntityStorageBase class override of ::postSave().

Example use case:
Config entities can have plugin collections by implementing EntityWithPluginCollectionInterface. After saving, one could let other modules try to install "default" plugins on the config entity. Doing so would require a re-save of the config entity, leading to the exception thrown.

CommentFileSizeAuthor
#75 2645202-75.patch4.37 KBAkhil Yadav
#64 interdiff-drupal-resaving_new_bundle_crash-2645202-52-64-9.0.x-TEST_ONLY.txt1.54 KBgnunes
#64 interdiff-drupal-resaving_new_bundle_crash-2645202-52-64-9.0.x.txt2.76 KBgnunes
#64 interdiff-drupal-resaving_new_bundle_crash-2645202-52-64-8.9.x.txt2.74 KBgnunes
#64 interdiff-drupal-resaving_new_bundle_crash-2645202-52-64-8.9.x-TEST_ONLY.txt1.52 KBgnunes
#64 drupal-resaving_new_bundle_crash-2645202-64-9.0.x.patch5.95 KBgnunes
#64 drupal-resaving_new_bundle_crash-2645202-64-9.0.x-TEST_ONLY.patch4.31 KBgnunes
#64 drupal-resaving_new_bundle_crash-2645202-64-8.9.x.patch5.93 KBgnunes
#64 drupal-resaving_new_bundle_crash-2645202-64-8.9.x-TEST_ONLY.patch4.28 KBgnunes
#52 drupal-resaving_new_bundle_crash-2645202-52-TEST_ONLY.patch4.61 KBkristiaanvandeneynde
#52 interdiff-42-52.txt3.53 KBkristiaanvandeneynde
#52 drupal-resaving_new_bundle_crash-2645202-52.patch6.33 KBkristiaanvandeneynde
#46 drupal-resaving_new_bundle_crash-2645202-46.patch4.82 KBPavan B S
#42 drupal-resaving_new_bundle_crash-2645202-42.patch5.14 KBkristiaanvandeneynde
#42 interdiff-42-40.txt3.26 KBkristiaanvandeneynde
#40 drupal-resaving_new_bundle_crash-2645202-40.patch5.11 KBkristiaanvandeneynde
#27 interdiff-27-18.txt489 byteskristiaanvandeneynde
#27 drupal-resaving_new_bundle_crash-2645202-27.patch7.95 KBkristiaanvandeneynde
#22 drupal-resaving_new_bundle_crash-2645202-22-TEST_ONLY.patch6.3 KBkristiaanvandeneynde
#19 drupal-resaving_new_bundle_crash-2645202-18-TEST_ONLY.patch6.3 KBkristiaanvandeneynde
#19 drupal-resaving_new_bundle_crash-2645202-18.patch7.95 KBkristiaanvandeneynde
#15 drupal-resaving_new_bundle_crash-2645202-15-TEST_ONLY.patch5.95 KBkristiaanvandeneynde
#15 drupal-resaving_new_bundle_crash-2645202-15.patch7.59 KBkristiaanvandeneynde
#13 drupal-resaving_new_bundle_crash-2645202-13-TEST_ONLY.patch5.57 KBkristiaanvandeneynde
#13 drupal-resaving_new_bundle_crash-2645202-13.patch7.21 KBkristiaanvandeneynde
#10 drupal-resaving_new_bundle_crash-2645202-10-TEST_ONLY.patch4.78 KBkristiaanvandeneynde
#10 drupal-resaving_new_bundle_crash-2645202-10.patch6.43 KBkristiaanvandeneynde
#2 drupal-resaving_new_bundle_crash-2645202-2.patch1.95 KBkristiaanvandeneynde
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

kristiaanvandeneynde created an issue. See original summary.

kristiaanvandeneynde’s picture

Status: Active » Needs review
FileSize
1.95 KB

First stab at this, let's see how the test bot likes it.

penyaskito’s picture

Issue tags: +Needs tests

Facing the same issue here. We need to add tests reproducing the issue.

penyaskito’s picture

Probably obvious, but just in case, a workaround for contrib in the meanwhile: you can load the entity being saved again, and it will have the proper original id values.

kristiaanvandeneynde’s picture

I did this as a workaround:

 /**
   * {@inheritdoc}
   */
  public function postSave(EntityStorageInterface $storage, $update = TRUE) {
    parent::postSave($storage, $update);

    if (!$update) {
      // @todo Remove this line when https://www.drupal.org/node/2645202 lands.
      $this->setOriginalId($this->id());
      //  <<< Code that could re-save the entity goes here >>>
    }
  }
dawehner’s picture

Status: Needs review » Needs work

Moving to needs work as tests are kinda clearly missing ...

  1. +++ b/core/lib/Drupal/Core/Entity/EntityStorageBase.php
    @@ -470,15 +470,29 @@ protected function doPostSave(EntityInterface $entity, $update) {
    +    // For updated entities, we only change the original ID after the postSave()
    +    // methods and update hooks have run so those functions could correctly
    +    // identify any changes made to the ID.
    +    if ($update) {
    +      $entity->setOriginalId($entity->id());
    +    }
    

    Good catch. This could be the case for config entities theoretically.

  2. +++ b/core/lib/Drupal/Core/Entity/EntityStorageBase.php
    @@ -470,15 +470,29 @@ protected function doPostSave(EntityInterface $entity, $update) {
         // After saving, this is now the "original entity", and subsequent saves
         // will be updates instead of inserts, and updates must always be able to
         // correctly identify the original entity.
    -    $entity->setOriginalId($entity->id());
    

    Doesn't that make parts of the documentation redundant now?

kristiaanvandeneynde’s picture

@dawehner: It's actually still very applicable to the line that unsets the 'original' property, isn't it? We are telling people why we're unsetting that property: Because the entity itself is now the original.

I'd look into tests, but is there any way you can test a postSave() method or hook invocation easily? Haven't really written any D8 tests yet and a push in the right direction would help. If you have to create a whole config entity for the sake of one test, that seems like a lot of code..

kristiaanvandeneynde’s picture

@dawehner Looking into \Drupal\entity_test, I cannot find a single test for bundle entities. It seems as though the entire concept of bundle entities is not covered by any test. If there were any, I could have built this issue's test on top them, but there aren't any...

dawehner’s picture

I guess we indeed just have implicit test coverage via nodes, comments as well as block_content entities.

kristiaanvandeneynde’s picture

Attached is a patch with just the tests and one with tests and the fix from #2.

Mind that these are my first D8 tests I've ever written so they made break, be in the wrong place or set your house on fire.

The last submitted patch, 10: drupal-resaving_new_bundle_crash-2645202-10.patch, failed testing.

Status: Needs review » Needs work

The last submitted patch, 10: drupal-resaving_new_bundle_crash-2645202-10-TEST_ONLY.patch, failed testing.

kristiaanvandeneynde’s picture

Let's try again with a config schema for the bundle entity.

Still firing shots in the dark here with regard to the tests. Is there documentation on how to provide them for D8 somewhere?

kristiaanvandeneynde’s picture

Right, so that only seems to have run the setUp() method on BundleEntityTest and not testResaveNewBundleEntity(). I'm not getting any wiser from https://api.drupal.org/api/drupal/core!core.api.php/group/testing/8 or https://www.drupal.org/phpunit either...

kristiaanvandeneynde’s picture

kristiaanvandeneynde’s picture

Test-only patch should be failing, I give up. I've got other fish to fry.

kristiaanvandeneynde’s picture

I know why it's passing now! When manually creating an entity like I did in my test, the originalId gets set in ConfigEntityBase::__construct().

However, when creating an entity through its entity form, the originalId remains NULL throughout because it receives an almost completely empty entity from HtmlEntityFormController::getFormObject() and EntityForm::buildEntity() will not find originalId in the form values and thus not set it.

So my fix in #2 will definitely fix the bug, but the test need to unset the originalId property or find another way to fake a form submission.

swentel’s picture

but the test need to unset the originalId property or find another way to fake a form submission

Wouldn't it be better than to actually create a webtestbased test ? Sounds more honest then as a test instead of manually unsetting it.

kristiaanvandeneynde’s picture

kristiaanvandeneynde’s picture

I actually found that creating an almost empty entity and then setting the ID manually is exactly what the entity form submission does. So no need for a web test, as we can mimic what the form submission does.

kristiaanvandeneynde’s picture

I borked the testing by immediately hiding the TEST_ONLY patch :/

kristiaanvandeneynde’s picture

Sorry about the spam, let's try the TEST_ONLY version now.

Status: Needs review » Needs work

The last submitted patch, 22: drupal-resaving_new_bundle_crash-2645202-22-TEST_ONLY.patch, failed testing.

kristiaanvandeneynde’s picture

Status: Needs work » Needs review
Issue tags: -Needs tests

Yay! So we have a test which should fail and does fail in #22 and a test+patch which should go green and goes green in #19. Seeing as it's still the same fix from #2 and others have taken a look at this issue: RTBC?

swentel’s picture

Status: Needs review » Needs work
  1. +++ b/core/lib/Drupal/Core/Entity/EntityStorageBase.php
    @@ -470,15 +470,29 @@ protected function doPostSave(EntityInterface $entity, $update) {
         // After saving, this is now the "original entity", and subsequent saves
         // will be updates instead of inserts, and updates must always be able to
         // correctly identify the original entity.
    -    $entity->setOriginalId($entity->id());
    -
    

    these docs should be removed as they are pointless no ?

  2. +++ b/core/modules/system/src/Tests/Entity/BundleEntityTest.php
    @@ -0,0 +1,41 @@
    + * Tests proper cloning of content entities.
    

    Are we really cloning here ?

The last submitted patch, 22: drupal-resaving_new_bundle_crash-2645202-22-TEST_ONLY.patch, failed testing.

kristiaanvandeneynde’s picture

Status: Needs work » Needs review
FileSize
7.95 KB
489 bytes

@dawehner #6 and swentel #25: The resulting part is as shown below and still applies to the unset() call: It makes sure that next time a function requests the original entity, it will be loaded again with the newly saved data.

    // After saving, this is now the "original entity", and subsequent saves
    // will be updates instead of inserts, and updates must always be able to
    // correctly identify the original entity.
    unset($entity->original);

Fixed the documentation as pointed out by swentel.

kristiaanvandeneynde’s picture

Is there anything else that needs to be addressed or can this go in?

  1. It fixes the bug.
  2. It introduces a test to test bundle entities, something that was missing before.
  3. It successfully fails the test pre-patch and passes the test post-patch.
kristiaanvandeneynde’s picture

Does this need a reroll because of #2666792: Provide a route provider for add-page of entities? Technically it's still a bug in 8.0.x but it could benefit from the tests added to 8.1.x in that issue.

bojanz’s picture

@kristiaanvandeneynde
No reason not to provide different patches for 8.1 and 8.0

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.

xjm’s picture

Title: Re-saving a new bundle entity crashes the site. » Re-saving a new bundle entity throws an exception
Priority: Major » Normal
Issue tags: +Needs issue summary update

The core committers discussed this issue with the Entity and Field maintainers today. We agreed to downgrade this issue because it is only developer-facing and it is possible to work around it by setting the original ID before re-saving the entity. The error is also not unrecoverable as far as we can tell (so it doesn't entirely crash the site). An exception is a reasonable result to inform the developer that the API does not yet support this (even though that is unexpected and we probably want to fix it).

The summary could use some clarification. The first paragraph seems much broader in scope than the title suggests. Rather than "an entity", should it be "a configuration entity that is used for a bundle of another entity (like a content type/vocabulary)"? It would also be helpful to explain a usecase/scenario where this needs to be done in postSave().

Thanks for reporting this!

dawehner’s picture

Interesting enough this sounds really similar to #2718839: hook_ENTITY_update() and hook_ENTITY_insert() don't allow to resave entities with a new revision, but just the for entity ID instead of the revision ID

kristiaanvandeneynde’s picture

Issue summary: View changes

@xjm is the issue summary better like this?

xjm’s picture

Thanks @kristiaanvandeneynde, that helps!

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.

kristiaanvandeneynde’s picture

So what does this issue need to go in?

dawehner’s picture

OMG you have no idea how much pain I had with that particular bit of code.

+++ b/core/lib/Drupal/Core/Entity/EntityStorageBase.php
@@ -470,15 +470,29 @@ protected function doPostSave(EntityInterface $entity, $update) {
+    // After saving a new entity, modules may immediately re-save the entity in
+    // an insert hook or postSave method. If we don't set the original ID before
+    // that happens, the site may throw an exception when it incorrectly
+    // compares the ID to the original ID (NULL). An example of this can be
+    // found in \Drupal\Core\Config\Entity\ConfigEntityBundleBase::preSave().
+    if (!$update) {
+      $entity->setOriginalId($entity->id());
+    }

I don't see an example of a save inside a test. Ideally this should be tested as well.

kristiaanvandeneynde’s picture

Re-rolled the patch and adjusted it to match the current tests. Please note that I am still using EntityUnitTestBase, even though that class now reads:

@deprecated in Drupal 8.1.x, will be removed before Drupal 8.2.x. Use
* \Drupal\KernelTests\Core\Entity\EntityKernelTestBase instead.

@dahwener: The save is happening inside BundleEntityTest

Berdir’s picture

+++ b/core/modules/system/src/Tests/Entity/BundleEntityTest.php
@@ -0,0 +1,32 @@
+/**
+ * Tests functionality specific to bundle entities.
+ *
+ * @group Entity
+ */
+class BundleEntityTest extends EntityUnitTestBase {
+

You shouldn't, just switch to EntityKernelTestBase and move the test to core/tests/Kernel/Entity or something like that, where the other entity tests are.

kristiaanvandeneynde’s picture

dawehner’s picture

@kristiaanvandeneynde
I think having a save in a update hook would be nice as a test, as this is also a really common usecase.

kristiaanvandeneynde’s picture

@dawehner You mean in a test module and then a test checking for what that hook did? Much like what we already have for postSave()? Also, don't you mean an insert hook? Re-saving a bundle entity in an update works fine as it is.

dawehner’s picture

Well for me its mostly about ensuring resaving actually works. I ran into issue inside editor module for example, so ideally try to enable that module in the test, just as an experiment.

Pavan B S’s picture

Status: Needs review » Needs work

The last submitted patch, 46: drupal-resaving_new_bundle_crash-2645202-46.patch, failed testing.

kristiaanvandeneynde’s picture

The re-roll seems a bit off:

  • You're changing code in EntityStorageBase that is unrelated to the previous patch
  • You left out the test that was introduced in #43
  • Your IDE is misconfigured as it changes the coding style of EntityTestBundle

Could you please re-roll the patch with just the changes from the patch in #42?

jofitz’s picture

Status: Needs work » Needs review
Issue tags: -Needs reroll

I'm not convinced the patch in #42 requires a re-roll, it applies perfectly well for me. Perhaps @PavanBS was trying to apply it to 8.4.x? Retesting #42 to be sure, setting back to Needs Review in expectation of a test pass.

The last submitted patch, 42: drupal-resaving_new_bundle_crash-2645202-42.patch, failed testing.

kristiaanvandeneynde’s picture

Yeah, don't think it needed a reroll either :/

Seems like a testbot fail, judging by https://www.drupal.org/pift-ci-job/633085?

kristiaanvandeneynde’s picture

Status: Needs review » Needs work

The last submitted patch, 52: drupal-resaving_new_bundle_crash-2645202-52-TEST_ONLY.patch, failed testing.

kristiaanvandeneynde’s picture

Status: Needs work » Needs review
xjm’s picture

Thanks @Pavan B S for your interest in contributing! Note that I've saved this issue to remove any default credit for your attempted reroll, because the reroll was incorrect and not needed. (Adding the "Needs reroll" tag to a patch that actually applies is also not correct.) You can see https://www.drupal.org/patch/reroll#introduction for more information on how to reroll a patch, including how to tell from the automated testing system when a reroll is actually needed. Maybe you could look into some of the other contributor tasks for other issues, since this issue currently just needs peer code review.

@kristiaanvandeneynde, note that if you attach the test-only patch as the first attachment, rather than the second, that ensures that testbot will not mark the issue needs work (since the issue status is based on the last file attachment).

kristiaanvandeneynde’s picture

I had no idea the order of patches was of importance. Thanks @xjm!

Pavan B S’s picture

@xjm, thanks for the link, i will go through that link, and i will make sure that i will not do that mistake in future.

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.

alphawebgroup’s picture

any chance to get this committed?

hchonov’s picture

Status: Needs review » Needs work
  1. +++ b/core/lib/Drupal/Core/Entity/EntityStorageBase.php
    @@ -465,15 +465,29 @@ protected function doPostSave(EntityInterface $entity, $update) {
         // After saving, this is now the "original entity", and subsequent saves
         // will be updates instead of inserts, and updates must always be able to
         // correctly identify the original entity.
    -    $entity->setOriginalId($entity->id());
    ...
         unset($entity->original);
    

    This comment references the updating of the original ID, so it should be moved to the new description.

  2. +++ b/core/modules/system/tests/modules/entity_test/entity_test.module
    @@ -411,6 +411,16 @@ function entity_test_entity_test_insert($entity) {
    +function entity_test_entity_test_bundle_insert($entity) {
    

    The type of the parameter is missing.

  3. +++ b/core/tests/Drupal/KernelTests/Core/Entity/BundleEntityTest.php
    @@ -0,0 +1,35 @@
    +    $entity = EntityTestBundle::create(['label' => 'Foo']);
    +    $entity->set('id', 'foo');
    

    This could become a single line.

--------

any chance to get this committed?

Only when it is RTBC. You could help with the patch or the review of it.

kristiaanvandeneynde’s picture

Issue tags: +Novice

I'm a bit (actually, really) busy right now. Maybe a novice could come in and take care of #62?

kristiaanvandeneynde’s picture

Status: Needs review » Reviewed & tested by the community
Issue tags: -Novice

Not sure I'm the right person to RTBC as the original patch was my doing, but the rerolls by @gnunes are perfect. Please set back to "needs review" if it's not my call to RTBC this :)

Thanks for the rerolls!

oriol_e9g’s picture

Test only are passing and should fail.

kristiaanvandeneynde’s picture

Status: Reviewed & tested by the community » Needs review

It seems like the test only patches didn't really change and yet they go green where they used to go red. This needs further review indeed.

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.

smustgrave’s picture

Status: Needs review » Needs work
Issue tags: +Needs work, +Needs Review Queue Initiative

This issue is being reviewed by the kind folks in Slack, #needs-review-queue-initiative. We are working to keep the size of Needs Review queue [2700+ issues] to around 400 (1 month or less), following Review a patch or merge request as a guide.

The tests-only patch should definitely fails so needs work for those.

Akhil Yadav’s picture

Added patch against #64 in 10.1 version

BramDriesen’s picture

Hiding patch #75 as it's incomplete and omitting important changes and/or files.

Adding to the list [#https://www.drupal.org/project/site_moderators/issues/3339883]

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.