SpacetimeDB Version Manager (Windows only atm)
( This repo has no official association with SpacetimeDB )
This tool is useful when:
- Wanting to change STDB versions with ease (run old projects, git-bisect, upgrading etc.)
- Working on two STDB projects at the same time and switching relatively frequently.
- Frequently switching between two branches on different versions.
- Testing how old and new systems interact with each other:
- e.g. test how old client generated bindings and UI interact with new DB updates/modules. Useful for live module updates, slow roll-outs, zero-downtime/non-forced/manual update systems, etc.
- Offline version switching.
- Loading the earliest and latest of versions.
npm i -g stdb-vm
stdb-vm <cmd> <args...> <options...>
# alias
stvm <cmd> <args...> <options...>
Set default version from release listings with --remote
flag:
stvm set -r
# apply given env patch
Use --direct
flag to point to different local versions simultaneously:
# Terminal 1
stvm set version-1 -d # apply given env patch
stvm start -l="host1" # please ensure host exists
# Terminal 2
stvm set version-2 -d # apply given env patch
stvm start -l="host2" # please ensure host exists
# later - return to default instance
stvm use-default
# clone, then:
npm i
npm start -- <cmd> <args...> <options...>
# Generate cli docs
npm run docs
# build
npm run build
npm run built:Test -- <cmd> <args...> <options...>
# test globally (make sure to build first!)
npm install -g .
npm uninstall -g stdb-vm
- Selection lists
- Publish: Build, npm dist, and make globally accessible
- Refactor (cmd route like directories, group vue and commander cmds, components dir)
- Doc generations (determine if cmd or import, iterate over help)
- Add support for other OS's
- Pure semver support so you don't have to be picky with tag names
- Use loading bar component for downloads
- rmdb cmd to remove db's in .spacetime/versions
I wonder if perhaps I should only allow -d
to be applied via env patch so people don't wind up stuck on a direct version without realizing.
Usage: stdb-vm [options] [command]
Alias: stvm
SpacetimeDB Version Manager!
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
current Show active SpacetimeDB version and path.
set [options] Set active SpacetimeDB version by tag name. (Has selector
for no args)
use-default Set SpacetimeDB path back to default
`{homeDir}/SpacetimeDB`.
latest Check latest release on github.
list List downloaded SpacetimeDB versions.
releases List SpacetimeDB releases on github.
load [options] Download SpacetimeDB version. (Has selector for no args)
rm [options] Delete SpacetimeDB version. (Has selector for no args)
start [options] Start SpacetimeDB runtime in a version specific DB directory.
(
Mitigates versions introducing breaking changes on default.
Also avoids file lock, allowing multiple versions to run at once.
)
help [command] display help for command
Usage: stdb-vm current [options]
Show active SpacetimeDB version and path.
Options:
-h, --help display help for command
Usage: stdb-vm set [options]
Set active SpacetimeDB version by tag name. (Has selector for no args)
Options:
<version> Specific version to set.
-d, --direct Use direct path to SpacetimeDB Version rather than replacing
default.
-r, --remote Set version from remote release list.
-h, --help display help for command
Usage: stdb-vm use-default [options]
Set SpacetimeDB path back to default `{homeDir}/SpacetimeDB`.
Options:
-h, --help display help for command
Usage: stdb-vm latest [options]
Check latest release on github.
Options:
-h, --help display help for command
Usage: stdb-vm list [options]
List downloaded SpacetimeDB versions.
Options:
-h, --help display help for command
Usage: stdb-vm releases [options]
List SpacetimeDB releases on github.
Options:
-h, --help display help for command
Usage: stdb-vm load [options]
Download SpacetimeDB version. (Has selector for no args)
Options:
<version> Download specific version.
-h, --help display help for command
Usage: stdb-vm rm [options]
Delete SpacetimeDB version. (Has selector for no args)
Options:
<version> Specific version to remove.
--all Download specific version.
-h, --help display help for command
Usage: stdb-vm start [options]
Start SpacetimeDB runtime in a version specific DB directory.
(
Mitigates versions introducing breaking changes on default.
Also avoids file lock, allowing multiple versions to run at once.
)
Options:
<args...> argument passthrough to `spacetime start`
(Note: non-flag arg will override versioned db path)
-h, --help display help for command