Skip to content

Commit 008de3a

Browse files
author
cuiko
committed
docs: Track CLAUDE.md so the release workflow stays discoverable
CLAUDE.md was previously gitignored as a per-machine scratch file, but the release instructions inside it are now the single source of truth for how to ship a new version (\`bump Info.plist → tag → push\`, CI does the rest). Without it in the repo a fresh clone or a different machine loses that knowledge, and the next maintainer is back to manually running \`make dist\` and \`gh release create\`.
1 parent f719b9a commit 008de3a

2 files changed

Lines changed: 31 additions & 1 deletion

File tree

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,3 @@ Package.resolved
66
.DS_Store
77
*.o
88
*.swp
9-
CLAUDE.md

CLAUDE.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# TermIMS
2+
3+
A macOS menu bar app. Swift Package Manager layout, no Xcode project.
4+
5+
```
6+
Sources/TermIMS/*.swift # one file per logical class / concern
7+
Scripts/package-app.sh # wraps the SPM binary into TermIMS.app
8+
Resources/AppIcon.png # source for the generated AppIcon.icns
9+
Info.plist # bundle metadata, copied into the .app
10+
Package.swift # SPM manifest (executable target)
11+
Makefile # thin shell over package-app.sh + DMG packaging
12+
```
13+
14+
Build/install/run/dist all go through `make` (which calls `swift build -c release` under the hood). Adding a new file just means dropping a `.swift` into `Sources/TermIMS/` — SPM picks it up automatically.
15+
16+
## Release
17+
18+
When the user asks to publish a release, follow these steps:
19+
20+
1. **Update version** in `Info.plist` — bump both `CFBundleVersion` and `CFBundleShortVersionString` (use x.y.z format).
21+
2. **Commit, tag, push** — version bump should be its own commit:
22+
```sh
23+
git add Info.plist
24+
git commit -m "chore: Bump version to x.y.z"
25+
git tag vx.y.z
26+
git push origin main --tags
27+
```
28+
29+
That's it. The `release` workflow at `.github/workflows/release.yml` picks up the `v*` tag, builds `dist/TermIMS.dmg` on a macOS runner via `make dist`, and creates a GitHub Release with auto-generated notes (from PRs merged since the previous tag). No local `make dist` / `gh release create` needed.
30+
31+
Ask the user for the version number if not provided. Release notes are derived automatically — only ask if they want to customise.

0 commit comments

Comments
 (0)