Context
The Release Notes Onboarding RFC (docs-eng-team#698) standardises bundle output filenames by convention: {product}-{version}.yaml, derived from output_products and version. As part of this (item B2 in the RFC), explicit output: patterns in bundle.profiles are being removed from docs-builder.
Problem
BundleProfile.Output is still a supported field in BundleConfiguration. If a product has configured output: "my-product-{version}.yaml" in their changelog.yml, after the convention change lands they would silently get a bundle at an unexpected path (or a collision if two profiles produce the same conventional name).
Required change
Add a validation step at changelog bundle time: if output: is set on any profile, emit a hard error directing the author to remove it:
Error: Profile 'my-profile': 'output' is no longer supported. Remove it — bundle output names are now derived by convention as '{product}-{version}.yaml' from the profile's output_products.
The field itself can be kept in the DTO for one release cycle with the error, then removed.
Additional validation (same task)
While adding this check, also validate that no two profiles in the same changelog.yml resolve to the same {product}-{version}.yaml target for a given version, so bundle filename collisions are caught at validation time rather than silently overwriting.
Related
Context
The Release Notes Onboarding RFC (docs-eng-team#698) standardises bundle output filenames by convention:
{product}-{version}.yaml, derived fromoutput_productsand version. As part of this (item B2 in the RFC), explicitoutput:patterns inbundle.profilesare being removed from docs-builder.Problem
BundleProfile.Outputis still a supported field inBundleConfiguration. If a product has configuredoutput: "my-product-{version}.yaml"in theirchangelog.yml, after the convention change lands they would silently get a bundle at an unexpected path (or a collision if two profiles produce the same conventional name).Required change
Add a validation step at
changelog bundletime: ifoutput:is set on any profile, emit a hard error directing the author to remove it:The field itself can be kept in the DTO for one release cycle with the error, then removed.
Additional validation (same task)
While adding this check, also validate that no two profiles in the same
changelog.ymlresolve to the same{product}-{version}.yamltarget for a given version, so bundle filename collisions are caught at validation time rather than silently overwriting.Related
BundleProfile.Outputinsrc/Elastic.Documentation.Configuration/Changelog/BundleConfiguration.csChangelogBundlingService.cslines 514–526 (currentoutputresolution)