Skip to content

Commit ecda08c

Browse files
yoen-veltclaude
andcommitted
feat: add centralized Velt version management with CI/CD automation
- Add velt-versions.json for centralized version configuration - Add scripts/update-velt-versions.js to propagate versions to all apps - Add GitHub Actions workflow to auto-update versions on changes - Update all package.json files to use latest Velt versions - Add npm scripts: velt:update, velt:check, velt:dry-run The workflow: - Auto-triggers when velt-versions.json is modified on main - Checks version sync on PRs that modify package.json files - Can be manually triggered via workflow_dispatch 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
1 parent a4e1321 commit ecda08c

File tree

9 files changed

+653
-68
lines changed

9 files changed

+653
-68
lines changed
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
name: Update Velt Versions
2+
3+
on:
4+
# Trigger when velt-versions.json is modified
5+
push:
6+
branches: [main, master]
7+
paths:
8+
- 'velt-versions.json'
9+
10+
# Allow manual trigger
11+
workflow_dispatch:
12+
inputs:
13+
mode:
14+
description: 'Run mode'
15+
required: true
16+
default: 'update'
17+
type: choice
18+
options:
19+
- update
20+
- check
21+
- dry-run
22+
23+
# Run on PRs to check if versions are in sync
24+
pull_request:
25+
paths:
26+
- 'velt-versions.json'
27+
- '**/package.json'
28+
29+
jobs:
30+
update-versions:
31+
runs-on: ubuntu-latest
32+
permissions:
33+
contents: write
34+
pull-requests: write
35+
36+
steps:
37+
- name: Checkout repository
38+
uses: actions/checkout@v4
39+
with:
40+
fetch-depth: 0
41+
token: ${{ secrets.GITHUB_TOKEN }}
42+
43+
- name: Setup Node.js
44+
uses: actions/setup-node@v4
45+
with:
46+
node-version: '20'
47+
48+
- name: Setup pnpm
49+
uses: pnpm/action-setup@v4
50+
with:
51+
version: 10
52+
53+
- name: Determine run mode
54+
id: mode
55+
run: |
56+
if [ "${{ github.event_name }}" == "pull_request" ]; then
57+
echo "mode=check" >> $GITHUB_OUTPUT
58+
elif [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
59+
echo "mode=${{ inputs.mode }}" >> $GITHUB_OUTPUT
60+
else
61+
echo "mode=update" >> $GITHUB_OUTPUT
62+
fi
63+
64+
- name: Run version check (PR)
65+
if: steps.mode.outputs.mode == 'check'
66+
run: node scripts/update-velt-versions.js --check
67+
68+
- name: Run version update (dry-run)
69+
if: steps.mode.outputs.mode == 'dry-run'
70+
run: node scripts/update-velt-versions.js --dry-run
71+
72+
- name: Run version update
73+
if: steps.mode.outputs.mode == 'update'
74+
run: |
75+
node scripts/update-velt-versions.js
76+
77+
# Check if there are changes
78+
if git diff --quiet; then
79+
echo "No version changes needed"
80+
exit 0
81+
fi
82+
83+
# Install dependencies to update lockfile
84+
pnpm install --no-frozen-lockfile
85+
86+
- name: Commit and push changes
87+
if: steps.mode.outputs.mode == 'update' && github.event_name == 'push'
88+
run: |
89+
git config --local user.email "github-actions[bot]@users.noreply.github.com"
90+
git config --local user.name "github-actions[bot]"
91+
git add -A
92+
if ! git diff --staged --quiet; then
93+
git commit -m "chore: update Velt package versions [skip ci]"
94+
git push
95+
fi
96+
97+
- name: Create Pull Request (manual trigger)
98+
if: steps.mode.outputs.mode == 'update' && github.event_name == 'workflow_dispatch'
99+
uses: peter-evans/create-pull-request@v6
100+
with:
101+
token: ${{ secrets.GITHUB_TOKEN }}
102+
commit-message: 'chore: update Velt package versions'
103+
title: 'chore: Update Velt package versions'
104+
body: |
105+
This PR updates Velt package versions across all sample apps.
106+
107+
Changes were generated by the `update-velt-versions` workflow based on `velt-versions.json`.
108+
109+
Please review the changes and merge if everything looks correct.
110+
branch: chore/update-velt-versions
111+
delete-branch: true

apps/react/comments/text-editors/lexical/lexical-comments-demo/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"@lexical/rich-text": "^0.19.0",
1515
"@lexical/selection": "^0.19.0",
1616
"@lexical/utils": "^0.19.0",
17-
"@veltdev/client": "^4.5.8-beta.8",
17+
"@veltdev/client": "^4.6.10",
1818
"@veltdev/lexical-velt-comments": "4.5.2-beta.2",
1919
"@veltdev/react": "^4.6.10",
2020
"clsx": "^2.1.1",
@@ -36,4 +36,4 @@
3636
"tailwindcss": "^3.4.18",
3737
"typescript": "^5.9.3"
3838
}
39-
}
39+
}

