Feature Toggling in AEM
As our team migrates toward a Continuous Delivery model (wherein we deploy our continuous integration branch to production several times a day), we find ourselves pushing code for features that pass all of our tests and criteria, but still aren't quite ready for prime time.
As a simple example, let's say we're working on a new component, and we're half-way through its development. The code for this component will be pushed live to production as part of our continuous integration / continuous delivery strategy, but we don't actually want the component to appear in the AEM sidekick on the production environment yet because it's not 100% finished. (It should be available on the development environments for engineers to test and develop, however.) In this sense, we'd like the visibility of this component to depend on the environment configuration using the same code base.
Another example: We may make a modification to an existing component which includes adding a new dialog tab to it, but we don't want to expose this new tab on production just yet.
For those of you who are also using a CD strategy, how did you approach this requirement in AEM without resorting to separate feature branches (which we would very much like to avoid) or different compiled packages for different environments? Is it possible to define different JCR content packages for different environments within the same codebase?
