Skip to content

Config Phase 2 — wire existing bv options to buildvana.json #269

@rdeago

Description

@rdeago

Sub-issue of #267. Depends on Phase 1 (#268) and #280 (BuildPipeline extraction).

Scope

  • Make the *Settings injectables config-aware: feed BuildvanaConfig into ReleaseSettings and the new per-step Settings (DotNetSettings + Restore/Build/Test/PackSettings, hanging off the BuildPipeline from Consolidate the build pipeline into a cohesive BuildPipeline #280), so each Resolve* establishes the flag → config → default chain. *Settings stay the source-merging injectables; config DTOs stay in Buildvana.Core.Configuration.
  • Wire: dotnet.configuration and release.configuration (collapsing the two hardcoded "Release" defaults; resolution --configurationrelease.configurationdotnet.configuration"Release", with release.configuration layering over DotNetSettings.Configuration); release.checkPublicApi; release.changelogUpdates (none|stable|all) + release.emptyChangelog (substitute text, else fail) — config-only, removing the --unstable-changelog and --require-changelog flags with no CLI replacement (changelog policy is repo-stable, not per-invocation); release.dogfood; dotnet.*.args and restore.*.env (where * is one of restore/build/test/pack/nugetPush, used according to the specific invocation in DotNetService) together with dotnet.all.args and dotnet.all.env (to be merged with invocation-specific settings by DotNetService.RunDotNetAsync()).
  • release.generateDocsFrom (regex, short branch name) replaces mainBranch: delete GitService.MainBranch/FindMainBranch, the --main-branch global flag and its pre-parsing, and the discovery dance; the changelog permalink uses the actual CurrentBranch.

Acceptance criteria

  • Each option resolves flag-over-config-over-default; with no config file, behavior matches today (except the removed --main-branch).
  • changelogUpdates: none skips changelog updates; an empty Unreleased section is substituted from emptyChangelog when present, else fails the release.
  • Docs generation is gated by generateDocsFrom (default ["^main$", "^master$"] when unconfigured, matching today's main/master discovery); --main-branch and MainBranch no longer exist.
  • CHANGELOG: Unreleased entries for the new options; **BREAKING CHANGE** for the removed --main-branch flag.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancement[issue/PR] requests / implements new or improved functionality.refactor[issue/PR] requests / implements a refactor of existing code without affecting functionality.
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions