A new structure and new possibilities for Config Split
Our solution for advanced configuration management workflows has just become more powerful!
The core of what makes Configuration Split work so nicely with drush and the Drupal UI has been split off in a new module: Config Filter!
Config Filter exposes a ConfigFilter plugin and swaps the sync storage applying all the active ConfigFilters to it. This means it is no longer necessary to manually swap the service as we recommended to do in the past and it works also when installing a site, as the swapping happens only when the module is installed. As of drush 8.1.10 this works with the default config import and export commands.
Update Config Split
For current users of the Config Split module it means that they should remove the custom service swapping as part of the update and then apply the database updates which will install Config Filter (you already downloaded it with composer update, right?).
New command-line options and new workflows
With the re-factoring we also changed the options of the drush and console commands. We added a new option for specifying a split and then export to and import from only that split directory; this supersedes the previous options to specify separate export destinations and import sources - they are not needed for the simple work flow we advocate for, and the behaviour can easily be achieved by modifying settings.php as needed.
With the addition of the single split export, a new workflow becomes possible: export only the "production" split, before importing the whole configuration which will have it merged back in.
In addition to the new architecture the graylist feature has been improved so that dependencies can be graylisted as well and optionally only items that differ from the sync storage are split off. More details and more documentation will come in future.
The ultimate goal is to improve the export API in Drupal 8 core so that more advanced workflows are possible. Config Filter is our proposal for a solution in contrib, but we feel that this functionality should belong to Core.
On the way to Core, here are some more immediate steps:
Clean up after the big refactoring, adding automated tests for some special cases.
Improve the documentation.
Integrate with Config Readonly to allow locking the site except for the configuration defined in splits.
For those that want to do configuration management without seatbelts, integrate Config Ignore with Config Filter so that it can work smoothly next to Config Split.
...and eventually propose Config Filter for inclusion in Core!
More information and acknowledgments
The re-factoring started during the Drupal Mountain Camp in Davos and I would like to thank the organizing committee for the great event.
On Friday I gave a presentation about my favorite topic in Drupal: Configuration Management, attached here are the slides based on the Nuvole presentation at DrupalCon Dublin 2016.