You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Changesets-driven. Pushing to `master` opens/updates a "Version Packages" PR; merging it publishes to npm (tokenless OIDC) and mints the GitHub releases (`.github/workflows/release.yml`).
106
107
108
+
### Branch model — where a PR goes by change type
109
+
110
+
Three long-lived branches; a PR's base is chosen by the semver impact of the change, not by its commit-type label alone:
111
+
112
+
| Base | Change type | Semver | Examples |
113
+
|------|-------------|--------|----------|
114
+
|`master`| fixes, docs, chore, refactor, tests | patch / none |`fix(...)`, `docs(...)`, `test(...)`, and any app/tooling change that ships no package version |
115
+
|`dev`| new features that add public API | minor |`feat(...)` that adds a component, composable, prop, or option |
116
+
|`next`| breaking changes | major | anything with a `BREAKING CHANGE:` footer |
117
+
118
+
-**Only `master` publishes.**`dev` and `next` accumulate work and merge **into `master`** at the next minor / major cut — that merge is what triggers the changesets release. Never publish from `dev`/`next` directly.
119
+
-**`feat`/`fix` are still reserved for `packages/*` source.** A `feat(docs)` / `feat(playground)` / app-only change ships no package version, so it targets `master` (patch train) regardless of the `feat` label — prefer `docs`/`chore` for those.
120
+
-**Design systems** (`@paper/*`) version independently; a DS feature still targets `dev` (it's a minor bump for that package).
121
+
- CI (`pr-checks.yml`) and the changeset reminder (`changeset-reminder.yml`) run on PRs into all three branches; `release.yml` triggers on `master` pushes only.
122
+
107
123
### Changeset content contract
108
124
109
125
The `.changeset/*.md` body renders verbatim into the changelog and GitHub release notes — it is release-note copy, not a commit message. Don't budget by character count; budget by what belongs:
Copy file name to clipboardExpand all lines: apps/docs/src/pages/introduction/contributing.md
+24-6Lines changed: 24 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -114,9 +114,25 @@ pnpm build # Build packages
114
114
115
115
## Pull Requests
116
116
117
+
### Branch Model
118
+
119
+
`@vuetify/v0` uses three long-lived branches. Open your PR against the base that matches the **semver impact** of your change:
120
+
121
+
| Base | Use it for | Release |
122
+
|------|-----------|---------|
123
+
|`master`| Bug fixes, docs, chores, refactors, tests | Patch (or no version bump) |
124
+
|`dev`| New features that add public API (a component, composable, prop, or option) | Minor |
125
+
|`next`| Breaking changes (anything with a `BREAKING CHANGE:` footer) | Major |
126
+
127
+
Only `master` publishes to npm. Work on `dev` and `next` merges into `master` at the next minor or major release, and that merge is what ships it. If you're unsure which base fits, open against `master` — a maintainer will retarget it.
128
+
129
+
::: tip
130
+
A `feat` that only touches the docs site, playground, or other tooling (not `packages/*` source) ships no package version, so it targets `master` — prefer a `docs`/`chore` prefix for those.
131
+
:::
132
+
117
133
### Before Submitting
118
134
119
-
1. Create a new branch from `master`
135
+
1. Create a new branch from the right base for your change (see [Branch Model](#branch-model)): `master` for fixes, `dev` for features, `next` for breaking changes
120
136
2. Make your changes
121
137
3. Write tests for new functionality
122
138
4. Run `pnpm lint:fix` to fix formatting
@@ -166,12 +182,14 @@ Never edit `package.json` versions by hand — release automation owns every bum
166
182
167
183
### Branch Naming
168
184
169
-
Use descriptive branch names:
185
+
Use descriptive branch names; the prefix should match the base branch you target (see [Branch Model](#branch-model)):
186
+
187
+
-`fix/issue-description` - Bug fixes → base `master`
188
+
-`feat/feature-name` - New features → base `dev`
189
+
-`docs/what-changed` - Documentation updates → base `master`
190
+
-`refactor/what-changed` - Code refactoring → base `master`
170
191
171
-
-`fix/issue-description` - Bug fixes
172
-
-`feat/feature-name` - New features
173
-
-`docs/what-changed` - Documentation updates
174
-
-`refactor/what-changed` - Code refactoring
192
+
Breaking changes target `next` regardless of prefix.
0 commit comments