Prepare
First-time remotes before the Demo. Local-only demos can skip this page.
Also see Requirements, User Guide · setup, Introduction.
First-time remotes
Every machine that runs jobs needs the project and its dependencies. Deploy the tree, then instantiate on each remote before go / drive:
# Local (once): deps for this project
julia --project=. -e 'using Pkg; Pkg.instantiate()'
# Remotes: deploy the tree, then install deps from Manifest.toml
# Pick one first deploy:
julia --project=. -m DistSSHKit setup --rsync YourHost1 YourHost2 # no remote .git/
# or: julia --project=. -m DistSSHKit setup --clone YourHost1 YourHost2
julia --project=. -m DistSSHKit setup --instantiate YourHost1 YourHost2
# optional: job Pkg.test() on remotes (not DistSSHKit's tests)
# julia --project=. -m DistSSHKit setup --runtest YourHost1 YourHost2--rsync is the usual first deploy; --clone is the git path (later updates: setup --sync). Both need the same --instantiate afterward. Not sure which to pick? See setup · rsync or git?. Skipping instantiate is a common cause of remote failures such as failed to find source of parent package: "…". go / drive and setup --check probe remotes first and fail fast with an --instantiate hint when deps are missing.
Same steps from Julia:
session = KitSession(workers=["YourHost1", "YourHost2"], yes=true)
setup!(session, :rsync, :instantiate)
# optional: setup!(session, :check); setup!(session, :runtest)
# git remotes: setup!(session, :clone; repo="https://…") then :instantiate
# later updates: setup!(session, :sync)CLI and API share the default remote root (~/Parent/RepoName). If you override it (setup --remote-path / KitSession(; remote=…)), pass the same path to go / drive / go! / drive! / pipeline!.
After setup, just run go / drive — neither pre-runs sync nor requires git parity by default. Optional one-shot: go --sync / go --rsync / drive --sync / drive --rsync. Commit parity is drive-only: drive --require-git on git-managed remotes. Kit logs for setup land under {project}/.distsshkit/setup/. Put .distsshkit/ in the job .gitignore (User Guide).
Verify when ready:
julia --project=. -m DistSSHKit setup --check YourHost1 YourHost2Clean slate (confirm when prompted):
julia --project=. -m DistSSHKit setup --delete YourHost1 YourHost2Next: Demo.