@@ -303,19 +303,31 @@ refactor: simplify expression evaluator
303303 git rebase upstream/main
304304 ```
305305
306- 2 . ** Ensure tests pass** :
306+ 2 . ** Create a changeset** (for package changes):
307+ ``` bash
308+ pnpm changeset
309+ ```
310+
311+ This will prompt you to:
312+ - Select which packages have changed
313+ - Choose the version bump type (major, minor, patch)
314+ - Write a summary of the changes
315+
316+ Learn more about changesets in the [ Versioning and Releases] ( #versioning-and-releases ) section.
317+
318+ 3 . ** Ensure tests pass** :
307319 ``` bash
308320 pnpm test
309321 ```
310322
311- 3 . ** Ensure build succeeds** :
323+ 4 . ** Ensure build succeeds** :
312324 ``` bash
313325 pnpm build
314326 ```
315327
316- 4 . ** Update documentation** if needed
328+ 5 . ** Update documentation** if needed
317329
318- 5 . ** Add tests** for new features
330+ 6 . ** Add tests** for new features
319331
320332### Creating the PR
321333
@@ -398,6 +410,121 @@ pnpm docs:build
398410
399411See [ Documentation Guide] ( ./docs/README.md ) for details.
400412
413+ ## Versioning and Releases
414+
415+ We use [ Changesets] ( https://github.com/changesets/changesets ) for version management and automated releases.
416+
417+ ### Understanding Changesets
418+
419+ Changesets is a tool that helps us:
420+ - ** Track changes** : Each PR includes a changeset file describing what changed
421+ - ** Automate versioning** : Automatically determine version bumps based on changesets
422+ - ** Generate changelogs** : Create comprehensive changelogs from changeset descriptions
423+ - ** Coordinate releases** : Release multiple packages together in our monorepo
424+
425+ ### When to Create a Changeset
426+
427+ Create a changeset when your PR makes changes to any package in ` packages/ ` :
428+
429+ - ✅ ** DO create a changeset for** :
430+ - New features
431+ - Bug fixes
432+ - Breaking changes
433+ - Performance improvements
434+ - API changes
435+
436+ - ❌ ** DON'T create a changeset for** :
437+ - Documentation updates only
438+ - Changes to examples or apps
439+ - Internal refactoring with no user-facing changes
440+ - Test updates without code changes
441+
442+ ### How to Create a Changeset
443+
444+ 1 . ** Run the changeset command** :
445+ ``` bash
446+ pnpm changeset
447+ ```
448+
449+ 2 . ** Select packages** : Use arrow keys and spacebar to select which packages changed
450+ ```
451+ 🦋 Which packages would you like to include?
452+ ◯ @object-ui/core
453+ ◉ @object-ui/react
454+ ◯ @object-ui/components
455+ ```
456+
457+ 3 . ** Choose version bump type** :
458+ - ** Major** (x.0.0): Breaking changes
459+ - ** Minor** (0.x.0): New features (backwards compatible)
460+ - ** Patch** (0.0.x): Bug fixes and minor updates
461+
462+ 4 . ** Write a summary** : Describe what changed
463+ ```
464+ Summary: Add support for custom validation rules in forms
465+ ```
466+
467+ 5 . ** Commit the changeset file** :
468+ ``` bash
469+ git add .changeset/* .md
470+ git commit -m " chore: add changeset"
471+ ```
472+
473+ ### Changeset Message Guidelines
474+
475+ Write clear, user-facing descriptions:
476+
477+ ``` markdown
478+ ✅ Good:
479+ - Add support for custom date formats in DatePicker
480+ - Fix validation error in nested form fields
481+ - Improve performance of large data grids by 50%
482+
483+ ❌ Bad:
484+ - Updated code
485+ - Fixed bug
486+ - Changes to validation
487+ ```
488+
489+ ### Release Process
490+
491+ The release process is automated:
492+
493+ 1 . ** Create PR with changes** → Include a changeset file
494+ 2 . ** PR is merged** → Changeset bot creates/updates a "Version Packages" PR
495+ 3 . ** Version PR is merged** → Packages are automatically published to npm
496+
497+ You don't need to manually:
498+ - Update version numbers
499+ - Update CHANGELOGs
500+ - Create Git tags
501+ - Publish to npm
502+
503+ Everything is handled by the changeset automation!
504+
505+ ### Example Workflow
506+
507+ ``` bash
508+ # 1. Create a feature branch
509+ git checkout -b feat/add-date-picker
510+
511+ # 2. Make your changes
512+ # ... edit files ...
513+
514+ # 3. Create a changeset
515+ pnpm changeset
516+ # Select @object-ui/components
517+ # Choose "minor" (new feature)
518+ # Summary: "Add DatePicker component with calendar popup"
519+
520+ # 4. Commit everything
521+ git add .
522+ git commit -m " feat: add DatePicker component"
523+
524+ # 5. Push and create PR
525+ git push origin feat/add-date-picker
526+ ```
527+
401528## Adding Components
402529
403530### Creating a New Component
0 commit comments