Skip to content

fix: install/uninstall all plugins in Makefile - #72

Merged
mateodelnorte merged 1 commit into
mainfrom
fix/makefile-install-uninstall
Mar 29, 2026
Merged

mateodelnorte merged 1 commit into
mainfrom
fix/makefile-install-uninstall

Conversation

@mateodelnorte

@mateodelnorte mateodelnorte commented Mar 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • make install now cargo-installs meta + all 3 plugins (meta-git, meta-project, meta-rust)
  • make uninstall removes all binaries from ~/.cargo/bin/ and ~/.meta/plugins/
  • Previously only the meta binary was handled, leaving orphaned plugin binaries

Test plan

  • make install installs meta + all 3 plugins to ~/.cargo/bin/
  • make uninstall removes all 4 binaries + ~/.meta/plugins/ copies
  • make uninstall doesn't fail if some binaries are already absent

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Plugin CLI binaries are now installed globally alongside the main CLI, providing additional tooling capabilities.
  • Chores

    • Updated installation process to include all plugin components.
    • Improved uninstall process to cleanly remove all installed CLI tools and plugin executables from the system.

make install now cargo-installs meta + all 3 plugins (meta-git,
meta-project, meta-rust). make uninstall removes them from both
~/.cargo/bin/ and ~/.meta/plugins/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Mar 29, 2026 •

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

Walkthrough

The Makefile's install and uninstall targets are expanded to manage multiple CLI binaries (meta_git_cli, meta_project_cli, meta_rust_cli) alongside the main meta_cli. Installation now includes these additional binaries, and uninstallation additionally removes plugin executables from the ~/.meta/plugins/ directory.

Changes

Cohort / File(s) Summary
Build Installation Configuration
Makefile
Updated install target to install multiple CLI binaries via cargo install --path. Modified uninstall target to uninstall all four binaries and remove previously installed plugin executables from ~/.meta/plugins/.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 With whiskers twitching and nose held high,
More plugins soar through the binary sky,
Install them all with a flourish and bound,
Global reach spreads throughout the ground,
Meta's helpers now hop side by side! 🎉

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately summarizes the main change: updating the Makefile to install and uninstall all plugins alongside the main meta CLI.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/makefile-install-uninstall

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

@mateodelnorte
mateodelnorte merged commit 58423e7 into main Mar 29, 2026
8 of 9 checks passed
@greptile-apps

greptile-apps Bot commented Mar 29, 2026

Copy link
Copy Markdown

Greptile Summary

This PR expands the install target to cargo install all three plugin crates (meta_git_cli, meta_project_cli, meta_rust_cli) alongside the main meta binary, and updates uninstall to gracefully remove all four packages plus their ~/.meta/plugins/ copies. Previously, only the meta binary was managed, leaving orphaned plugin binaries after an install.

Key changes:

  • make install now runs four cargo install --path commands, placing binaries in ~/.cargo/bin/ — consistent with how install.sh uses PATH-based plugin discovery
  • make uninstall replaces the bare cargo uninstall -p meta with four idempotent cargo uninstall … 2>/dev/null || true calls plus a rm -f sweep of ~/.meta/plugins/
  • Package names (meta, meta_git_cli, meta_project_cli, meta_rust_cli) are verified correct against Cargo.lock
  • The only suggestion is to expand the .PHONY declaration to cover uninstall and the other missing targets added over time

Confidence Score: 5/5

Safe to merge — changes are additive and correct, with graceful error handling on uninstall.

All package names verified against Cargo.lock; the || true and rm -f patterns correctly handle absent binaries; install.sh confirms PATH-based plugin discovery so putting plugins in ~/.cargo/bin/ is the right approach. The only finding is a pre-existing .PHONY omission, which is a minor style suggestion and does not block merge.

No files require special attention.

Important Files Changed

Filename Overview
Makefile Adds cargo install for all 3 plugins in the install target and expands uninstall to gracefully remove all 4 cargo packages plus ~/.meta/plugins/ copies; package names verified against Cargo.lock.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[make install] --> B["cargo install meta_cli → ~/.cargo/bin/meta"]
    A --> C["cargo install meta_git_cli → ~/.cargo/bin/meta-git"]
    A --> D["cargo install meta_project_cli → ~/.cargo/bin/meta-project"]
    A --> E["cargo install meta_rust_cli → ~/.cargo/bin/meta-rust"]

    F[make install-all] --> A
    F --> G["make install-plugins → ~/.meta/plugins/"]

    H[make uninstall] --> I["cargo uninstall meta OR true"]
    H --> J["cargo uninstall meta_git_cli OR true"]
    H --> K["cargo uninstall meta_project_cli OR true"]
    H --> L["cargo uninstall meta_rust_cli OR true"]
    H --> M["rm -f ~/.meta/plugins/meta-git meta-project meta-rust"]
Loading
Prompt To Fix All With AI
This is a comment left during a code review.
Path: Makefile
Line: 106

Comment:
**`.PHONY` missing several targets including `uninstall`**

The `uninstall` target (and several others like `clean`, `clean-plugins`, `install-plugins`, `install-all`, `build-plugins`) are absent from the `.PHONY` declaration. While unlikely in practice, if a file named `uninstall` (or any of these) were ever created at the repo root, Make would silently skip the recipe, thinking the target is already up-to-date.

```suggestion
.PHONY: install install-plugins install-all build build-all build-plugins run test bats release integration-test uninstall clean clean-plugins rebuild-plugins rm-meta
```

How can I resolve this? If you propose a fix, please make it concise.

Reviews (1): Last reviewed commit: "fix: install/uninstall all plugins in Ma..." | Re-trigger Greptile

Comment thread Makefile
cargo uninstall meta_rust_cli 2>/dev/null || true
rm -f ~/.meta/plugins/meta-git ~/.meta/plugins/meta-project ~/.meta/plugins/meta-rust

.PHONY: install build run test bats release integration-test

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 .PHONY missing several targets including uninstall

The uninstall target (and several others like clean, clean-plugins, install-plugins, install-all, build-plugins) are absent from the .PHONY declaration. While unlikely in practice, if a file named uninstall (or any of these) were ever created at the repo root, Make would silently skip the recipe, thinking the target is already up-to-date.

Suggested change
.PHONY: install build run test bats release integration-test
.PHONY: install install-plugins install-all build build-all build-plugins run test bats release integration-test uninstall clean clean-plugins rebuild-plugins rm-meta
Prompt To Fix With AI
This is a comment left during a code review.
Path: Makefile
Line: 106

Comment:
**`.PHONY` missing several targets including `uninstall`**

The `uninstall` target (and several others like `clean`, `clean-plugins`, `install-plugins`, `install-all`, `build-plugins`) are absent from the `.PHONY` declaration. While unlikely in practice, if a file named `uninstall` (or any of these) were ever created at the repo root, Make would silently skip the recipe, thinking the target is already up-to-date.

```suggestion
.PHONY: install install-plugins install-all build build-all build-plugins run test bats release integration-test uninstall clean clean-plugins rebuild-plugins rm-meta
```

How can I resolve this? If you propose a fix, please make it concise.

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