Skip to content

Commit fa0e6b7

Browse files
Copilothotlong
andcommitted
docs: Add versioning guide and finalize documentation structure
- Create comprehensive versioning and release guide - Update meta.json to include all new documentation - Document semver, release process, and compatibility - Complete documentation optimization Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent d06037e commit fa0e6b7

File tree

2 files changed

+344
-0
lines changed

2 files changed

+344
-0
lines changed

docs/meta.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@
3232
"migration",
3333
"troubleshooting",
3434
"security",
35+
"versioning",
3536
"faq",
37+
"examples",
3638
"community"
3739
]
3840
}

docs/versioning.md

Lines changed: 342 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,342 @@
1+
---
2+
title: "Versioning & Releases"
3+
description: "How ObjectUI versions and releases work"
4+
---
5+
6+
# Versioning & Releases
7+
8+
ObjectUI follows [Semantic Versioning](https://semver.org/) (SemVer) and uses [Changesets](https://github.com/changesets/changesets) for version management.
9+
10+
## Semantic Versioning
11+
12+
We use SemVer format: `MAJOR.MINOR.PATCH`
13+
14+
### Version Numbers
15+
16+
- **MAJOR** (1.0.0) - Incompatible API changes
17+
- **MINOR** (0.1.0) - New features, backwards compatible
18+
- **PATCH** (0.0.1) - Bug fixes, backwards compatible
19+
20+
### Examples
21+
22+
```
23+
0.1.0 → 0.1.1 # Patch: Bug fix
24+
0.1.1 → 0.2.0 # Minor: New feature
25+
0.2.0 → 1.0.0 # Major: Breaking change
26+
```
27+
28+
## Pre-1.0 Releases
29+
30+
Currently, ObjectUI is in **beta** (version 0.x.x). During this phase:
31+
32+
- **Minor versions** (0.x.0) may include breaking changes
33+
- **Patch versions** (0.0.x) are for bug fixes and minor improvements
34+
- We aim for API stability but reserve the right to make changes
35+
36+
**Target for 1.0.0**: Q2 2026
37+
38+
## Release Schedule
39+
40+
### Regular Releases
41+
42+
- **Minor releases**: Every 4-6 weeks
43+
- **Patch releases**: As needed for bug fixes
44+
- **Major releases**: When breaking changes are necessary
45+
46+
### Security Releases
47+
48+
Critical security fixes are released immediately as patch versions.
49+
50+
## Package Versioning
51+
52+
All packages in the ObjectUI monorepo are versioned together:
53+
54+
```json
55+
{
56+
"@object-ui/core": "0.3.0",
57+
"@object-ui/react": "0.3.0",
58+
"@object-ui/components": "0.3.0",
59+
"@object-ui/designer": "0.3.0"
60+
}
61+
```
62+
63+
**Why unified versioning?**
64+
- Simpler dependency management
65+
- Ensures compatibility between packages
66+
- Clearer release communication
67+
68+
## Changelog
69+
70+
All changes are documented in [CHANGELOG.md](/CHANGELOG.md) following [Keep a Changelog](https://keepachangelog.com/) format.
71+
72+
### Changelog Categories
73+
74+
- **Added** - New features
75+
- **Changed** - Changes in existing functionality
76+
- **Deprecated** - Soon-to-be removed features
77+
- **Removed** - Removed features
78+
- **Fixed** - Bug fixes
79+
- **Security** - Security fixes
80+
81+
## Release Process
82+
83+
### 1. Development
84+
85+
Contributors create changesets when making changes:
86+
87+
```bash
88+
# Add a changeset
89+
pnpm changeset
90+
91+
# Follow prompts to:
92+
# - Select affected packages
93+
# - Choose version bump type (major/minor/patch)
94+
# - Write change description
95+
```
96+
97+
### 2. Version Bump
98+
99+
When ready to release:
100+
101+
```bash
102+
# Update versions based on changesets
103+
pnpm changeset:version
104+
105+
# This updates package.json files and CHANGELOG.md
106+
```
107+
108+
### 3. Publish
109+
110+
```bash
111+
# Build all packages
112+
pnpm build
113+
114+
# Publish to npm
115+
pnpm changeset:publish
116+
117+
# Push changes and tags
118+
git push --follow-tags
119+
```
120+
121+
### 4. GitHub Release
122+
123+
Create a GitHub release from the tag with:
124+
- Version number
125+
- Release notes from CHANGELOG
126+
- Highlights of major changes
127+
- Migration guide (if breaking changes)
128+
129+
## Version Compatibility
130+
131+
### React Version Compatibility
132+
133+
| ObjectUI Version | React Version |
134+
|-----------------|---------------|
135+
| 0.1.x - 0.3.x | 18.x - 19.x |
136+
| 1.0.x (planned) | 18.x - 19.x |
137+
138+
### Tailwind Version Compatibility
139+
140+
| ObjectUI Version | Tailwind Version |
141+
|-----------------|------------------|
142+
| 0.1.x - 0.3.x | 3.x - 4.x |
143+
| 1.0.x (planned) | 3.x - 4.x |
144+
145+
### Node.js Version Compatibility
146+
147+
| ObjectUI Version | Node.js Version |
148+
|-----------------|-----------------|
149+
| 0.1.x - 0.3.x | 18.x+ |
150+
| 1.0.x (planned) | 18.x+ |
151+
152+
## Breaking Changes
153+
154+
### What Constitutes a Breaking Change?
155+
156+
- Removing or renaming public APIs
157+
- Changing function signatures
158+
- Removing component props
159+
- Changing default behavior that affects existing code
160+
- Updating minimum dependency versions
161+
162+
### Migration Guides
163+
164+
For releases with breaking changes, we provide:
165+
- Detailed migration guide in [/docs/migration](/migration/)
166+
- Before/after code examples
167+
- Automated migration tools (when possible)
168+
- Deprecation warnings in advance
169+
170+
## Deprecation Policy
171+
172+
### Deprecation Process
173+
174+
1. **Announcement** - Feature marked as deprecated in docs
175+
2. **Warning Period** - At least one minor version
176+
3. **Removal** - In next major version
177+
178+
### Example Timeline
179+
180+
```
181+
v0.9.0: Feature X deprecated (warning added)
182+
v0.10.0: Still available but deprecated
183+
v1.0.0: Feature X removed
184+
```
185+
186+
## Pre-releases
187+
188+
### Beta Releases
189+
190+
Beta versions are tagged and published to npm:
191+
192+
```bash
193+
npm install @object-ui/react@beta
194+
```
195+
196+
### Alpha Releases
197+
198+
For experimental features, alpha versions may be published:
199+
200+
```bash
201+
npm install @object-ui/react@alpha
202+
```
203+
204+
### Nightly Builds
205+
206+
Not currently available, but planned for future.
207+
208+
## Stability Guarantees
209+
210+
### Stable APIs
211+
212+
These packages/APIs are considered stable:
213+
- `@object-ui/types` - Type definitions
214+
- `@object-ui/core` - Core functionality
215+
- `@object-ui/react` - React bindings
216+
- `@object-ui/components` - Base components
217+
218+
### Experimental APIs
219+
220+
Features marked as "experimental" may change without notice:
221+
- Documented with `@experimental` tag
222+
- May have separate import paths
223+
- No semver guarantees
224+
225+
## Release Notes
226+
227+
### Where to Find Release Notes
228+
229+
- [CHANGELOG.md](/CHANGELOG.md) - Detailed changes
230+
- [GitHub Releases](https://github.com/objectstack-ai/objectui/releases) - Release highlights
231+
- [Blog](https://blog.objectui.org) - Feature announcements
232+
- [Twitter](https://twitter.com/objectui) - Quick updates
233+
234+
### Release Note Format
235+
236+
Each release includes:
237+
- Version number and date
238+
- Summary of changes
239+
- Breaking changes (if any)
240+
- Migration instructions (if needed)
241+
- Notable improvements
242+
- Bug fixes
243+
- Contributors
244+
245+
## Upgrade Guide
246+
247+
### Patch Updates (Safe)
248+
249+
```bash
250+
# Update to latest patch version
251+
npm update @object-ui/react
252+
```
253+
254+
### Minor Updates (Usually Safe)
255+
256+
```bash
257+
# Update to specific minor version
258+
npm install @object-ui/react@0.3.0
259+
```
260+
261+
### Major Updates (Requires Care)
262+
263+
1. Read migration guide
264+
2. Update dependencies
265+
3. Run tests
266+
4. Fix any breaking changes
267+
5. Deploy with monitoring
268+
269+
## Contributing to Releases
270+
271+
### Adding a Changeset
272+
273+
When your PR introduces changes:
274+
275+
```bash
276+
# Add changeset
277+
pnpm changeset
278+
279+
# Answer prompts:
280+
# Which packages changed? @object-ui/react
281+
# What's the bump type? minor
282+
# What changed? Added new feature X
283+
```
284+
285+
### Writing Good Changelogs
286+
287+
**Good:**
288+
```
289+
Added support for dynamic forms with conditional fields
290+
```
291+
292+
**Better:**
293+
```
294+
Added support for dynamic forms with conditional fields.
295+
Forms can now show/hide fields based on other field values
296+
using the new `visibleOn` property.
297+
```
298+
299+
**Best:**
300+
```
301+
Added support for dynamic forms with conditional fields (#123)
302+
303+
Forms can now show/hide fields based on other field values
304+
using the new `visibleOn` property. This enables complex
305+
multi-step forms and dependent field scenarios.
306+
307+
Example:
308+
{
309+
"visibleOn": "${data.userType === 'premium'}"
310+
}
311+
312+
See docs for full details: /docs/concepts/expressions
313+
```
314+
315+
## Version Support
316+
317+
### Long-Term Support (LTS)
318+
319+
Currently no LTS versions. Planned for post-1.0.
320+
321+
### Support Timeline
322+
323+
- **Current version**: Full support
324+
- **Previous minor**: Security fixes only
325+
- **Older versions**: No support
326+
327+
### Example
328+
329+
```
330+
v0.3.x: Full support (current)
331+
v0.2.x: Security fixes only
332+
v0.1.x: No support
333+
```
334+
335+
## Questions?
336+
337+
- 💬 [Discussions](https://github.com/objectstack-ai/objectui/discussions)
338+
- 📧 [Email](mailto:hello@objectui.org)
339+
340+
---
341+
342+
Last updated: January 2026

0 commit comments

Comments
 (0)