apps/react/comments/text-editors/slatejs/slatejs-comments-demo/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
"lint": "next lint"
1010
},
1111
"dependencies": {
12-
"@veltdev/client": "^4.5.8-beta.8",
12+
"@veltdev/client": "^4.6.10",
1313
"@veltdev/react": "^4.6.10",
14-
"@veltdev/slate-velt-comments": "^1.0.3",
14+
"@veltdev/slate-velt-comments": "^1.0.4",
1515
"clsx": "^2.1.1",
1616
"next": "^15.5.7",
1717
"react": "^19.2.0",
@@ -33,4 +33,4 @@
3333
"tailwindcss": "^3.4.18",
3434
"typescript": "^5.9.3"
3535
}
36-
}
36+
}

apps/react/crdt/canvas/reactflow/reactflow-demo/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
},
1111
"dependencies": {
1212
"@veltdev/react": "^4.6.10",
13-
"@veltdev/reactflow-crdt": "4.5.8-beta.1",
13+
"@veltdev/reactflow-crdt": "4.5.8",
1414
"@xyflow/react": "^12.9.1",
1515
"clsx": "^2.1.1",
1616
"lucide-react": "^0.454.0",
@@ -33,4 +33,4 @@
3333
"tailwindcss": "~3.4.18",
3434
"typescript": "^5.9.3"
3535
}
36-
}
36+
}

apps/react/crdt/text-editors/tiptap/tiptap-crdt-demo/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
"@tiptap/starter-kit": "^3.14.0",
1818
"@tiptap/y-tiptap": "^3.0.0",
1919
"@veltdev/react": "^4.6.10",
20-
"@veltdev/tiptap-crdt": "^4.5.9-beta.2",
21-
"@veltdev/tiptap-crdt-react": "^4.5.9-beta.2",
20+
"@veltdev/tiptap-crdt": "^4.5.9-beta.4",
21+
"@veltdev/tiptap-crdt-react": "^4.5.9-beta.4",
2222
"@veltdev/tiptap-velt-comments": "4.5.8-beta.1",
2323
"clsx": "^2",
2424
"next": "^15.5.7",
@@ -40,4 +40,4 @@
4040
"tailwindcss": "^3.4.0",
4141
"typescript": "^5"
4242
}
43-
}
43+
}

package.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@
99
"lint": "turbo run lint --continue",
1010
"lint:fix": "turbo run lint:fix --continue || turbo run lint --continue -- --fix || true",
1111
"list": "node scripts/list-apps.js",
12-
"new:demo": "tsx scripts/new-demo.ts"
12+
"new:demo": "tsx scripts/new-demo.ts",
13+
"velt:update": "node scripts/update-velt-versions.js",
14+
"velt:check": "node scripts/update-velt-versions.js --check",
15+
"velt:dry-run": "node scripts/update-velt-versions.js --dry-run"
1316
},
1417
"repository": {
1518
"type": "git",
@@ -39,10 +42,10 @@
3942
"overrides": {
4043
"@veltdev/crdt": "4.5.8",
4144
"@veltdev/crdt-react": "4.5.8",
42-
"@veltdev/tiptap-crdt-react": "^4.5.9-beta.2",
45+
"@veltdev/tiptap-crdt-react": "^4.5.9-beta.4",
4346
"@veltdev/blocknote-crdt-react": "4.5.0-beta.3",
4447
"@veltdev/codemirror-crdt-react": "4.5.8",
4548
"@veltdev/reactflow-crdt": "4.5.8",
4649
"@veltdev/react": "^4.6.10"
4750
}
48-
}
51+
}

0 commit comments

Comments
 (0)