build(config): add EasyBuild.ShipIt for changelog automation - #443
Conversation
Registers easybuild.shipit 3.0.1 as a dotnet tool and adds the front matter ShipIt needs to CHANGELOG.md, pinning last_commit_released to current HEAD so it only picks up commits from here now, this leaves the hand-written history alone. Testing this against our repo found a bug: ShipIt's front-matter regex only matches a literal LF delimiter, and this repo checks CHANGELOG.md out as CRLF (core.autocrlf=true). The regex misses the front matter instead of erroring, so ShipIt falls back to scanning the entire git history and crashes on the first old merge commit it hits. I forced LF on CHANGELOG.md via .gitattributes so this in not affected by a contributor's local autocrlf setting. Also documents the local dry-run in DEVELOPMENT.md. This is not wired into CI yet and doesn't touch Directory.Build.props, these are both incremental follow-ups as per ADR-0021's implementation plan. Refs informedica#234
Greptile SummaryThis PR registers EasyBuild.ShipIt 3.0.1, initializes its changelog metadata, and enforces LF checkout for the parser-sensitive changelog file. It also documents the local dry-run workflow while leaving CI and MSBuild version propagation to follow-up work.
Confidence Score: 4/5The PR appears safe to merge, with a non-blocking documentation issue affecting contributors who attempt the preview from a feature branch. The tool registration, changelog boundary, and LF enforcement are internally consistent; only the documented preview workflow needs clarification or adjustment because its branch restriction rejects ordinary feature-branch checkouts. Files Needing Attention: DEVELOPMENT.md Important Files Changed
Reviews (1): Last reviewed commit: "build(config): add EasyBuild.ShipIt for ..." | Re-trigger Greptile |
|
|
||
| ```bash | ||
| dotnet tool restore | ||
| dotnet shipit --dry-run --allow-branch master |
There was a problem hiding this comment.
Preview command rejects feature branches
The documented command restricts ShipIt to master, so contributors running the preview from a normal feature-branch checkout receive a branch-not-allowed error instead of changelog output. State that the command must run from master, or adjust the preview command to permit the current branch.
Knowledge Base Used: Build and Versioning
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
There was a problem hiding this comment.
Pull request overview
Adds local configuration for EasyBuild.ShipIt to support future changelog/version automation per ADR-0021, while keeping existing hand-written changelog history intact and addressing a CRLF/LF parsing issue on Windows.
Changes:
- Registers
easybuild.shipitas a local dotnet tool (.config/dotnet-tools.json). - Adds ShipIt YAML front matter to
CHANGELOG.md, pinninglast_commit_releasedto the introduction commit. - Forces LF line endings for
CHANGELOG.mdvia.gitattributesand documents a local dry-run workflow inDEVELOPMENT.md.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| DEVELOPMENT.md | Documents how to run ShipIt locally (dry-run) and links to ADR-0021. |
| CHANGELOG.md | Adds ShipIt YAML front matter configuration at the top of the changelog. |
| .gitattributes | Forces LF EOL for CHANGELOG.md to avoid ShipIt front-matter parsing issues under CRLF. |
| .config/dotnet-tools.json | Registers easybuild.shipit 3.0.1 as a local dotnet tool command. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| --- | ||
| # EasyBuild.ShipIt configuration (https://github.com/easybuild-org/EasyBuild.ShipIt#configuration). | ||
| # last_commit_released is pinned to the commit this front matter was introduced on, so ShipIt only | ||
| # considers commits from here forward. Hand-written history above this is left alone. |
| As of this PR, ShipIt is installed and configured but **not** wired into the CI, it also does not | ||
| update `Directory.Build.props`, these are both a follow-up PR per ADR-0021's implementation plan. | ||
| In the meantime, we can preview locally what it would generate: |
Registers easybuild.shipit 3.0.1 as a dotnet tool and adds the front matter ShipIt needs to CHANGELOG.md, pinning last_commit_released to current HEAD so it only picks up commits from here now, this leaves the hand-written history alone.
Testing this against our repo found a bug: ShipIt's front-matter regex only matches a literal LF delimiter, and this repo checks CHANGELOG.md out as CRLF (core.autocrlf=true). The regex misses the front matter instead of erroring, so ShipIt falls back to scanning the entire git history and crashes on the first old merge commit it hits. I forced LF on CHANGELOG.md via .gitattributes so this in not affected by a contributor's local autocrlf setting.
Also documents the local dry-run in DEVELOPMENT.md. This is not wired into CI yet and doesn't touch Directory.Build.props, these are both incremental follow-ups as per ADR-0021's implementation plan.
Refs #234