Skip to content

Conversation

@jenny-s51
Copy link
Collaborator

  • Implement semantic-release
  • Enable automated NPM publishing and changelog generation

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

- 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
.releaserc.json Outdated
@@ -0,0 +1,71 @@
{

Choose a reason for hiding this comment

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

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.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Nice catch, removed this to align better with the approach we use in PF react

.releaserc.json Outdated
[
"@semantic-release/github",
{
"successComment": false,

Choose a reason for hiding this comment

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

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.

package.json Outdated
"name": "@jenny-s51/patternfly-component-schemas",
"version": "1.0.1",
"name": "@patternfly/patternfly-component-schemas",
"version": "1.1.0",

Choose a reason for hiding this comment

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

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.

package.json Outdated
Comment on lines 44 to 59
"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"
]

Choose a reason for hiding this comment

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

Nit: I would have this in the semantic release config file instead of in your package file.

@jenny-s51 jenny-s51 merged commit a295337 into patternfly:main Sep 16, 2025
Sign up for free to 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