Appearance
Running your checkout
Three things are called dqx, they all print the same version, and only one of them is running at a time. That is where an afternoon goes: an edit that "does nothing" is usually an edit to a checkout while the shell is running the release.
Ask, at any point:
bash
dqx version --where1.0.0
running: /Users/dev/dockers/dq-tools-next/dist/dqx (a build of a checkout)
`bun run build` updates it. `bun run link:dev` runs the sources instead
back to the release: `bun run link:release`The three, and how to switch
| what runs | when to use it | |
|---|---|---|
bun run link | dist/dqx, the compiled checkout | what a colleague will get — the compiled path, embedded assets and all |
bun run link:dev | src/cli.ts, through bun | working on it: an edit is live, nothing to rebuild |
bun run link:release | the installed release | checking whether a bug is yours or was already there |
All three put dqx in the first writable directory on your PATH — ~/.local/bin on most machines, the same place install.sh uses.
Your installed release is not thrown away. The first bun run link moves it aside as dqx-released and bun run link:release puts it back, so switching costs nothing and needs no network. If there is nothing to put back, the installer says so and prints the curl line.
Which one is a colleague running?
dqx version --where answers that too, and is worth asking before believing a bug report. A release older than this feature answers unknown option '--where', which is its own kind of answer.
While you work
bash
bun run link:dev # once
bun test --watch # the loop
bun run test:gate # what CI runs: build, tests, and the coverage gatebun run dev -- <args> runs the sources once without linking anything, for when you only want to see what one command does.