Boatman Ecosystem documentation is live!
Guides
Migration Guide

Migration Guide

Instructions for migrating from the standalone boatmanmode and boatmanapp repositories to the unified monorepo.

Before You Start

The monorepo at boatman combines:

  • boatmanmodecli/ directory
  • boatmanappdesktop/ directory
  • New: shared/ for common packages
  • New: docs/ for documentation site

All Git history is preserved through a subtree merge.


Step 1: Clone the Monorepo

git clone https://github.com/philjestin/boatman
cd boatman

Step 2: Update Your PATH

If you had boatmanmode in your PATH, update it:

# Old
export PATH="$PATH:~/workspace/boatmanmode"
 
# New
export PATH="$PATH:~/workspace/personal/boatman-ecosystem/cli"

Step 3: Update Import Paths

If you import BoatmanMode as a library, the module path remains the same:

import "github.com/philjestin/boatmanmode"

No changes needed for library consumers.


Step 4: Update Development Workflow

Old Workflow (Two Repos)

# Terminal 1: CLI
cd ~/workspace/boatmanmode
go build -o boatman ./cmd/boatmanmode
 
# Terminal 2: Desktop
cd ~/workspace/personal/boatmanapp
wails dev

New Workflow (Monorepo)

# Single repo
cd ~/workspace/personal/boatman-ecosystem
 
# Build both
make build-all
 
# Or individually
make build-cli
make dev

Step 5: Update CI/CD

CI workflows remain in cli/.github/workflows/ and continue to work.

For monorepo-level CI, the root Makefile provides targets for building and testing all components.


Step 6: Go Workspace

The go.work file ties modules together:

go 1.24.1
 
use (
    ./cli
    ./desktop
    ./shared
)

Run go work sync to ensure dependencies are aligned.


Troubleshooting

"module not found" errors

go work sync

Old boatman binary conflicts

Remove the old binary:

rm ~/workspace/boatmanmode/boatman

Desktop can't find CLI binary

Build the CLI first:

make build-cli

Or update PATH to include the monorepo cli/ directory.


What Changed

BeforeAfter
~/workspace/boatmanmode/~/workspace/personal/boatman-ecosystem/cli/
~/workspace/personal/boatmanapp/~/workspace/personal/boatman-ecosystem/desktop/
Two separate reposOne monorepo
Independent buildsUnified Makefile
No shared codeshared/ package
Separate docsUnified docs site