Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@ All notable changes to this project are documented here. The format is based on
[Keep a Changelog](https://keepachangelog.com/), and this project adheres to
[Semantic Versioning](https://semver.org/).

## [Unreleased]
## [0.1.0] - 2026-05-27

No version has been tagged yet, so everything below is unreleased. On the first
release this section becomes `## [0.1.0] - <date>`.
First tagged release.

### Added
- `migrate` entrypoint with `capture`, `provision`, `restore`, and `bootstrap` commands.
Expand Down
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ One command, then a clickable, step-by-step UI. No `git clone`, no flags to lear
curl -fsSL https://migration-machine.callmesukhi.com/install.sh | bash
```

Or, if you use [Homebrew](https://brew.sh):

```bash
brew install callmesukhi/tap/migration-machine
migrate wizard
```

This downloads migration-machine and launches a guided setup powered by [swiftDialog](https://github.com/swiftDialog/swiftDialog). It walks you through backing up your old Mac or setting up the new one: on the backup path, it confirms and then starts `migrate capture` without a dry-run preview; on the new-Mac setup path, it helps build your manifest and previews each provisioning step as a dry run before anything changes. Already cloned the repo? Just run `./migrate wizard`.

Prefer to read the installer before piping it to a shell (a good habit):
Expand Down
23 changes: 14 additions & 9 deletions packaging/homebrew/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,26 @@ setup you do on GitHub; this folder holds the source of truth.
3. Users then install with:

```bash
brew install --HEAD callmesukhi/tap/migration-machine
brew install callmesukhi/tap/migration-machine
migrate wizard
```

## Stable release vs. HEAD
## Releasing a new version

The committed formula is HEAD-only: it has no stable `url`/`sha256` yet, so it
installs from the latest `main` with `--HEAD` (as shown above). To offer a
stable, versioned install, tag a release and add a stable block to the formula:
The formula pins a stable release via `url` + `sha256` (currently `v0.1.0`).
`--HEAD` is still available for installing the latest `main`:

```bash
git tag v0.1.0 && git push --tags
curl -fsSL https://github.com/callmesukhi/migration-machine/archive/refs/tags/v0.1.0.tar.gz | shasum -a 256
# Add `url` + `sha256` lines to migration-machine.rb (a template is in the
# formula's comments). Then users can drop the --HEAD flag.
brew install --HEAD callmesukhi/tap/migration-machine
```

To cut a new version, tag it, hash the tarball, bump the formula, and copy it
into the tap repo:

```bash
git tag vX.Y.Z && git push origin vX.Y.Z
curl -fsSL https://github.com/callmesukhi/migration-machine/archive/refs/tags/vX.Y.Z.tar.gz | shasum -a 256
# update `url` and `sha256` in migration-machine.rb, then copy it into homebrew-tap/Formula/
```

## Notes
Expand Down
7 changes: 2 additions & 5 deletions packaging/homebrew/migration-machine.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,8 @@ class MigrationMachine < Formula
homepage "https://migration-machine.callmesukhi.com"
license "MIT"

# HEAD-only until the first tagged release. Install with:
# brew install --HEAD callmesukhi/tap/migration-machine
# At release time, add a stable block (and drop this comment):
# url "https://github.com/callmesukhi/migration-machine/archive/refs/tags/v0.1.0.tar.gz"
# sha256 "<output of: shasum -a 256 on that tarball>"
url "https://github.com/callmesukhi/migration-machine/archive/refs/tags/v0.1.0.tar.gz"
sha256 "113e9f2eb0eea5c4cd50e76ff03a4d4ca5fe6c61802837968addc213a3237421"
head "https://github.com/callmesukhi/migration-machine.git", branch: "main"

depends_on :macos
Expand Down
6 changes: 6 additions & 0 deletions site/docs.html
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,12 @@ <h3 id="install">Install</h3>
<pre class="block"><code>git clone https://github.com/callmesukhi/migration-machine.git
cd migration-machine</code></pre>
</div>
<p>Or install it with <a href="https://brew.sh" target="_blank" rel="noopener">Homebrew</a>:</p>
<div class="codewrap">
<button class="copy">copy</button>
<pre class="block"><code>brew install callmesukhi/tap/migration-machine
migrate wizard</code></pre>
</div>

<h3 id="data">Tool vs data</h3>
<p>The repo is the tool. Your captured config is <span class="muted">data</span>, kept in a separate folder so you can carry it between machines. Point at it with <code>--data DIR</code> or the <code>MIGRATION_DATA</code> environment variable. Default: <code>~/migration-data</code>.</p>
Expand Down
Loading