Skip to content

fix(hidi): track independent versions with standard release-please components - #897

Merged
Gavin Barron (gavinbarron) merged 4 commits into
mainfrom
gavinbarron-hidi-main-automated-versioning
Oct 9, 2026
Merged

Gavin Barron (gavinbarron) merged 4 commits into
mainfrom
gavinbarron-hidi-main-automated-versioning

Conversation

@gavinbarron

@gavinbarron Gavin Barron (gavinbarron) commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Follow the user-provided standard multi-component reference a65052d57fa5e623c765024fb05a0384691a9168 and the subsequent request that ADO releases publish only the component selected by the triggering tag.

Standard independent versions

  • One stock release-please config/manifest: OData . remains 3.2.1; Hidi src/Microsoft.OpenApi.Hidi remains 3.10.2.
  • Hidi component-relative changelog/project XML Version updater and hidi-v3.* tags; OData root changelog/Directory.Build.props updater and componentless v* tags.
  • Existing pinned stock action/token/target-branch preserved. Delete duplicate Hidi config/manifest/disabled job.
  • One standard compatibility setting, separate-pull-requests: true, preserves OData-only componentless release parsing in the pinned engine.
  • All superseded custom runner/NPM/tests/LCOV/labels/checkpoints removed. CI/CD and Sonar workflows restored to accepted base. No framework or committed test infrastructure added.

User-directed ADO component-tag routing

  • .azure-pipelines/ci-build.yml: tag trigger v3.*; deploy requires succeeded() and startsWith(Build.SourceBranch, 'refs/tags/v3.'). First build step rejects wrong/malformed tags and tag/Directory.Build.props mismatches before tooling/staging.
  • Correct DotNetCoreCLI@2 pack inputs: packagesToPack selects only the OData project, configuration/packDirectory/nobuild/includesymbols/includesource/buildProperties are the supported pack contract. The old projects/arguments were ignored for pack, risking all-project packaging and a post-signing rebuild.
  • OData package signing is exact-version only. Each NuGet/GitHub deployment independently parses the triggering tag and requires exactly one matching OData package. Push/assets use only that verified path; GitHub tag/version derives from the source tag, never the first wildcard match. Failed validation stops GitHub editing.
  • .azure-pipelines/hidi-release.yml: retains hidi-v3.* trigger and flag-gated matching publish condition. Move existing Hidi major/exact-tag/project check to the first build step. Require valid Hidi tag, preserved migration floor, exact package/symbols/executable/versioned ZIP, and matching container context project/tag version.

Validation

Session-only actual stock release-please 17.6.0 plans and rendered XML/changelog/manifest/tag candidates pass 10 scenarios: Hidi fix hidi-v3.10.3 / feature hidi-v3.11.0 leave OData unchanged; OData fix v3.2.2 / feature v3.3.0 leave Hidi unchanged; mixed source changes produce both candidates. Dependencies unchanged. Honest boundaries documented: Hidi tests outside its source package do not independently release Hidi; root distribution/helper files follow stock root routing.

126 session-only checks parse the actual ADO YAML and execute its PowerShell guard/selector blocks: OData/Hidi tags, branch/PR/manual builds, unknown/other-major/malformed/case-mismatched tags, version mismatches, prereleases, ambiguous/wrong-version packages, missing Hidi assets, container mismatch and migration floor. Actual stage conditions and unchanged branch/PR filters/Hidi false flags are checked; all embedded PowerShell scripts parse.

Actual local OData-only dotnet pack --no-build produces only Microsoft.OpenApi.OData.3.2.1.nupkg + .snupkg, matching nuspec identity/version. The DLL hash is unchanged before/after pack, proving no post-signing rebuild behavior. Stock workflow actionlint passes.

Safety and landing

No actual release, tag, publishing run, label or resource grant created during validation. Hidi stable/preview publishing flags remain false. Protected environments, service connections, private-feed checks, signing contract and Hidi 3.10.2 migration floor remain unchanged; source version baselines and accepted Docker/ESRP history are preserved. This does not assert production signing/authorization readiness or resolve unrelated Sonar work.

Parent coordinates v2-first landing; no merge or auto-merge.

Apply exact-file release routing through the pinned release-please plugin API. Keep OData releases unchanged and maintain isolated Hidi version PR checkpoints without creating production tags or releases.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5aef9099-c268-492f-a58a-b591c916f1bc
@gavinbarron
Gavin Barron (gavinbarron) requested a review from a team as a code owner October 9, 2026 18:24
Create only the two verified Hidi lifecycle labels, retain tag-free version cycles after baseline advances, and retire the duplicate unfiltered OData tag writer and its GitHub-release-only consumer. Keep official publishing gates unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5aef9099-c268-492f-a58a-b591c916f1bc
Comment thread .github/release-please/package.json Outdated
Follow the supplied migration reference with two packages and versions in one config and manifest. Retain separate-pull-requests only as the stock-engine compatibility setting for OData componentless tags; restore accepted workflows and remove the superseded custom runner and duplicated Hidi release scaffolding.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5aef9099-c268-492f-a58a-b591c916f1bc
@gavinbarron Gavin Barron (gavinbarron) changed the title fix(hidi): automate independent main version PRs fix(hidi): track independent versions with standard release-please components Oct 9, 2026
Restrict main OData releases to v3 tags and dedicated Hidi releases to hidi-v3 tags. Validate tag/project versions before staging, use supported OData-only pack inputs with no rebuild, and select exact tag-version packages and assets. Preserve branch validation, Hidi publishing flags, signing and protected environments.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5aef9099-c268-492f-a58a-b591c916f1bc
@sonarqubecloud

sonarqubecloud Bot commented Oct 9, 2026

Copy link
Copy Markdown

@gavinbarron
Gavin Barron (gavinbarron) merged commit 0b8e521 into main Oct 9, 2026
45 checks passed
@gavinbarron
Gavin Barron (gavinbarron) deleted the gavinbarron-hidi-main-automated-versioning branch October 9, 2026 22:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants