From 82e480719e87b977c4f29aec471b066fa09db00a Mon Sep 17 00:00:00 2001 From: Joe Date: Sun, 8 Feb 2026 16:38:54 -0600 Subject: [PATCH] Update CHANGELOG for version 8.0.1 and add release command documentation - Added new section for version 8.0.1 in CHANGELOG.md detailing enhancements to root install scripts, syncback management of .gitkeep files, and improvements to patch visualization and sync test reliability. - Introduced a new release command documentation file to guide version bumping, changelog updates, and release tagging processes. --- .cursor/commands/release.md | 143 ++++++++++++++++++++++++++++++++++++ CHANGELOG.md | 12 +++ rbx-dom | 2 +- 3 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 .cursor/commands/release.md diff --git a/.cursor/commands/release.md b/.cursor/commands/release.md new file mode 100644 index 00000000..1c388dd0 --- /dev/null +++ b/.cursor/commands/release.md @@ -0,0 +1,143 @@ +# /release - Version Bump and Tag Release + +Bump the project version, update the changelog, commit, push, and tag a new release. + +The user must provide the new version string (e.g. `8.0.1`). If not provided, ask for it before proceeding. + +--- + +## Step 1: Pre-Flight — Submodule Check + +Run these two commands and inspect the output: + +```powershell +git submodule status +``` + +```powershell +git submodule foreach "git status --short" +``` + +**Verify ALL submodules are clean:** +- No submodule prefixed with `+` (dirty) or `-` (uninitialized) in `git submodule status` +- No uncommitted changes in any submodule from `git submodule foreach` + +**If any submodule is dirty or uninitialized, STOP immediately.** Report which submodules have issues and do not proceed until the user resolves them. + +**Ignore** `rbx-dom/aftman.toml` — it references the Atlas version but is not part of the release process. + +--- + +## Step 2: Version Bump + +Replace the old version with the new version in each of these files: + +| File | What to change | +|---|---| +| `Cargo.toml` | `version = "X.Y.Z"` (line 3) | +| `plugin/Version.txt` | Entire file content — must match `Cargo.toml` exactly (enforced by `build.rs`) | +| `rokit.toml` | `atlas = "UserGeneratedLLC/rojo@X.Y.Z"` | + +**Do NOT manually edit `Cargo.lock`.** It is auto-updated in the next step. + +After editing the three files above, run: + +```powershell +cargo check +``` + +This does two things: +1. Auto-updates `Cargo.lock` with the new version +2. Validates that `plugin/Version.txt` matches `Cargo.toml` (build.rs assertion — build will fail if mismatched) + +**If `cargo check` fails, fix the issue before continuing.** + +--- + +## Step 3: Update CHANGELOG.md + +### 3a. Gather commit history + +Run this to get all commits since the previous version tag (replace `vOLD` with the previous tag): + +```powershell +git log --oneline vOLD..HEAD +``` + +### 3b. Write the release section + +Insert a new version section between `## Unreleased` and the previous version's header. Format: + +```markdown +## Unreleased + +## [X.Y.Z] (Month Dth, Year) + +* Summary of change 1 +* Summary of change 2 +* ... + +[X.Y.Z]: https://github.com/UserGeneratedLLC/rojo/releases/tag/vX.Y.Z +``` + +**Guidelines for writing entries:** +- Group related commits into single bullet points (don't list every commit separately) +- Write user-facing descriptions, not raw commit messages +- Use present tense ("Add", "Fix", "Improve", not "Added", "Fixed", "Improved") +- Omit internal-only changes (CI tweaks, test refactors, snapshot updates) unless they affect behavior +- Keep link definitions in ascending numeric order (per repo convention) + +### 3c. Include a git summary + +After the bullet points, add a collapsible section with the raw commit log so readers can see full detail: + +```markdown +
+Full commit log + +- `abc1234` Commit message one +- `def5678` Commit message two +- ... + +
+``` + +--- + +## Step 4: Commit, Push, Tag, Push Tag + +Run these sequentially: + +```powershell +git add Cargo.toml Cargo.lock plugin/Version.txt rokit.toml CHANGELOG.md +``` + +```powershell +git commit -m "Bump version to X.Y.Z" +``` + +```powershell +git push +``` + +```powershell +git tag vX.Y.Z +``` + +```powershell +git push origin vX.Y.Z +``` + +The tag push triggers `.github/workflows/release.yml` which creates a draft GitHub release and builds artifacts for all platforms. + +--- + +## All Versioned Files (Reference) + +| File | Role | Updated by | +|---|---|---| +| `Cargo.toml` | Crate version (source of truth) | Manual edit | +| `Cargo.lock` | Lockfile version | `cargo check` (automatic) | +| `plugin/Version.txt` | Plugin version, validated at build time | Manual edit | +| `rokit.toml` | Toolchain manager reference | Manual edit | +| `CHANGELOG.md` | Release notes | Manual edit | diff --git a/CHANGELOG.md b/CHANGELOG.md index 81826dae..c9df26e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,18 @@ Making a new release? Simply add the new header with the version and date undern ## Unreleased +## [8.0.1] (February 8th, 2026) + +* Root install scripts now also build and install the VS Code/Cursor extension. +* Syncback now manages `.gitkeep` files to preserve empty directories during filesystem writes. +* Added Git-style change metadata and diff utilities to the plugin for richer patch visualization. +* Refactored subtree highlight handling in PatchVisualizer and DomLabel components. +* Improved two-way sync test reliability with polling helpers and macOS compatibility checks. +* Fixed internal reference in ServeSession to reflect Atlas sync operation. +* Standardized messageCursor redaction in snapshot test files. + +[8.0.1]: https://github.com/UserGeneratedLLC/rojo/releases/tag/v8.0.1 + ## [8.0.0] (February 7th, 2026) * Improved syncback performance by parallelizing filesystem writes using rayon. File writes and removals now run concurrently, while directory operations remain sequential to preserve ordering constraints. diff --git a/rbx-dom b/rbx-dom index 36722ce2..188dc9da 160000 --- a/rbx-dom +++ b/rbx-dom @@ -1 +1 @@ -Subproject commit 36722ce2bbf7aefca56489d4f58913060eccd568 +Subproject commit 188dc9da72de70452909b0c5f67d9a42c9dbad05