fix(release): install.sh --install-dir and release docs - #202

Merged
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes
Apr 22, 2026
Merged

fix(release): install.sh --install-dir and release docs#202
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • install.sh now creates the --install-dir target when it does not already exist, so ./install.sh --install-dir /new/path succeeds on a fresh directory. Previously mkdir -p only ran inside the ~/.local/bin fallback branch, and the final mv failed on any user-supplied path that did not exist.
  • docs/releasing.md stops pointing at the removed scripts/releaser/ directory (moved to scripts/releaser.ts and scripts/lib/targets.ts), documents that the releaser expects the CI-style $ARTIFACTS_DIR/clerk-<target>/ layout (distinct from the dist/artifacts/<target>/ layout written by scripts/build.ts), and notes the Bun 1.3.11 pin used by CI so local darwin-arm64 rehearsal matches production.

Context

Follow-up to #199. Covers the remaining release-readiness gaps surfaced during review of the 1.0.0 prep branch. Stacked on top of #199 so review stays scoped. Changelog entry added for the install.sh fix; docs change is non-user-facing and needs no changeset.

Test plan

  • Reproduced the original install.sh --install-dir /tmp/new-path failure, confirmed the fix resolves it.
  • Dry-ran the new rehearsal recipe in docs/releasing.md against a staged clerk-darwin-arm64/ artifact.
  • bun run format:check, lint, typecheck, test all pass locally.

@changeset-bot

changeset-botBot commented Apr 21, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 784e05e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
clerkPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@wyattjoh

wyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: wyattjoh/release-clerk-1-0-0

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh changed the title wyattjoh/release docs installer fixesfix(release): install.sh --install-dir and release docsApr 21, 2026

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Base automatically changed from wyattjoh/release-clerk-1-0-0 to mainApril 21, 2026 23:04
When install.sh is invoked with --install-dir pointing at a directory
that does not yet exist, the final `mv` failed because mkdir only ran
inside the ~/.local/bin fallback branch. Run mkdir -p unconditionally
just before the move so explicit custom paths match the fallback
behavior.
The releaser moved from scripts/releaser/ to scripts/releaser.ts, and
target definitions from scripts/releaser/targets.ts to
scripts/lib/targets.ts, but docs/releasing.md still pointed at the old
paths. The documented dry-run command therefore failed with
"Module not found", and nothing explained that the releaser reads from
a CI-style $ARTIFACTS_DIR/clerk-<target>/ layout rather than the
dist/artifacts/<target>/ layout produced by scripts/build.ts.
Replace the five stale paths, rewrite the dry-run section with a
working single-target rehearsal recipe that stages binaries under the
expected CI layout, and add a note about the Bun 1.3.11 CI pin so
local darwin-arm64 rehearsal matches what CI builds.
@wyattjoh
wyattjohforce-pushed the wyattjoh/release-docs-installer-fixes branch from 6e04847 to 784e05eCompareApril 21, 2026 23:11
@wyattjoh
wyattjoh marked this pull request as ready for review April 21, 2026 23:11
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This pull request updates the release and installation infrastructure across three files. It adds a changeset entry documenting a patch-level fix, updates documentation references for build artifacts and release process paths (from scripts/releaser/targets.ts to scripts/lib/targets.ts and scripts/releaser/index.ts to scripts/releaser.ts), and revises release rehearsal instructions. The functional change moves the mkdir -p "$INSTALL_DIR" command in install.sh outside a conditional block to ensure the target directory is created regardless of which installation path is selected.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: a fix to install.sh for the --install-dir option and updates to release documentation.
Description check✅ PassedThe description clearly explains both the install.sh fix and the documentation updates, with context and test plan details that relate directly to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@install.sh`:
- Around line 269-270: Add an automated test that verifies installer creates a
non-existent custom --install-dir and moves the binary (exercise INSTALL_DIR,
TMPDIR, BINARY_NAME, EXT logic in install.sh): write a test that creates a
unique temp path that does not exist, invokes the installer with --install-dir
pointing at that path, then assert the directory was created and the binary
"${BINARY_NAME}${EXT}" was moved from TMPDIR to
"${INSTALL_DIR}/${BINARY_NAME}${EXT}" (and optionally check executable
permissions and exit code), and clean up after the run; place the test alongside
existing installer integration tests so future changes to mkdir -p or mv
behavior are covered.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ae0a5359-78a3-487a-8b7a-4265694f1ac8

📥 Commits

Reviewing files that changed from the base of the PR and between bbbbed6 and 784e05e.

📒 Files selected for processing (3)
  • .changeset/install-sh-create-install-dir.md
  • docs/releasing.md
  • install.sh

Comment threadinstall.sh
@wyattjoh
wyattjoh merged commit bba6a98 into mainApr 22, 2026
13 of 17 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/release-docs-installer-fixes branch April 22, 2026 15:06
@github-actionsgithub-actionsBot mentioned this pull request Apr 22, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(release): install.sh --install-dir and release docs - #202

Merged
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes
Apr 22, 2026
Merged

fix(release): install.sh --install-dir and release docs#202
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • install.sh now creates the --install-dir target when it does not already exist, so ./install.sh --install-dir /new/path succeeds on a fresh directory. Previously mkdir -p only ran inside the ~/.local/bin fallback branch, and the final mv failed on any user-supplied path that did not exist.
  • docs/releasing.md stops pointing at the removed scripts/releaser/ directory (moved to scripts/releaser.ts and scripts/lib/targets.ts), documents that the releaser expects the CI-style $ARTIFACTS_DIR/clerk-<target>/ layout (distinct from the dist/artifacts/<target>/ layout written by scripts/build.ts), and notes the Bun 1.3.11 pin used by CI so local darwin-arm64 rehearsal matches production.

Context

Follow-up to #199. Covers the remaining release-readiness gaps surfaced during review of the 1.0.0 prep branch. Stacked on top of #199 so review stays scoped. Changelog entry added for the install.sh fix; docs change is non-user-facing and needs no changeset.

Test plan

  • Reproduced the original install.sh --install-dir /tmp/new-path failure, confirmed the fix resolves it.
  • Dry-ran the new rehearsal recipe in docs/releasing.md against a staged clerk-darwin-arm64/ artifact.
  • bun run format:check, lint, typecheck, test all pass locally.

@changeset-bot

changeset-botBot commented Apr 21, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 784e05e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
clerkPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@wyattjoh

wyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: wyattjoh/release-clerk-1-0-0

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh changed the title wyattjoh/release docs installer fixesfix(release): install.sh --install-dir and release docsApr 21, 2026

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Base automatically changed from wyattjoh/release-clerk-1-0-0 to mainApril 21, 2026 23:04
When install.sh is invoked with --install-dir pointing at a directory
that does not yet exist, the final `mv` failed because mkdir only ran
inside the ~/.local/bin fallback branch. Run mkdir -p unconditionally
just before the move so explicit custom paths match the fallback
behavior.
The releaser moved from scripts/releaser/ to scripts/releaser.ts, and
target definitions from scripts/releaser/targets.ts to
scripts/lib/targets.ts, but docs/releasing.md still pointed at the old
paths. The documented dry-run command therefore failed with
"Module not found", and nothing explained that the releaser reads from
a CI-style $ARTIFACTS_DIR/clerk-<target>/ layout rather than the
dist/artifacts/<target>/ layout produced by scripts/build.ts.
Replace the five stale paths, rewrite the dry-run section with a
working single-target rehearsal recipe that stages binaries under the
expected CI layout, and add a note about the Bun 1.3.11 CI pin so
local darwin-arm64 rehearsal matches what CI builds.
@wyattjoh
wyattjohforce-pushed the wyattjoh/release-docs-installer-fixes branch from 6e04847 to 784e05eCompareApril 21, 2026 23:11
@wyattjoh
wyattjoh marked this pull request as ready for review April 21, 2026 23:11
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This pull request updates the release and installation infrastructure across three files. It adds a changeset entry documenting a patch-level fix, updates documentation references for build artifacts and release process paths (from scripts/releaser/targets.ts to scripts/lib/targets.ts and scripts/releaser/index.ts to scripts/releaser.ts), and revises release rehearsal instructions. The functional change moves the mkdir -p "$INSTALL_DIR" command in install.sh outside a conditional block to ensure the target directory is created regardless of which installation path is selected.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: a fix to install.sh for the --install-dir option and updates to release documentation.
Description check✅ PassedThe description clearly explains both the install.sh fix and the documentation updates, with context and test plan details that relate directly to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@install.sh`:
- Around line 269-270: Add an automated test that verifies installer creates a
non-existent custom --install-dir and moves the binary (exercise INSTALL_DIR,
TMPDIR, BINARY_NAME, EXT logic in install.sh): write a test that creates a
unique temp path that does not exist, invokes the installer with --install-dir
pointing at that path, then assert the directory was created and the binary
"${BINARY_NAME}${EXT}" was moved from TMPDIR to
"${INSTALL_DIR}/${BINARY_NAME}${EXT}" (and optionally check executable
permissions and exit code), and clean up after the run; place the test alongside
existing installer integration tests so future changes to mkdir -p or mv
behavior are covered.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ae0a5359-78a3-487a-8b7a-4265694f1ac8

📥 Commits

Reviewing files that changed from the base of the PR and between bbbbed6 and 784e05e.

📒 Files selected for processing (3)
  • .changeset/install-sh-create-install-dir.md
  • docs/releasing.md
  • install.sh

Comment threadinstall.sh
@wyattjoh
wyattjoh merged commit bba6a98 into mainApr 22, 2026
13 of 17 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/release-docs-installer-fixes branch April 22, 2026 15:06
@github-actionsgithub-actionsBot mentioned this pull request Apr 22, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(release): install.sh --install-dir and release docs - #202

Merged
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes
Apr 22, 2026
Merged

fix(release): install.sh --install-dir and release docs#202
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • install.sh now creates the --install-dir target when it does not already exist, so ./install.sh --install-dir /new/path succeeds on a fresh directory. Previously mkdir -p only ran inside the ~/.local/bin fallback branch, and the final mv failed on any user-supplied path that did not exist.
  • docs/releasing.md stops pointing at the removed scripts/releaser/ directory (moved to scripts/releaser.ts and scripts/lib/targets.ts), documents that the releaser expects the CI-style $ARTIFACTS_DIR/clerk-<target>/ layout (distinct from the dist/artifacts/<target>/ layout written by scripts/build.ts), and notes the Bun 1.3.11 pin used by CI so local darwin-arm64 rehearsal matches production.

Context

Follow-up to #199. Covers the remaining release-readiness gaps surfaced during review of the 1.0.0 prep branch. Stacked on top of #199 so review stays scoped. Changelog entry added for the install.sh fix; docs change is non-user-facing and needs no changeset.

Test plan

  • Reproduced the original install.sh --install-dir /tmp/new-path failure, confirmed the fix resolves it.
  • Dry-ran the new rehearsal recipe in docs/releasing.md against a staged clerk-darwin-arm64/ artifact.
  • bun run format:check, lint, typecheck, test all pass locally.

@changeset-bot

changeset-botBot commented Apr 21, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 784e05e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
clerkPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@wyattjoh

wyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: wyattjoh/release-clerk-1-0-0

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh changed the title wyattjoh/release docs installer fixesfix(release): install.sh --install-dir and release docsApr 21, 2026

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Base automatically changed from wyattjoh/release-clerk-1-0-0 to mainApril 21, 2026 23:04
When install.sh is invoked with --install-dir pointing at a directory
that does not yet exist, the final `mv` failed because mkdir only ran
inside the ~/.local/bin fallback branch. Run mkdir -p unconditionally
just before the move so explicit custom paths match the fallback
behavior.
The releaser moved from scripts/releaser/ to scripts/releaser.ts, and
target definitions from scripts/releaser/targets.ts to
scripts/lib/targets.ts, but docs/releasing.md still pointed at the old
paths. The documented dry-run command therefore failed with
"Module not found", and nothing explained that the releaser reads from
a CI-style $ARTIFACTS_DIR/clerk-<target>/ layout rather than the
dist/artifacts/<target>/ layout produced by scripts/build.ts.
Replace the five stale paths, rewrite the dry-run section with a
working single-target rehearsal recipe that stages binaries under the
expected CI layout, and add a note about the Bun 1.3.11 CI pin so
local darwin-arm64 rehearsal matches what CI builds.
@wyattjoh
wyattjohforce-pushed the wyattjoh/release-docs-installer-fixes branch from 6e04847 to 784e05eCompareApril 21, 2026 23:11
@wyattjoh
wyattjoh marked this pull request as ready for review April 21, 2026 23:11
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This pull request updates the release and installation infrastructure across three files. It adds a changeset entry documenting a patch-level fix, updates documentation references for build artifacts and release process paths (from scripts/releaser/targets.ts to scripts/lib/targets.ts and scripts/releaser/index.ts to scripts/releaser.ts), and revises release rehearsal instructions. The functional change moves the mkdir -p "$INSTALL_DIR" command in install.sh outside a conditional block to ensure the target directory is created regardless of which installation path is selected.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: a fix to install.sh for the --install-dir option and updates to release documentation.
Description check✅ PassedThe description clearly explains both the install.sh fix and the documentation updates, with context and test plan details that relate directly to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@install.sh`:
- Around line 269-270: Add an automated test that verifies installer creates a
non-existent custom --install-dir and moves the binary (exercise INSTALL_DIR,
TMPDIR, BINARY_NAME, EXT logic in install.sh): write a test that creates a
unique temp path that does not exist, invokes the installer with --install-dir
pointing at that path, then assert the directory was created and the binary
"${BINARY_NAME}${EXT}" was moved from TMPDIR to
"${INSTALL_DIR}/${BINARY_NAME}${EXT}" (and optionally check executable
permissions and exit code), and clean up after the run; place the test alongside
existing installer integration tests so future changes to mkdir -p or mv
behavior are covered.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ae0a5359-78a3-487a-8b7a-4265694f1ac8

📥 Commits

Reviewing files that changed from the base of the PR and between bbbbed6 and 784e05e.

📒 Files selected for processing (3)
  • .changeset/install-sh-create-install-dir.md
  • docs/releasing.md
  • install.sh

Comment threadinstall.sh
@wyattjoh
wyattjoh merged commit bba6a98 into mainApr 22, 2026
13 of 17 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/release-docs-installer-fixes branch April 22, 2026 15:06
@github-actionsgithub-actionsBot mentioned this pull request Apr 22, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(release): install.sh --install-dir and release docs - #202

Merged
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes
Apr 22, 2026
Merged

fix(release): install.sh --install-dir and release docs#202
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • install.sh now creates the --install-dir target when it does not already exist, so ./install.sh --install-dir /new/path succeeds on a fresh directory. Previously mkdir -p only ran inside the ~/.local/bin fallback branch, and the final mv failed on any user-supplied path that did not exist.
  • docs/releasing.md stops pointing at the removed scripts/releaser/ directory (moved to scripts/releaser.ts and scripts/lib/targets.ts), documents that the releaser expects the CI-style $ARTIFACTS_DIR/clerk-<target>/ layout (distinct from the dist/artifacts/<target>/ layout written by scripts/build.ts), and notes the Bun 1.3.11 pin used by CI so local darwin-arm64 rehearsal matches production.

Context

Follow-up to #199. Covers the remaining release-readiness gaps surfaced during review of the 1.0.0 prep branch. Stacked on top of #199 so review stays scoped. Changelog entry added for the install.sh fix; docs change is non-user-facing and needs no changeset.

Test plan

  • Reproduced the original install.sh --install-dir /tmp/new-path failure, confirmed the fix resolves it.
  • Dry-ran the new rehearsal recipe in docs/releasing.md against a staged clerk-darwin-arm64/ artifact.
  • bun run format:check, lint, typecheck, test all pass locally.

@changeset-bot

changeset-botBot commented Apr 21, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 784e05e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
clerkPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@wyattjoh

wyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: wyattjoh/release-clerk-1-0-0

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh changed the title wyattjoh/release docs installer fixesfix(release): install.sh --install-dir and release docsApr 21, 2026

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Base automatically changed from wyattjoh/release-clerk-1-0-0 to mainApril 21, 2026 23:04
When install.sh is invoked with --install-dir pointing at a directory
that does not yet exist, the final `mv` failed because mkdir only ran
inside the ~/.local/bin fallback branch. Run mkdir -p unconditionally
just before the move so explicit custom paths match the fallback
behavior.
The releaser moved from scripts/releaser/ to scripts/releaser.ts, and
target definitions from scripts/releaser/targets.ts to
scripts/lib/targets.ts, but docs/releasing.md still pointed at the old
paths. The documented dry-run command therefore failed with
"Module not found", and nothing explained that the releaser reads from
a CI-style $ARTIFACTS_DIR/clerk-<target>/ layout rather than the
dist/artifacts/<target>/ layout produced by scripts/build.ts.
Replace the five stale paths, rewrite the dry-run section with a
working single-target rehearsal recipe that stages binaries under the
expected CI layout, and add a note about the Bun 1.3.11 CI pin so
local darwin-arm64 rehearsal matches what CI builds.
@wyattjoh
wyattjohforce-pushed the wyattjoh/release-docs-installer-fixes branch from 6e04847 to 784e05eCompareApril 21, 2026 23:11
@wyattjoh
wyattjoh marked this pull request as ready for review April 21, 2026 23:11
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This pull request updates the release and installation infrastructure across three files. It adds a changeset entry documenting a patch-level fix, updates documentation references for build artifacts and release process paths (from scripts/releaser/targets.ts to scripts/lib/targets.ts and scripts/releaser/index.ts to scripts/releaser.ts), and revises release rehearsal instructions. The functional change moves the mkdir -p "$INSTALL_DIR" command in install.sh outside a conditional block to ensure the target directory is created regardless of which installation path is selected.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: a fix to install.sh for the --install-dir option and updates to release documentation.
Description check✅ PassedThe description clearly explains both the install.sh fix and the documentation updates, with context and test plan details that relate directly to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@install.sh`:
- Around line 269-270: Add an automated test that verifies installer creates a
non-existent custom --install-dir and moves the binary (exercise INSTALL_DIR,
TMPDIR, BINARY_NAME, EXT logic in install.sh): write a test that creates a
unique temp path that does not exist, invokes the installer with --install-dir
pointing at that path, then assert the directory was created and the binary
"${BINARY_NAME}${EXT}" was moved from TMPDIR to
"${INSTALL_DIR}/${BINARY_NAME}${EXT}" (and optionally check executable
permissions and exit code), and clean up after the run; place the test alongside
existing installer integration tests so future changes to mkdir -p or mv
behavior are covered.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ae0a5359-78a3-487a-8b7a-4265694f1ac8

📥 Commits

Reviewing files that changed from the base of the PR and between bbbbed6 and 784e05e.

📒 Files selected for processing (3)
  • .changeset/install-sh-create-install-dir.md
  • docs/releasing.md
  • install.sh

Comment threadinstall.sh
@wyattjoh
wyattjoh merged commit bba6a98 into mainApr 22, 2026
13 of 17 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/release-docs-installer-fixes branch April 22, 2026 15:06
@github-actionsgithub-actionsBot mentioned this pull request Apr 22, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(release): install.sh --install-dir and release docs - #202

Merged
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes
Apr 22, 2026
Merged

fix(release): install.sh --install-dir and release docs#202
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • install.sh now creates the --install-dir target when it does not already exist, so ./install.sh --install-dir /new/path succeeds on a fresh directory. Previously mkdir -p only ran inside the ~/.local/bin fallback branch, and the final mv failed on any user-supplied path that did not exist.
  • docs/releasing.md stops pointing at the removed scripts/releaser/ directory (moved to scripts/releaser.ts and scripts/lib/targets.ts), documents that the releaser expects the CI-style $ARTIFACTS_DIR/clerk-<target>/ layout (distinct from the dist/artifacts/<target>/ layout written by scripts/build.ts), and notes the Bun 1.3.11 pin used by CI so local darwin-arm64 rehearsal matches production.

Context

Follow-up to #199. Covers the remaining release-readiness gaps surfaced during review of the 1.0.0 prep branch. Stacked on top of #199 so review stays scoped. Changelog entry added for the install.sh fix; docs change is non-user-facing and needs no changeset.

Test plan

  • Reproduced the original install.sh --install-dir /tmp/new-path failure, confirmed the fix resolves it.
  • Dry-ran the new rehearsal recipe in docs/releasing.md against a staged clerk-darwin-arm64/ artifact.
  • bun run format:check, lint, typecheck, test all pass locally.

@changeset-bot

changeset-botBot commented Apr 21, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 784e05e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
clerkPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@wyattjoh

wyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: wyattjoh/release-clerk-1-0-0

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh changed the title wyattjoh/release docs installer fixesfix(release): install.sh --install-dir and release docsApr 21, 2026

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Base automatically changed from wyattjoh/release-clerk-1-0-0 to mainApril 21, 2026 23:04
When install.sh is invoked with --install-dir pointing at a directory
that does not yet exist, the final `mv` failed because mkdir only ran
inside the ~/.local/bin fallback branch. Run mkdir -p unconditionally
just before the move so explicit custom paths match the fallback
behavior.
The releaser moved from scripts/releaser/ to scripts/releaser.ts, and
target definitions from scripts/releaser/targets.ts to
scripts/lib/targets.ts, but docs/releasing.md still pointed at the old
paths. The documented dry-run command therefore failed with
"Module not found", and nothing explained that the releaser reads from
a CI-style $ARTIFACTS_DIR/clerk-<target>/ layout rather than the
dist/artifacts/<target>/ layout produced by scripts/build.ts.
Replace the five stale paths, rewrite the dry-run section with a
working single-target rehearsal recipe that stages binaries under the
expected CI layout, and add a note about the Bun 1.3.11 CI pin so
local darwin-arm64 rehearsal matches what CI builds.
@wyattjoh
wyattjohforce-pushed the wyattjoh/release-docs-installer-fixes branch from 6e04847 to 784e05eCompareApril 21, 2026 23:11
@wyattjoh
wyattjoh marked this pull request as ready for review April 21, 2026 23:11
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This pull request updates the release and installation infrastructure across three files. It adds a changeset entry documenting a patch-level fix, updates documentation references for build artifacts and release process paths (from scripts/releaser/targets.ts to scripts/lib/targets.ts and scripts/releaser/index.ts to scripts/releaser.ts), and revises release rehearsal instructions. The functional change moves the mkdir -p "$INSTALL_DIR" command in install.sh outside a conditional block to ensure the target directory is created regardless of which installation path is selected.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: a fix to install.sh for the --install-dir option and updates to release documentation.
Description check✅ PassedThe description clearly explains both the install.sh fix and the documentation updates, with context and test plan details that relate directly to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@install.sh`:
- Around line 269-270: Add an automated test that verifies installer creates a
non-existent custom --install-dir and moves the binary (exercise INSTALL_DIR,
TMPDIR, BINARY_NAME, EXT logic in install.sh): write a test that creates a
unique temp path that does not exist, invokes the installer with --install-dir
pointing at that path, then assert the directory was created and the binary
"${BINARY_NAME}${EXT}" was moved from TMPDIR to
"${INSTALL_DIR}/${BINARY_NAME}${EXT}" (and optionally check executable
permissions and exit code), and clean up after the run; place the test alongside
existing installer integration tests so future changes to mkdir -p or mv
behavior are covered.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ae0a5359-78a3-487a-8b7a-4265694f1ac8

📥 Commits

Reviewing files that changed from the base of the PR and between bbbbed6 and 784e05e.

📒 Files selected for processing (3)
  • .changeset/install-sh-create-install-dir.md
  • docs/releasing.md
  • install.sh

Comment threadinstall.sh
@wyattjoh
wyattjoh merged commit bba6a98 into mainApr 22, 2026
13 of 17 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/release-docs-installer-fixes branch April 22, 2026 15:06
@github-actionsgithub-actionsBot mentioned this pull request Apr 22, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(release): install.sh --install-dir and release docs - #202

Merged
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes
Apr 22, 2026
Merged

fix(release): install.sh --install-dir and release docs#202
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • install.sh now creates the --install-dir target when it does not already exist, so ./install.sh --install-dir /new/path succeeds on a fresh directory. Previously mkdir -p only ran inside the ~/.local/bin fallback branch, and the final mv failed on any user-supplied path that did not exist.
  • docs/releasing.md stops pointing at the removed scripts/releaser/ directory (moved to scripts/releaser.ts and scripts/lib/targets.ts), documents that the releaser expects the CI-style $ARTIFACTS_DIR/clerk-<target>/ layout (distinct from the dist/artifacts/<target>/ layout written by scripts/build.ts), and notes the Bun 1.3.11 pin used by CI so local darwin-arm64 rehearsal matches production.

Context

Follow-up to #199. Covers the remaining release-readiness gaps surfaced during review of the 1.0.0 prep branch. Stacked on top of #199 so review stays scoped. Changelog entry added for the install.sh fix; docs change is non-user-facing and needs no changeset.

Test plan

  • Reproduced the original install.sh --install-dir /tmp/new-path failure, confirmed the fix resolves it.
  • Dry-ran the new rehearsal recipe in docs/releasing.md against a staged clerk-darwin-arm64/ artifact.
  • bun run format:check, lint, typecheck, test all pass locally.

@changeset-bot

changeset-botBot commented Apr 21, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 784e05e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
clerkPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@wyattjoh

wyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: wyattjoh/release-clerk-1-0-0

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh changed the title wyattjoh/release docs installer fixesfix(release): install.sh --install-dir and release docsApr 21, 2026

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Base automatically changed from wyattjoh/release-clerk-1-0-0 to mainApril 21, 2026 23:04
When install.sh is invoked with --install-dir pointing at a directory
that does not yet exist, the final `mv` failed because mkdir only ran
inside the ~/.local/bin fallback branch. Run mkdir -p unconditionally
just before the move so explicit custom paths match the fallback
behavior.
The releaser moved from scripts/releaser/ to scripts/releaser.ts, and
target definitions from scripts/releaser/targets.ts to
scripts/lib/targets.ts, but docs/releasing.md still pointed at the old
paths. The documented dry-run command therefore failed with
"Module not found", and nothing explained that the releaser reads from
a CI-style $ARTIFACTS_DIR/clerk-<target>/ layout rather than the
dist/artifacts/<target>/ layout produced by scripts/build.ts.
Replace the five stale paths, rewrite the dry-run section with a
working single-target rehearsal recipe that stages binaries under the
expected CI layout, and add a note about the Bun 1.3.11 CI pin so
local darwin-arm64 rehearsal matches what CI builds.
@wyattjoh
wyattjohforce-pushed the wyattjoh/release-docs-installer-fixes branch from 6e04847 to 784e05eCompareApril 21, 2026 23:11
@wyattjoh
wyattjoh marked this pull request as ready for review April 21, 2026 23:11
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This pull request updates the release and installation infrastructure across three files. It adds a changeset entry documenting a patch-level fix, updates documentation references for build artifacts and release process paths (from scripts/releaser/targets.ts to scripts/lib/targets.ts and scripts/releaser/index.ts to scripts/releaser.ts), and revises release rehearsal instructions. The functional change moves the mkdir -p "$INSTALL_DIR" command in install.sh outside a conditional block to ensure the target directory is created regardless of which installation path is selected.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: a fix to install.sh for the --install-dir option and updates to release documentation.
Description check✅ PassedThe description clearly explains both the install.sh fix and the documentation updates, with context and test plan details that relate directly to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@install.sh`:
- Around line 269-270: Add an automated test that verifies installer creates a
non-existent custom --install-dir and moves the binary (exercise INSTALL_DIR,
TMPDIR, BINARY_NAME, EXT logic in install.sh): write a test that creates a
unique temp path that does not exist, invokes the installer with --install-dir
pointing at that path, then assert the directory was created and the binary
"${BINARY_NAME}${EXT}" was moved from TMPDIR to
"${INSTALL_DIR}/${BINARY_NAME}${EXT}" (and optionally check executable
permissions and exit code), and clean up after the run; place the test alongside
existing installer integration tests so future changes to mkdir -p or mv
behavior are covered.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ae0a5359-78a3-487a-8b7a-4265694f1ac8

📥 Commits

Reviewing files that changed from the base of the PR and between bbbbed6 and 784e05e.

📒 Files selected for processing (3)
  • .changeset/install-sh-create-install-dir.md
  • docs/releasing.md
  • install.sh

Comment threadinstall.sh
@wyattjoh
wyattjoh merged commit bba6a98 into mainApr 22, 2026
13 of 17 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/release-docs-installer-fixes branch April 22, 2026 15:06
@github-actionsgithub-actionsBot mentioned this pull request Apr 22, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(release): install.sh --install-dir and release docs - #202

Merged
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes
Apr 22, 2026
Merged

fix(release): install.sh --install-dir and release docs#202
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • install.sh now creates the --install-dir target when it does not already exist, so ./install.sh --install-dir /new/path succeeds on a fresh directory. Previously mkdir -p only ran inside the ~/.local/bin fallback branch, and the final mv failed on any user-supplied path that did not exist.
  • docs/releasing.md stops pointing at the removed scripts/releaser/ directory (moved to scripts/releaser.ts and scripts/lib/targets.ts), documents that the releaser expects the CI-style $ARTIFACTS_DIR/clerk-<target>/ layout (distinct from the dist/artifacts/<target>/ layout written by scripts/build.ts), and notes the Bun 1.3.11 pin used by CI so local darwin-arm64 rehearsal matches production.

Context

Follow-up to #199. Covers the remaining release-readiness gaps surfaced during review of the 1.0.0 prep branch. Stacked on top of #199 so review stays scoped. Changelog entry added for the install.sh fix; docs change is non-user-facing and needs no changeset.

Test plan

  • Reproduced the original install.sh --install-dir /tmp/new-path failure, confirmed the fix resolves it.
  • Dry-ran the new rehearsal recipe in docs/releasing.md against a staged clerk-darwin-arm64/ artifact.
  • bun run format:check, lint, typecheck, test all pass locally.

@changeset-bot

changeset-botBot commented Apr 21, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 784e05e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
clerkPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@wyattjoh

wyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: wyattjoh/release-clerk-1-0-0

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh changed the title wyattjoh/release docs installer fixesfix(release): install.sh --install-dir and release docsApr 21, 2026

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Base automatically changed from wyattjoh/release-clerk-1-0-0 to mainApril 21, 2026 23:04
When install.sh is invoked with --install-dir pointing at a directory
that does not yet exist, the final `mv` failed because mkdir only ran
inside the ~/.local/bin fallback branch. Run mkdir -p unconditionally
just before the move so explicit custom paths match the fallback
behavior.
The releaser moved from scripts/releaser/ to scripts/releaser.ts, and
target definitions from scripts/releaser/targets.ts to
scripts/lib/targets.ts, but docs/releasing.md still pointed at the old
paths. The documented dry-run command therefore failed with
"Module not found", and nothing explained that the releaser reads from
a CI-style $ARTIFACTS_DIR/clerk-<target>/ layout rather than the
dist/artifacts/<target>/ layout produced by scripts/build.ts.
Replace the five stale paths, rewrite the dry-run section with a
working single-target rehearsal recipe that stages binaries under the
expected CI layout, and add a note about the Bun 1.3.11 CI pin so
local darwin-arm64 rehearsal matches what CI builds.
@wyattjoh
wyattjohforce-pushed the wyattjoh/release-docs-installer-fixes branch from 6e04847 to 784e05eCompareApril 21, 2026 23:11
@wyattjoh
wyattjoh marked this pull request as ready for review April 21, 2026 23:11
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This pull request updates the release and installation infrastructure across three files. It adds a changeset entry documenting a patch-level fix, updates documentation references for build artifacts and release process paths (from scripts/releaser/targets.ts to scripts/lib/targets.ts and scripts/releaser/index.ts to scripts/releaser.ts), and revises release rehearsal instructions. The functional change moves the mkdir -p "$INSTALL_DIR" command in install.sh outside a conditional block to ensure the target directory is created regardless of which installation path is selected.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: a fix to install.sh for the --install-dir option and updates to release documentation.
Description check✅ PassedThe description clearly explains both the install.sh fix and the documentation updates, with context and test plan details that relate directly to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@install.sh`:
- Around line 269-270: Add an automated test that verifies installer creates a
non-existent custom --install-dir and moves the binary (exercise INSTALL_DIR,
TMPDIR, BINARY_NAME, EXT logic in install.sh): write a test that creates a
unique temp path that does not exist, invokes the installer with --install-dir
pointing at that path, then assert the directory was created and the binary
"${BINARY_NAME}${EXT}" was moved from TMPDIR to
"${INSTALL_DIR}/${BINARY_NAME}${EXT}" (and optionally check executable
permissions and exit code), and clean up after the run; place the test alongside
existing installer integration tests so future changes to mkdir -p or mv
behavior are covered.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ae0a5359-78a3-487a-8b7a-4265694f1ac8

📥 Commits

Reviewing files that changed from the base of the PR and between bbbbed6 and 784e05e.

📒 Files selected for processing (3)
  • .changeset/install-sh-create-install-dir.md
  • docs/releasing.md
  • install.sh

Comment threadinstall.sh
@wyattjoh
wyattjoh merged commit bba6a98 into mainApr 22, 2026
13 of 17 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/release-docs-installer-fixes branch April 22, 2026 15:06
@github-actionsgithub-actionsBot mentioned this pull request Apr 22, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(release): install.sh --install-dir and release docs - #202

Merged
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes
Apr 22, 2026
Merged

fix(release): install.sh --install-dir and release docs#202
wyattjoh merged 2 commits into
mainfrom
wyattjoh/release-docs-installer-fixes

Conversation

@wyattjoh

@wyattjohwyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • install.sh now creates the --install-dir target when it does not already exist, so ./install.sh --install-dir /new/path succeeds on a fresh directory. Previously mkdir -p only ran inside the ~/.local/bin fallback branch, and the final mv failed on any user-supplied path that did not exist.
  • docs/releasing.md stops pointing at the removed scripts/releaser/ directory (moved to scripts/releaser.ts and scripts/lib/targets.ts), documents that the releaser expects the CI-style $ARTIFACTS_DIR/clerk-<target>/ layout (distinct from the dist/artifacts/<target>/ layout written by scripts/build.ts), and notes the Bun 1.3.11 pin used by CI so local darwin-arm64 rehearsal matches production.

Context

Follow-up to #199. Covers the remaining release-readiness gaps surfaced during review of the 1.0.0 prep branch. Stacked on top of #199 so review stays scoped. Changelog entry added for the install.sh fix; docs change is non-user-facing and needs no changeset.

Test plan

  • Reproduced the original install.sh --install-dir /tmp/new-path failure, confirmed the fix resolves it.
  • Dry-ran the new rehearsal recipe in docs/releasing.md against a staged clerk-darwin-arm64/ artifact.
  • bun run format:check, lint, typecheck, test all pass locally.

@changeset-bot

changeset-botBot commented Apr 21, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 784e05e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
clerkPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@wyattjoh

wyattjoh commented Apr 21, 2026

Copy link
Copy Markdown
ContributorAuthor

Stack: wyattjoh/release-clerk-1-0-0

Part of a stacked PR chain. Do not merge manually.

@wyattjohwyattjoh changed the title wyattjoh/release docs installer fixesfix(release): install.sh --install-dir and release docsApr 21, 2026

@rafa-thaytorafa-thayto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Base automatically changed from wyattjoh/release-clerk-1-0-0 to mainApril 21, 2026 23:04
When install.sh is invoked with --install-dir pointing at a directory
that does not yet exist, the final `mv` failed because mkdir only ran
inside the ~/.local/bin fallback branch. Run mkdir -p unconditionally
just before the move so explicit custom paths match the fallback
behavior.
The releaser moved from scripts/releaser/ to scripts/releaser.ts, and
target definitions from scripts/releaser/targets.ts to
scripts/lib/targets.ts, but docs/releasing.md still pointed at the old
paths. The documented dry-run command therefore failed with
"Module not found", and nothing explained that the releaser reads from
a CI-style $ARTIFACTS_DIR/clerk-<target>/ layout rather than the
dist/artifacts/<target>/ layout produced by scripts/build.ts.
Replace the five stale paths, rewrite the dry-run section with a
working single-target rehearsal recipe that stages binaries under the
expected CI layout, and add a note about the Bun 1.3.11 CI pin so
local darwin-arm64 rehearsal matches what CI builds.
@wyattjoh
wyattjohforce-pushed the wyattjoh/release-docs-installer-fixes branch from 6e04847 to 784e05eCompareApril 21, 2026 23:11
@wyattjoh
wyattjoh marked this pull request as ready for review April 21, 2026 23:11
@coderabbitai

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This pull request updates the release and installation infrastructure across three files. It adds a changeset entry documenting a patch-level fix, updates documentation references for build artifacts and release process paths (from scripts/releaser/targets.ts to scripts/lib/targets.ts and scripts/releaser/index.ts to scripts/releaser.ts), and revises release rehearsal instructions. The functional change moves the mkdir -p "$INSTALL_DIR" command in install.sh outside a conditional block to ensure the target directory is created regardless of which installation path is selected.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: a fix to install.sh for the --install-dir option and updates to release documentation.
Description check✅ PassedThe description clearly explains both the install.sh fix and the documentation updates, with context and test plan details that relate directly to the changeset.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@install.sh`:
- Around line 269-270: Add an automated test that verifies installer creates a
non-existent custom --install-dir and moves the binary (exercise INSTALL_DIR,
TMPDIR, BINARY_NAME, EXT logic in install.sh): write a test that creates a
unique temp path that does not exist, invokes the installer with --install-dir
pointing at that path, then assert the directory was created and the binary
"${BINARY_NAME}${EXT}" was moved from TMPDIR to
"${INSTALL_DIR}/${BINARY_NAME}${EXT}" (and optionally check executable
permissions and exit code), and clean up after the run; place the test alongside
existing installer integration tests so future changes to mkdir -p or mv
behavior are covered.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ae0a5359-78a3-487a-8b7a-4265694f1ac8

📥 Commits

Reviewing files that changed from the base of the PR and between bbbbed6 and 784e05e.

📒 Files selected for processing (3)
  • .changeset/install-sh-create-install-dir.md
  • docs/releasing.md
  • install.sh

Comment threadinstall.sh
@wyattjoh
wyattjoh merged commit bba6a98 into mainApr 22, 2026
13 of 17 checks passed
@wyattjoh
wyattjoh deleted the wyattjoh/release-docs-installer-fixes branch April 22, 2026 15:06
@github-actionsgithub-actionsBot mentioned this pull request Apr 22, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wyattjoh@rafa-thayto