stdb-vm v0.0.0
STDB-VM
SpacetimeDB Version Manager (Windows only atm) ( This repo has no official association with SpacetimeDB )
This tool is useful when: 1. Wanting to change STDB versions with ease (run old projects, git-bisect, upgrading etc.) 2. Working on two STDB projects at the same time and switching relatively frequently. 3. Frequently switching between two branches on different versions. 4. 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. 5. Offline version switching. 6. Loading the earliest and latest of versions.
Getting Started
Using:
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
Developing:
# 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
Todo:
- 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.
Docs
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
7 months ago