Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 01:23
· 54 commits to main since this release

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 with dwork list, and activate one from any directory with dwork 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 with dwork forget NAME without 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: true in dwork.yml. Locks and DWORK_KEEP_PROJECTS exclusions apply during switching and shutdown.
  • dwork up and dwork down show a plan and request confirmation before applying it. Use --dry-run to preview without changing state or answering prompts.
  • dwork down stops 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 status and dwork doctor commands 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's compinit, source <(dwork completion zsh).
  • Command aliases: ls, sw, reg, rm, ps, and up. Terminal output now uses consistent workspace colors; NO_COLOR=1 disables them, and redirected output stays plain.
  • An optional dwork agent skill helps coding agents create and update dwork.yml from 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 is dwork).
  • SHA256SUMS covering all five package files. Download the packages and checksum file into one directory and run sha256sum --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