-
Notifications
You must be signed in to change notification settings - Fork 0
Add release-based installation (install without cloning) #34
Copy link
Copy link
Open
Description
Summary
Currently, installing autodidact requires cloning the repo, running uv sync, and executing ./install. This ties users to maintaining a local source tree and creates friction for adoption. We should support installing from a GitHub release so users can run a one-liner without cloning.
Goal
A user should be able to install a specific version of autodidact with something like:
curl -sSL https://github.com/Jason-Adam/autodidact/releases/latest/download/install.sh | bash
# or
curl -sSL ... | bash -s -- v0.2.0 # specific versionCurrent State
install.pycreates symlinks from the cloned repo into~/.claude/— this requires the source tree to stay in placepyproject.tomlalready useshatchlingas the build backend- CI runs tests but has no release workflow
- No GitHub releases exist yet
Proposed Approach
1. Release Workflow (.github/workflows/release.yml)
- Trigger on version tags (
v*) - Run the test suite
- Package a self-contained release tarball containing
src/,skills/,agents/,commands/,templates/,hooks/, and the installer - Create a GitHub release with the tarball attached
- Optionally publish to PyPI
2. Standalone Installer
- A bootstrap script (e.g.,
install.sh) that:- Downloads and extracts the release tarball to
~/.claude/autodidact/ - Copies files instead of symlinking (no source tree dependency)
- Patches
~/.claude/settings.jsonwith hooks (same as currentinstall.py) - Initializes the learning DB
- Supports
--versionflag to pin a specific release - Supports
--uninstallto remove everything
- Downloads and extracts the release tarball to
3. Update Mechanism
install.sh --updateto pull the latest release and re-install- Version marker at
~/.claude/autodidact/.installedalready exists — extend it to track installed version
4. Versioning
- Adopt tag-based versioning (
v0.1.0,v0.2.0, etc.) - Consider a changelog (manual or automated)
Out of Scope (for now)
- Homebrew formula
- Platform-specific installers (
.deb,.rpm) - Auto-update daemon
Acceptance Criteria
- Tag-triggered release workflow creates GitHub releases with a tarball
- A standalone install script can install autodidact from a release without cloning
-
--versionflag allows installing a specific release -
--uninstallremoves the installation cleanly - Existing clone-based
./installworkflow continues to work - README documents both installation methods
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels