Skip to content

Create changetool script for validating change-notes - #4113

Open
mario-campos wants to merge 8 commits into
mainfrom
mario-campos/add-changenote-script
Open

Create changetool script for validating change-notes#4113
mario-campos wants to merge 8 commits into
mainfrom
mario-campos/add-changenote-script

Conversation

@mario-campos

@mario-campos mario-campos commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

This PR introduces a distinct NPM package/script under scripts/changetool for the purpose of validating change-notes (and eventually, in a subsequent PR, merging change-notes into CHANGELOG.md).

Presently, this script has only one command, validate (executed as npm --prefix scripts/changetool start validate), which accepts path(s) to change-note files to be validated. Any flaws in the change-notes are described in the output, and the command will exit with 1.

$ npm --prefix scripts/changetool start validate package.json 

> changetool@1.0.0 start
> tsx index.ts validate package.json

package.json: invalid filename; must match pattern YYYY-MM-DD-id.md
package.json: invalid category; must be one of: breaking, feature, improvement, securityFix, fix, unship, deprecation, knownIssue, misc
package.json: invalid Markdown; content must be a single unordered list with hyphen bullets and no other Markdown elements

Risk assessment

For internal use only. Please select the risk level of this change:

  • Low risk: Changes are fully under feature flags, or have been fully tested and validated in pre-production environments and are highly observable, or are documentation or test only.

Which use cases does this change impact?

Workflow types:

  • N/A

Products:

  • N/A

Environments:

  • Testing/None - This change does not impact any CodeQL workflows in production.

How did/will you validate this change?

  • Unit tests - I am depending on unit test coverage (i.e. tests in .test.ts files).

If something goes wrong after this change is released, what are the mitigation and rollback strategies?

  • Development/testing only - This change cannot cause any failures in production.

How will you know if something goes wrong after this change is released?

  • N/A

Are there any special considerations for merging or releasing this change?

  • No special considerations - This change can be merged at any time.

Merge / deployment checklist

  • Confirm this change is backwards compatible with existing workflows.
  • Consider adding a changelog entry for this change.
  • Confirm the readme and docs have been updated if necessary.

Copilot AI balanced review requested due to automatic review settings August 26, 2026 22:13
@mario-campos
mario-campos requested a review from a team as a code owner August 26, 2026 22:13
@github-actions github-actions Bot added the size/XXL May be extremely hard to review label Aug 26, 2026
@mario-campos
mario-campos force-pushed the mario-campos/add-changenote-script branch from eb65ce0 to 426c104 Compare August 26, 2026 22:13

Copilot AI 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

Adds a standalone TypeScript CLI for validating change-note files.

Changes:

  • Validates filenames, categories, and Markdown structure.
  • Adds unit tests and package configuration.
  • Integrates changetool testing and linting into CI.
Show a summary per file
File Description
scripts/changetool/index.ts Implements CLI dispatch and exit codes.
scripts/changetool/cli/validate.ts Implements change-note validation.
scripts/changetool/cli/validate.test.ts Tests validation behavior.
scripts/changetool/package.json Defines scripts and dependencies.
scripts/changetool/package-lock.json Locks package dependencies.
scripts/changetool/tsconfig.json Configures TypeScript compilation.
eslint.config.mjs Adds changetool lint configuration.
.github/workflows/pr-checks.yml Adds a dedicated test job.

Review details

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Files not reviewed (1)
  • scripts/changetool/package-lock.json: Generated file
  • Files reviewed: 7/8 changed files
  • Comments generated: 7
  • Review effort level: Balanced

Comment thread scripts/changetool/tsconfig.json
Comment thread scripts/changetool/tsconfig.json
Comment thread scripts/changetool/index.ts Outdated
Comment thread scripts/changetool/cli/validate.ts
Comment thread scripts/changetool/cli/validate.ts Outdated
Comment thread scripts/changetool/cli/validate.ts Outdated
Comment thread .github/workflows/pr-checks.yml
@github-actions github-actions Bot added size/L May be hard to review and removed size/XXL May be extremely hard to review labels Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/L May be hard to review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants