**Note**: The Component versioning where major versions are automatically resolved ONLY works if your components are in a project explicitly set as a CI/CD Catalog, AND only after a release has been created since enabling this setting.
# Aggregate Components
One interesting case to consider is a re-usable CI/CD Component that is simply an aggregator of other CI/CD components. This gets tricky with embedded component versioning. One solution is to make embedded component version a component input variable. This is problematic in the case when the default needs to change. Ideally the new default is in lock-step with a new major version release. This won't work if you're using the release workflow to release a new version of the release workflow, since it will notice that the new default doesn't exist yet (because you're attempting to create it), and the pipeline will fail. A chicken n' egg scenario. In practice, we create new major version, then quickly follow up with a new version that bumps the default embedded component default version. There is a small window when bumping to a major version and the default embedded component versions are out-of-sync. A better approach may be to add a new separate aggregate component per major release. Examples:
One interesting case to consider is a re-usable CI/CD Component that is simply an aggregator of other CI/CD components. This gets tricky with embedded component versioning. One solution is to make embedded component version a component input variable. This is problematic in the case when the default needs to change. Ideally the new default is in lock-step with a new major version release. This won't work if you're using the release workflow to release a new version of the release workflow that's also a catalog project, since it will notice that the new default doesn't exist yet (because you're attempting to create it), and the pipeline will fail. A chicken n' egg scenario - the catalog project release is special and won't let you release a new version of a catalog project with a reference to the version you are attempting to create.
To get around this, we create new major version of the release workflow project first, then quickly follow up with yet another new release, but a minor version that bumps the default embedded component default version. There is a small window when bumping to a major version and the default embedded component versions are out-of-sync. A better approach may be to add a new separate aggregate component per major release. Examples: