Drupal Association members fund grants that make connections all over the world.
Early on in the CMI discussions, it was determined that we had to support partial deployment of configuration - if you add a view, you should be able to deploy just that view. Unfortunately this also caused several architectural problems
- Deploying deletes of configuration is impossible without a full accounting of the items available in each site. To get around this the manifest system was created, however manifests also made deployment more confusing, as it meant every add or delete of a ConfigEntity was associated with two files rather than one.
- It is far more difficult to manage dependencies in a partial deployment scenario. For instance, I could attempt to deploy a field instance without deploying the field definition or the bundle it is attached to. We can add this work to a verification step, but it is a lot more work we are creating for ourselves.
- After doing an import we had to delete all config from the staging directory to prevent it from being imported again. This causes issues with git-based deployment mechanisms and is not completely intuitive.
Given these and other related problems, we should eliminate the ability to do partial deployments and instead require that the whole config tree be deployed at all times. Additionally, we will ad a UI to export and import the entirety of your config via a single tarball. This will actually increase usability for non-technical users, as it means they no longer have to dive into their directory structure, find the weirdly named config directory, and move files between two differently named directories. This is a pretty big UX win. This decision was made at DrupalCon Portland in a meeting with the CMI maintainers and major contributors, and was approved by Dries.
For those users that are adamant about needing partial deployment, they can write their own by swapping out the import mechanism. This will not be supported by core though.
PASSED: [[SimpleTest]]: [MySQL] 55,270 pass(es). View
FAILED: [[SimpleTest]]: [MySQL] 54,413 pass(es), 30 fail(s), and 30 exception(s). View