You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The auxiliary backchannel version (AuxiliaryBackchannelCapabilities in src/Aspire.Hosting/Backchannel/BackchannelDataTypes.cs) is being incremented by multiple PRs within the same release milestone, when only one new version is needed per release.
For example, in the current milestone:
V3 (aux.v3) was added on May 13 for batched console log streaming and AppHost startup readiness wait
Both features ship in the same release. From a compatibility standpoint, a single new version (V3) with all the new capabilities would be sufficient. There's no deployed release between these changes that would require distinguishing V3 from V4.
Each unnecessary version increment adds:
More capability constants to maintain
More SupportsVN properties on interfaces and implementations
More conditional branching in both CLI and hosting code
More test surface area
Proposed solutions
Some options (not mutually exclusive):
Add release-version comments to capability constants — annotate each version with which Aspire release it ships in, making it obvious whether a new version is needed:
/// <summary>/// Version 1 capabilities (Aspire 9.1): GetAppHostInformationAsync, .../// </summary>publicconststringV1="aux.v1";/// <summary>/// Version 2 capabilities (Aspire 9.2): Request objects, new methods./// </summary>publicconststringV2="aux.v2";/// <summary>/// Version 3 capabilities (Aspire 9.3): Batched console log streaming, AppHost startup readiness wait,/// JSON-valued resource properties via ClientCapabilities opt-in./// </summary>publicconststringV3="aux.v3";
Add agent/copilot instructions — add guidance in .github/instructions/hosting-core.instructions.md (or a new backchannel-specific instructions file) telling AI agents and contributors:
Do not add a new AuxiliaryBackchannelCapabilities version if one has already been added in the current milestone. Instead, add your new capability to the existing newest version. Only increment the version when the previous version has shipped in a release.
Add a code comment block directly above the capability constants:
// IMPORTANT: Only add a new version constant when the previous version has shipped// in a released version of Aspire. All new capabilities within a single release// milestone should be grouped under the same version number.
Document the versioning policy in a docs/backchannel-versioning.md or in the file header, explaining the rule and the reasoning (backward compatibility only matters between released versions, not between PRs in the same milestone).
Context
AuxiliaryBackchannelCapabilities is defined in src/Aspire.Hosting/Backchannel/BackchannelDataTypes.cs
The CLI advertises capabilities in src/Aspire.Cli/Backchannel/AppHostAuxiliaryBackchannel.cs
Problem
The auxiliary backchannel version (
AuxiliaryBackchannelCapabilitiesinsrc/Aspire.Hosting/Backchannel/BackchannelDataTypes.cs) is being incremented by multiple PRs within the same release milestone, when only one new version is needed per release.For example, in the current milestone:
aux.v3) was added on May 13 for batched console log streaming and AppHost startup readiness waitaux.v4) is proposed in Fix remaining issue 17244 items #17507 for JSON-valued resource propertiesBoth features ship in the same release. From a compatibility standpoint, a single new version (V3) with all the new capabilities would be sufficient. There's no deployed release between these changes that would require distinguishing V3 from V4.
Each unnecessary version increment adds:
SupportsVNproperties on interfaces and implementationsProposed solutions
Some options (not mutually exclusive):
Add release-version comments to capability constants — annotate each version with which Aspire release it ships in, making it obvious whether a new version is needed:
Add agent/copilot instructions — add guidance in
.github/instructions/hosting-core.instructions.md(or a new backchannel-specific instructions file) telling AI agents and contributors:Add a code comment block directly above the capability constants:
Document the versioning policy in a
docs/backchannel-versioning.mdor in the file header, explaining the rule and the reasoning (backward compatibility only matters between released versions, not between PRs in the same milestone).Context
AuxiliaryBackchannelCapabilitiesis defined insrc/Aspire.Hosting/Backchannel/BackchannelDataTypes.cssrc/Aspire.Cli/Backchannel/AppHostAuxiliaryBackchannel.cs