Problem/Motivation

The ConfigInstaller::createConfiguration() function is used to create configuration at module install time. It is marked as "Protected". However, the ability to create configuration programmatically is very useful.

The Config Update module provides a "Revert" service that does something similar, and is used by the Features module to import/revert configuration. However, the code in config_update is out of sync with core, and specifically doesn't create any "new" config, but only modifies existing config.

This presents a problem when new configuration is added to a Feature and then someone attempts to "revert" that feature...none of the new config gets created.

To fix this in config_update or in Features I could copy/paste the code from createConfiguration(), but it seems better to just make that code available to be used.

Proposed resolution

Make ConfigInstaller::createConfiguration() public.

Remaining tasks

Implement.

User interface changes

None.

Introduced terminology

None.

API changes

ConfigInstaller::createConfiguration() is available for use.

Data model changes

None.

Release notes snippet

Issue fork drupal-2852626

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

mpotter created an issue. See original summary.

mpotter’s picture

Status: Active » Needs review
StatusFileSize
new1.9 KB

Here is a straight-forward patch.

Status: Needs review » Needs work

The last submitted patch, 2: createConfiguration_2852626-2.patch, failed testing.

Grayside’s picture

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.

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.

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.

smustgrave’s picture

Status: Needs work » Postponed (maintainer needs more info)
Issue tags: +stale-issue-cleanup

Thank you for sharing your idea for improving Drupal.

We are working to decide if this proposal meets the Criteria for evaluating proposed changes. There hasn't been any discussion here for over 8 years which suggests that this has either been implemented or there is no community support. Your thoughts on this will allow a decision to be made.

Since we need more information to move forward with this issue, the status is now Postponed (maintainer needs more info). If we don't receive additional information to help with the issue, it may be closed after three months.

Thanks!

liam morland made their first commit to this issue’s fork.

liam morland’s picture

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

This looks to me like a useful feature. I have created a merge request with the patch in #2.

smustgrave’s picture

Status: Needs review » Needs work

If it’s going to stay summary needs to be updated and will need test coverage as well

liam morland’s picture

Title: Can we make ConfigInstaller::createConfiguration() Public? » Make ConfigInstaller::createConfiguration() public
Issue summary: View changes
Issue tags: -stale-issue-cleanup +Needs tests

All tests and checks are passing.

Should I be adding the return type as I did or adding to $ignoreErrors?

smustgrave’s picture

Issue tags: +stale-issue-cleanup

Leaving the tag for stats

samit.310@gmail.com made their first commit to this issue’s fork.

samitk’s picture

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

Tests have been added. Please review. Changing the Status to Needs review for Test review.

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.

smustgrave’s picture

Status: Needs review » Needs work

MR needs a rebase but also updated to point to main, I can make the change for that.

liam morland’s picture

Status: Needs work » Needs review

Re-rolled.

smustgrave’s picture

Status: Needs review » Needs work
Issue tags: +Needs change record

Thanks think one of the last things needed will be a CR since this is now technically an interface addition.

liam morland’s picture

Status: Needs work » Needs review
Issue tags: -Needs change record

I have created a change notice.

borisson_’s picture

Fixed one word in the CR, this now looks good.
I'm personally not convinced about the need to do this, I've never needed anything like this, and I've spent some time in the config system lately.
However if we do want to do this. This issue looks to be resolving it well.

borisson_’s picture

Status: Needs review » Reviewed & tested by the community
Issue tags: +drupalcampFR2026

I am going to mark this rtbc, because I think the problem in the issue is resolved by the merge request.
I am still not 100% sure if we really need this, but putting this to rtbc will surface it to the people that know how to make that decision.

godotislate’s picture

Tagging for config subsystem maintainer review.

needs-review-queue-bot’s picture

Status: Reviewed & tested by the community » Needs work
StatusFileSize
new547 bytes

The Needs Review Queue Bot tested this issue. It fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".

This does not mean that the patch necessarily needs to be re-rolled or the MR rebased. Read the Issue Summary, the issue tags and the latest discussion here to determine what needs to be done.

Consult the Drupal Contributor Guide to find step-by-step guides for working with issues.

nod_’s picture

Status: Needs work » Reviewed & tested by the community

this is probably a problem with the bot.

godotislate’s picture

Clarifying that tagging for subsystem maintainer review in #33 is for this in #32:

I am still not 100% sure if we really need this, but putting this to rtbc will surface it to the people that know how to make that decision.

alexpott’s picture

Status: Reviewed & tested by the community » Needs review

I think we've lived without this for a very long time and the work on this has been because this is in the core queue rather than because it is needed. I'm going to set a reminder to myself to close this issue in a week unless someone has an existing use-case and sets it back to rtbc. I think contrib already can extend the config installer and make the method public so this does not really block anything.

alexpott’s picture

Status: Needs review » Closed (works as designed)

As per #37 I'm going to close this issue. If someone has a compelling use-case on why it needs re-opening please do.

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.