As a Developer I would like to be able to have multiple products defined in one repo but all use the same version.
Rationale
In some cases a repo might be structured to use multiple products to organize components of a system i.e. a webapp and a backend. While both reside in their own product directory to isolated responsibilities (i.e. different configurations and automations specific to the need of the component) they form an entangled system where changes in one product will come with related changes in another product. For example a new view in a webapp requires new endoints in the backend. In those cases it is neither necessary nor beneficial to track version increments of products independently. Instead it is preferred to keep a single version for all products and in turn only provide a single release for all products at the same time.
Technical Details
A new configuration option for clci in the repo.edn file should be added that is taken into account when a new version is derived.
- The new attribute for the repo configuration is named
:clci.repo.semver/tracking with the possible values of #{:distinct :combined}.
- Releases don't use the default naming of
<product-prefix>-<version> but just <version>
- The latest release tag uses the naming of
latest without including the product-prefix
Acceptance Criteria
Stakeholder
Developer
As a Developer I would like to be able to have multiple products defined in one repo but all use the same version.
Rationale
In some cases a repo might be structured to use multiple products to organize components of a system i.e. a webapp and a backend. While both reside in their own product directory to isolated responsibilities (i.e. different configurations and automations specific to the need of the component) they form an entangled system where changes in one product will come with related changes in another product. For example a new view in a webapp requires new endoints in the backend. In those cases it is neither necessary nor beneficial to track version increments of products independently. Instead it is preferred to keep a single version for all products and in turn only provide a single release for all products at the same time.
Technical Details
A new configuration option for clci in the
repo.ednfile should be added that is taken into account when a new version is derived.:clci.repo.semver/trackingwith the possible values of#{:distinct :combined}.<product-prefix>-<version>but just<version>latestwithout including the product-prefixAcceptance Criteria
repo.ednfile to specify combined version incrementsrepo.ednconfigurationStakeholder
Developer