Skip to content

chore: build and install with just instead of make - #12

Merged
ProJedi1234 merged 1 commit into
mainfrom
upgrade-to-just
Aug 25, 2026
Merged

ProJedi1234 merged 1 commit into
mainfrom
upgrade-to-just

Conversation

@ProJedi1234

@ProJedi1234 ProJedi1234 commented Aug 25, 2026 •

Copy link
Copy Markdown
Owner

Replaces the Makefile with a justfile. Same six recipes — build, test, install, install-completions, uninstall, clean — plus just on its own listing them, and no build logic that Package.swift does not already own.

The two pieces of make-specific machinery become just equivalents. The oh-my-zsh vs ~/.zfunc completion directory choice moves from $(wildcard $(HOME)/.oh-my-zsh) to path_exists(), with the comment explaining why it tests for ~/.oh-my-zsh rather than for the completions directory itself carried over intact. PREFIX still overrides the install location, now read through env('PREFIX', …), so PREFIX=/usr/local just install does what make install PREFIX=/usr/local did. Every path goes through quote(), which the Makefile could not easily do — a prefix with a space in it now survives.

The install-to-a-temp-name-and-rename dance is unchanged, and so is the reason for it: writing over a binary that is currently executing fails with ETXTBSY while rename(2) does not, and agents run stele publish unattended, so a reinstall really can land mid-request.

The install one-liner appears in four places outside the build file — the exit-code-8 remedy in SteleError.upgradeRequired, the test that asserts it, the README's build and completion sections, and the Completions.swift doc comment. All four become just -f ~/repos/stele-cli/justfile install. just defaults its working directory to the justfile's own directory, so that is a direct analogue of make -C ~/repos/stele-cli install rather than a cd && chain.

CI never called make — the workflow runs swift build --build-tests and swift test --skip-build directly — so .github/workflows/ci.yml is unchanged.

Checks

  • swift build --build-tests — clean.
  • swift test — 152 tests in 17 suites, all passing. The only test touched is the 426 advice case, updated to the new remedy string.
  • just install-completions run against a temp PREFIX/ZSHCOMP: binary installed and _stele generated at the expected paths.
  • No lint or format configuration in this repo, so there is nothing else to run.

Note, outside this repo

~/.claude/skills/publish-to-stele/SKILL.md still tells agents to run make -C ~/repos/stele-cli install in eight places, including the exit-code-8 and 426 recovery tables. It lives outside this repository so it is not part of this PR, but it is stale as of this merge.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added just commands for building, testing, installing, uninstalling, cleaning, and shell-completion setup.
    • Added support for configurable installation paths and automatic completion-directory selection.
  • Documentation

    • Updated installation and completion instructions to use just.
    • Added just to the required build tools.
  • Bug Fixes

    • Updated upgrade instructions and related status guidance to reference the correct installation command.

Same six recipes, no build logic that Package.swift does not already own,
plus `just` on its own listing them.

The oh-my-zsh vs ~/.zfunc choice moves from $(wildcard) to path_exists(),
and every path goes through quote() so a prefix with spaces survives.
PREFIX still overrides the install location, now as an environment
variable read by env().

The install one-liner in the 426 upgrade message, the README and the
completions doc comment become `just -f ~/repos/stele-cli/justfile
install`: just defaults its working directory to the justfile's own, so
that is a direct analogue of `make -C`.

CI never called make, so the workflow is unchanged.
@coderabbitai

coderabbitai Bot commented Aug 25, 2026 •

Copy link
Copy Markdown

Review Change Stack

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Free

Run ID: a05b5900-a714-44cd-a22a-c28e8548eccf

📥 Commits

Reviewing files that changed from the base of the PR and between 197fd6c and 237300f.

📒 Files selected for processing (6)
  • Makefile
  • README.md
  • Sources/SteleKit/SteleError.swift
  • Sources/stele/Completions.swift
  • Tests/SteleKitTests/SteleClientTests.swift
  • justfile
💤 Files with no reviewable changes (1)
  • Makefile

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The project replaces the deleted Makefile with a justfile. It adds build, test, install, completion, uninstall, and clean recipes. Documentation, upgrade messages, completion guidance, and tests now use just commands.

Changes

Just-based build and installation

Layer / File(s) Summary
Build and test recipes
justfile
The justfile configures paths, selects zsh completion directories, lists recipes, builds the release binary, and runs unit tests.
Installation and cleanup lifecycle
justfile
Installation uses a temporary binary and atomic rename. Completion generation removes stale dumps. Uninstall and clean recipes remove installed artifacts and reset SwiftPM state.
Documentation and upgrade-command migration
Makefile, README.md, Sources/SteleKit/SteleError.swift, Sources/stele/Completions.swift, Tests/SteleKitTests/SteleClientTests.swift
The Makefile is removed. Installation instructions, upgrade guidance, completion documentation, and status-advice expectations now use just.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 23730

This PR replaces the project’s Makefile commands with equivalent just recipes and updates the related installation guidance; no actionable merge-blocking risk remains beyond normal checks and review.

Poem

A rabbit hops where build flags grew,

just recipes make the workflow new.
Binaries move with atomic grace,
Completions bloom in their proper place,
Tests and docs now point the way too.


Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/settings/billing.

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

@ProJedi1234
ProJedi1234 merged commit 5fa542d into main Aug 25, 2026
2 checks passed
@ProJedi1234
ProJedi1234 deleted the upgrade-to-just branch August 25, 2026 21:18
Sign up for free to 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.

1 participant