Skip to content

Commit 4d9eb5c

Browse files
committed
docs: expand release process with complete workflow
- Add pre-release checklist - Add branch merging steps - Add tag creation steps - Add GitHub release creation steps - Add post-release cleanup steps - Add quick reference command sequence
1 parent a78dfbd commit 4d9eb5c

File tree

1 file changed

+98
-19
lines changed

1 file changed

+98
-19
lines changed

.github/copilot-instructions.md

Lines changed: 98 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -175,44 +175,123 @@ const flashEnabled = settings.flashOnMeetingStart === true;
175175

176176
## Release Process
177177

178-
### Creating a Release Package
178+
### Complete Release Workflow
179+
180+
Follow these steps in order for a complete release:
181+
182+
#### 1. Pre-Release Checklist
183+
184+
```powershell
185+
# Ensure all tests pass
186+
npm test
187+
188+
# Ensure you're on the feature branch with all changes committed
189+
git status
190+
git log --oneline -5
191+
```
192+
193+
#### 2. Update Version Numbers
194+
195+
Update version in both files (must match):
196+
- `manifest.json`: 4-part version `"Version": "X.Y.Z.0"`
197+
- `package.json`: 3-part version `"version": "X.Y.Z"`
198+
199+
#### 3. Merge Feature Branch to Main
200+
201+
```powershell
202+
# Switch to main and pull latest
203+
git checkout main
204+
git pull origin main
205+
206+
# Merge feature branch (use --no-ff to preserve history)
207+
git merge --no-ff feature/vX.Y.Z-branch-name -m "Merge feature/vX.Y.Z-branch-name: Brief description"
208+
209+
# Push to main
210+
git push origin main
211+
```
212+
213+
#### 4. Create Release Package
179214

180215
**CRITICAL**: Always use the Stream Deck CLI to create packages. Manual zipping will create invalid packages.
181216

182217
```powershell
183-
# 1. Build for production (outputs to release/ folder)
218+
# Build for production (outputs to release/ folder)
184219
npm run build:production
185220
186-
# 2. Create package using Stream Deck CLI
221+
# Create package using Stream Deck CLI
187222
streamdeck pack "release/com.pedrofuentes.ical.sdPlugin" --output release
188223
189-
# 3. Creates: release/com.pedrofuentes.ical.streamDeckPlugin
224+
# Verify package was created
225+
Get-Item "release/com.pedrofuentes.ical.streamDeckPlugin"
190226
```
191227

192-
### Creating a GitHub Release
228+
#### 5. Test the Package (Optional but Recommended)
193229

194230
```powershell
195-
# 1. Create annotated tag
196-
git tag -a vX.Y.Z -m "vX.Y.Z - Description"
231+
# Remove dev plugin and test the package
232+
Stop-Process -Name "StreamDeck" -Force
233+
Remove-Item "$env:APPDATA\Elgato\StreamDeck\Plugins\com.pedrofuentes.ical.sdPlugin" -Recurse -Force
234+
Start-Process "$env:ProgramFiles\Elgato\StreamDeck\StreamDeck.exe"
235+
# Then double-click the .streamDeckPlugin file to install and verify it works
236+
```
237+
238+
#### 6. Create Git Tag
239+
240+
```powershell
241+
# Create annotated tag on main branch
242+
git tag -a vX.Y.Z -m "vX.Y.Z - Brief description of release"
243+
244+
# Push tag to remote
197245
git push origin vX.Y.Z
246+
```
247+
248+
#### 7. Create GitHub Release
198249

199-
# 2. Create release with plugin package
250+
```powershell
251+
# Create release with plugin package attached
200252
gh release create vX.Y.Z "release/com.pedrofuentes.ical.streamDeckPlugin" `
201-
--title "vX.Y.Z - Title" `
202-
--notes "Release notes"
253+
--title "vX.Y.Z - Release Title" `
254+
--notes "## What's New
255+
256+
- ✨ Feature 1
257+
- ✨ Feature 2
258+
- 🐛 Bug fix 1
259+
260+
## Installation
261+
262+
Download the \`.streamDeckPlugin\` file and double-click to install."
203263
```
204264

205-
### Testing Before Release
265+
Or create manually on GitHub:
266+
1. Go to https://github.com/pedrofuentes/stream-deck-ical/releases/new
267+
2. Choose the tag `vX.Y.Z`
268+
3. Set release title
269+
4. Add release notes
270+
5. Attach `release/com.pedrofuentes.ical.streamDeckPlugin`
271+
6. Publish release
272+
273+
#### 8. Post-Release Cleanup
206274

207275
```powershell
208-
# Remove dev plugin and test the package
209-
Stop-Process -Name "StreamDeck" -Force
210-
Remove-Item "$env:APPDATA\Elgato\StreamDeck\Plugins\com.pedrofuentes.ical.sdPlugin" -Recurse -Force
211-
Start-Process "$env:ProgramFiles\Elgato\StreamDeck\StreamDeck.exe"
212-
# Then double-click the .streamDeckPlugin file to install
276+
# Delete merged feature branch (optional)
277+
git branch -d feature/vX.Y.Z-branch-name
278+
git push origin --delete feature/vX.Y.Z-branch-name
279+
280+
# Re-link development plugin if needed
281+
streamdeck link "dist/com.pedrofuentes.ical.sdPlugin"
213282
```
214283

215-
### Version Numbers
284+
### Quick Reference Commands
216285

217-
- `manifest.json`: 4-part version `"Version": "X.Y.Z.0"`
218-
- `package.json`: 3-part version `"version": "X.Y.Z"`
286+
```powershell
287+
# Full release sequence (after testing is complete)
288+
git checkout main
289+
git pull origin main
290+
git merge --no-ff feature/vX.Y.Z-name -m "Merge feature/vX.Y.Z-name"
291+
git push origin main
292+
npm run build:production
293+
streamdeck pack "release/com.pedrofuentes.ical.sdPlugin" --output release
294+
git tag -a vX.Y.Z -m "vX.Y.Z - Description"
295+
git push origin vX.Y.Z
296+
gh release create vX.Y.Z "release/com.pedrofuentes.ical.streamDeckPlugin" --title "vX.Y.Z" --notes "Release notes"
297+
```

0 commit comments

Comments
 (0)