Skip to content

Add central project configuration and update package references (#45) - #46

Merged
ptr727 merged 4 commits into
mainfrom
develop
Apr 14, 2026
Merged

Add central project configuration and update package references (#45)#46
ptr727 merged 4 commits into
mainfrom
develop

Conversation

@ptr727

Copy link
Copy Markdown
Owner
  • Introduced Directory.Build.props and Directory.Packages.props for shared MSBuild properties and centralized NuGet package versions.
  • Updated various project files to remove specific properties and use centralized versions.
  • Enhanced GitHub workflows for code generation and pull requests.
  • Refactored launch configurations and tasks for better organization.

Signed-off-by: Pieter Viljoen ptr727@users.noreply.github.com

Signed-off-by: Pieter Viljoen ptr727@users.noreply.github.com

Improve security and prevent abuse in merge-bot workflows. Introduce a
new workflow for running the codegen app and creating pull requests,
along with a periodic workflow for weekly execution. Update
documentation to include Git and commit rules for AI coding agents.
Adjust date in the CodeGen class for accurate quote generation.
---------
Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com>
- Introduced Directory.Build.props and Directory.Packages.props for
shared MSBuild properties and centralized NuGet package versions.
- Updated various project files to remove specific properties and use
centralized versions.
- Enhanced GitHub workflows for code generation and pull requests.
- Refactored launch configurations and tasks for better organization.
Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com>
Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 13, 2026 23:11

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces centralized .NET project configuration (shared MSBuild properties + central NuGet version management) and updates projects/tooling/workflows to consume those shared settings, including adding a parallel GitHub App-based codegen path.

Changes:

  • Add Directory.Build.props and Directory.Packages.props and refactor projects to inherit shared MSBuild properties and central package versions.
  • Update GitHub Actions codegen/merge workflows to support both PAT-based and GitHub App-based automation with tightened conditions.
  • Refactor VS Code launch/tasks (including a new benchmark task) and remove redundant global using entries now covered by implicit usings.

Reviewed changes

Copilot reviewed 25 out of 25 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
Tests/Tests.csprojRemoves per-project properties and package versions to rely on central props/packages.
Tests/GlobalUsings.csRemoves redundant System global usings.
README.mdDocuments PAT vs App codegen workflow behavior and schedules.
Library/LogOptions.csRemoves redundant using now covered by implicit/global usings.
Library/Library.csprojRemoves duplicated analyzer/nullable/TFM and centralizes package versions.
Library/GlobalUsings.csRemoves redundant System global using.
Directory.Packages.propsAdds central NuGet package version declarations.
Directory.Build.propsAdds shared MSBuild properties (TFM, analyzers, nullable, artifacts path, CPM).
Console/GlobalUsings.csRemoves redundant System global usings.
Console/Console.csprojRemoves duplicated properties and centralizes package versions.
CodeGen/HttpClientFactory.csRefactors resilience handler creation and documents singleton vs per-client behavior.
CodeGen/GlobalUsings.csRemoves redundant System global usings.
CodeGen/CodeGen.csprojRemoves duplicated properties and centralizes package versions.
CodeGen/CodeGen.csUpdates generated output timestamp.
Benchmarks/GlobalUsings.csRemoves redundant System global using.
Benchmarks/Benchmarks.csprojRemoves duplicated properties and centralizes package versions.
AGENTS.mdDocuments central props/packages conventions and git/commit rules.
.vscode/tasks.jsonAdds a dedicated benchmark task.
.vscode/launch.jsonUpdates debug launch paths to use .artifacts layout.
.github/workflows/run-periodic-codegen-pull-request.ymlAdjusts schedule/concurrency for PAT-based weekly codegen.
.github/workflows/run-periodic-codegen-app-pull-request.ymlAdds weekly scheduled GitHub App-based codegen workflow.
.github/workflows/run-codegen-pull-request-task.ymlClarifies PAT/GITHUB_TOKEN roles via comments.
.github/workflows/run-codegen-app-pull-request-task.ymlAdds reusable workflow to run codegen using GitHub App auth/token.
.github/workflows/merge-bot-pull-request.ymlAdds app-based auto-merge job and clarifies/strengthens conditions.
.github/copilot-instructions.mdDocuments central MSBuild/package management and git/commit rules.

Comment thread.vscode/launch.json
Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com>
---------
Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 13, 2026 23:51

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 22 out of 22 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit 3150035 into mainApr 14, 2026
40 checks passed
ptr727 added a commit that referenced this pull request Jul 17, 2026
Fixes#332 (core gap + the six bundled nits from the #330 sweep reviews;
two of the six live in the blessed downstream reference and propagate
via the Vantage-Config carry, not this repo - see below).
## configure.sh: model inference on downstream carries
In a carry the registry is absent, so the no-arg form defaulted to
`release` and then hit the intended fail-safe abort on operational
carries (missing `develop.json`) - arg 2 was effectively mandatory
there. Now the model is inferred from which `develop` payload is carried
(a carry holds exactly its own model's); ambiguous layouts (both or
neither - e.g. a partial copy) abort rather than guess. Also: the model
may be passed as the sole argument (`configure.sh operational`) -
previously arg 1 was always parsed as a repo name (bundled nit,
Utilities #417).
Matrix-tested with the apply path stubbed: infer release, infer
operational, both-present abort (exit 1), neither-present abort (exit
1), explicit arg-2 override, model-as-sole-arg, unknown-model abort. Hub
behavior unchanged (registry present -> registry lookup, as before).
shellcheck + bash -n clean.
## Ruleset snippet hardening (duplicate-name id corruption)
The `id=$(gh api ... select(.name==...).id)` pattern in the README regen
snippet and AUDIT.md section 6 produced a **multiline id** when
duplicate same-name rulesets exist, silently corrupting the follow-up
API path (bundled nit, Utilities #417 + LanguageTags #278). Both
snippets now fetch the list once and enforce **exactly one** ruleset per
name: the regen snippet fails loudly (never regen from a guess); the
audit snippet reports `found N (defect/drift)` and continues - matching
the declared drift semantics. Live-tested read-only against this repo
(develop + main in sync; duplicate simulation counts correctly).
## README wording
Documents the inference fallback and the model-only argument form
(bundled nit, Utilities #417).
## Bundled nits NOT in this PR (with rationale)
- `gh api --input -` portability (MediaTools #19): declined - fleet
standard is current gh; not worth temp-file churn.
- jq-derived secret name lists + `--paginate` in the secrets check
(MediaTools #19, LanguageTags #278, PlexCleaner #854): these live in the
**blessed downstream self-audit reference** (the Vantage-Config carry),
not in hub files - propagated there directly after this merges (the
hub's fleet audit reads `spec/secrets.json` programmatically already).
## Propagation caveat
This re-drifts the five existing carries (Vantage-Config + the four #330
sweep repos) until their next conformance touch; Vantage-Config is
updated immediately after this merges since it is the blessed reference
the queued operational standups (HomeAssistant-Config #16,
ESPHome-Config #46, HomeAutomation-Config #21) will adapt from.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for freeto 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

@ptr727