chore(build): Add semantic release - #3
Conversation
- Convert 462 components from metadata to JSON Schema format - Create modular package structure with individual component exports - Add build scripts and NPM package configuration - Include source component-metadata.json for regeneration - Use JSON Schema draft 2020-12 standard - Ready for NPM publication and MCP integration Provides JSON Schema metadata for all PatternFly React components to enable: - AI-assisted coding tools and MCP servers - Component prop validation and autocompletion - Modern development workflows with structured metadata
| @@ -0,0 +1,71 @@ | |||
| { | |||
There was a problem hiding this comment.
I'm a bit curious how you came up with this config as it's quite a bit different from ours, but that's not a blocker.
There was a problem hiding this comment.
Nice catch, removed this to align better with the approach we use in PF react
| [ | ||
| "@semantic-release/github", | ||
| { | ||
| "successComment": false, |
There was a problem hiding this comment.
I would probably suggest having this set to true, those success comments can be really nice when you're trying to track down what version a particular change went into.
| "name": "@jenny-s51/patternfly-component-schemas", | ||
| "version": "1.0.1", | ||
| "name": "@patternfly/patternfly-component-schemas", | ||
| "version": "1.1.0", |
There was a problem hiding this comment.
You'll probably want to have this as 1.0.0, semantic-release actually doesn't use or update the version here. But again not a blocker.
| "release": { | ||
| "branches": ["main"], | ||
| "plugins": [ | ||
| "@semantic-release/commit-analyzer", | ||
| "@semantic-release/release-notes-generator", | ||
| "@semantic-release/changelog", | ||
| "@semantic-release/npm", | ||
| [ | ||
| "@semantic-release/git", | ||
| { | ||
| "assets": ["CHANGELOG.md", "package.json"], | ||
| "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" | ||
| } | ||
| ], | ||
| "@semantic-release/github" | ||
| ] |
There was a problem hiding this comment.
Nit: I would have this in the semantic release config file instead of in your package file.
Per @wise-king-sullyman's feedback and discussion on the optimal process for semantic release automation, this PR includes implementation of semantic release as phase 1 for automation of patternfly-component-schemas.
Phase 2 will include the work done in #1 towards syncing with Patternfly releases, with a tool such as Renovate or Dependabot to handle syncing on a quarterly cadence. This follow-up effort will need further investigation / discussion and is tracked in http://github.com/patternfly/patternfly-component-schemas/issues/2