57 lines
3.0 KiB
Markdown
57 lines
3.0 KiB
Markdown
|
|
# v0.1.0 Release Polish — Summary
|
|||
|
|
|
|||
|
|
## Task Description
|
|||
|
|
|
|||
|
|
Prepared GUI Video Clipper for its initial `v0.1.0` tagged release. This was a polish/branding/release-prep pass — no new features, purely metadata, versioning infrastructure, an About dialog, licensing, README, and pushing to the remote repository with a clean git history.
|
|||
|
|
|
|||
|
|
## Changes Made
|
|||
|
|
|
|||
|
|
### Versioning Infrastructure (Task 1)
|
|||
|
|
- Created `VERSION` file at project root (single source of truth: `0.1.0`)
|
|||
|
|
- Created `scripts/bump-version.sh` that syncs VERSION → `package.json`, `Cargo.toml`, `tauri.conf.json`, and `Cargo.lock`
|
|||
|
|
- Script handles leading `v`/`V`, trailing whitespace, and validates semver format
|
|||
|
|
|
|||
|
|
### Metadata Cleanup (Task 2)
|
|||
|
|
- Replaced all placeholder/template values across the codebase:
|
|||
|
|
- `productName`: "Video Clipper" → "GUI Video Clipper"
|
|||
|
|
- `identifier`: "com.erikfredericks.tauri-app" → "xyz.cottongin.gui-video-clipper"
|
|||
|
|
- `Cargo.toml` name/description/authors/lib.name
|
|||
|
|
- `main.rs` crate reference: `tauri_app_lib` → `gui_video_clipper_lib`
|
|||
|
|
- `index.html` title and SetupWizard body text
|
|||
|
|
|
|||
|
|
### Path Scrubbing (Task 3)
|
|||
|
|
- Replaced 6 absolute paths containing personal username in 3 plan doc files with relative equivalents
|
|||
|
|
|
|||
|
|
### LICENSE (Task 4)
|
|||
|
|
- Added MIT license file (copyright 2026 cottongin)
|
|||
|
|
|
|||
|
|
### README (Task 5)
|
|||
|
|
- Full rewrite replacing stock Tauri template: features list, prerequisites, build instructions, architecture overview, contributing guide, license
|
|||
|
|
|
|||
|
|
### About Dialog (Task 6)
|
|||
|
|
- New `AboutDialog.svelte` component showing app icon, title, version (via `getVersion()`), author, license, repo link
|
|||
|
|
- Three triggers: toolbar ℹ button, ⌘/ shortcut, clickable version label in status bar
|
|||
|
|
- Wired into `App.svelte` and `StatusBar.svelte`
|
|||
|
|
|
|||
|
|
### Git History Scrub & Release (Tasks 7-8)
|
|||
|
|
- Committed all untracked spec/plan docs
|
|||
|
|
- Ran `git-filter-repo --replace-text` in two passes:
|
|||
|
|
1. Path/identifier replacements (com.erikfredericks.tauri-app → xyz.cottongin.gui-video-clipper, absolute paths → empty)
|
|||
|
|
2. Bare username replacement (erikfredericks → REDACTED_USERNAME)
|
|||
|
|
- Final verification: 0 matches for "erikfredericks" across all 49 commits
|
|||
|
|
- Added remote: `git@code.cottongin.xyz:cottongin/gui-video-clipper.git`
|
|||
|
|
- Tagged `v0.1.0` and pushed to `origin/master`
|
|||
|
|
|
|||
|
|
## Lessons Learned
|
|||
|
|
|
|||
|
|
- `git-filter-repo --replace-text` is clean and fast but needs multiple passes when replacements include the target string as documentation (meta-references in spec/plan docs survive the first pass)
|
|||
|
|
- The branch was `master` (from initial scaffold), not `main` — plan assumed `main`
|
|||
|
|
- `npm pkg set version=X --json` emits a JSON parse error on some npm versions before the fallback succeeds — harmless but noisy
|
|||
|
|
- Pre-existing `vite.config.ts` type errors cause `npm run check` to exit non-zero; unrelated to this work
|
|||
|
|
|
|||
|
|
## Follow-Up Items
|
|||
|
|
|
|||
|
|
- Fix pre-existing `vite.config.ts` type errors so `npm run check` passes clean
|
|||
|
|
- Consider renaming `master` → `main` if preferred
|
|||
|
|
- Future: CI/CD pipeline, `.dmg` packaging, changelog generation
|