Repository navigation
v0.2.0
dwork v0.2.0 adds named workspaces, safer switching, controlled shutdown of development commands, and installable Linux packages.
Workspace management
- Register a project with
dwork register [NAME], list saved workspaces withdwork list, and activate one from any directory withdwork switch NAME. Saved Compose options are reused; your calling shell stays in its current directory. - Rename saved workspaces with
dwork rename NAME NEW_NAME, or remove their registration withdwork forget NAMEwithout stopping workloads or deleting project files. - Discover projects recursively with
dwork scan. Configured workspaces are registered first; an optional checkbox picker lets you choose Compose-only directories. Dependency/cache/build directories are skipped, and repository boundaries limit traversal.
Safer switching and shutdown
- Only registered workspaces are eligible to be stopped. Unregistered Compose projects stay running. Container management respects saved service selections and the active Docker target.
- Protect a workspace with
locked: trueindwork.yml. Locks andDWORK_KEEP_PROJECTSexclusions apply during switching and shutdown. dwork upanddwork downshow a plan and request confirmation before applying it. Use--dry-runto preview without changing state or answering prompts.dwork downstops registered containers and locally tracked commands. Containers, networks, volumes, and registrations are preserved.
Terminal and background tasks
- Run a task without a terminal window using
window: none. Health prerequisites and confirmation still apply; detached output is discarded rather than written to an implicit log file. - Commands launched through this version are tracked for
dwork down. Visible terminal windows remain open at a Bash or Zsh prompt after their command stops. Ordinary workspace switches leave existing host tasks running. - Renaming preserves task tracking; forgetting a workspace relinquishes management without stopping its tasks. Tracking is local to the Linux user and installation/WSL distribution.
Diagnostics and shell integration
- New read-only
dwork statusanddwork doctorcommands show workspace/container state and diagnose configuration, Docker access, shell, and terminal dependencies. - Failed or interrupted switches report completed and unconfirmed actions, refresh container state when possible, and suggest recovery steps without an automatic rollback.
- Bash and Zsh completion covers commands, aliases, workspace names, and relevant paths. Enable it with
source <(dwork completion bash)or, after Zsh'scompinit,source <(dwork completion zsh). - Command aliases:
ls,sw,reg,rm,ps, andup. Terminal output now uses consistent workspace colors;NO_COLOR=1disables them, and redirected output stays plain. - An optional dwork agent skill helps coding agents create and update
dwork.ymlfrom a project's existing services and commands.
Downloads and installation
This release includes:
- A Debian/Ubuntu
.deb, built and tested on Ubuntu 24.04. - A Fedora 44
.noarch.rpm. - An Arch Linux
any.pkg.tar.zst, built and tested against the rolling distribution. - A Python wheel and source distribution for
dwork-cli(the installed command isdwork). SHA256SUMScovering all five package files. Download the packages and checksum file into one directory and runsha256sum --check SHA256SUMS.
These are Python-based packages, not self-contained executables; dwork requires Python 3.10 or newer and PyYAML. Native packages use distro dependencies and are unsigned. PyPI, Homebrew/AUR, and package-repository publication remain separate from these GitHub downloads. make install remains supported.
Upgrading from v0.1.0
- Register the workspaces you want dwork to manage. First activation asks for registration consent; projects that remain unregistered will no longer be stopped by a switch.
- Restart commands launched by older versions through v0.2.0 to enable task tracking. Programs that daemonize or leave their process group need their own lifecycle management.
- dwork continues to resume existing containers only: it never creates, rebuilds, recreates, or removes them.
Validation
All 165 automated tests passed in both Fedora and Arch containers. The release workflow also passed Python wheel/source-distribution verification, Debian build/lint/install checks, native RPM and Arch build/install checks, and installed CLI smoke tests. Native desktop GUI behavior still needs real desktop verification.
Full changelog: v0.1.0...v0.2.0