Releases: XAOSTECH/dev-control
Release v0.5.6
What's Changed
Commits since v0.5.5
- chore: update CHANGELOG for v0.5.6 (re-release) (16ce928)
- fix: SVG info transform arithmetic calculation (5d852a9)
- fix: tree-viz JSON escaping and duplicate echo bugs (19a4b98)
- fix: tree visualization - CodeQL schedule, SVG rendering, relative paths (4a39c17)
- feat: add fractal git tree visualization (create-tree.sh) (4131135)
- feat: add security branch cleanup and --auto-sign flag (b2a96a6)
- chore: update CHANGELOG for v0.5.6 (re-release) (41403dd)
- refactor: replace ludeeus/action-shellcheck with native shellcheck (223da66)
- chore: update CHANGELOG for v0.5.6 (ce6a753)
- refactor: replace peter-evans/create-pull-request with gh CLI (82693e5)
- security: fix untrusted-checkout vulnerabilities in automerge workflow (c8470aa)
- fix: restore correct variables in PR body template (eb4f8e2)
- fix: remove self-referential env vars and use correct shell syntax (837d676)
- fix: disable autofix automatic trigger to prevent infinite loop (0a630d1)
- fix: autofix script should skip env: sections and revert broken changes (687ab3e)
- Merge pull request #91 from XAOSTECH:security/autofix-1771727196 (2aa1820)
- security: auto-fix CodeQL alerts (7f1f4ac)
- fix: break up ${{ in env var echo to prevent parser interpretation (0f4ab1e)
- fix: prevent parser from interpreting bash array syntax as expression (42df46b)
- fix: workflow validation errors (e67d419)
- fix: prevent duplicate env sections and inline security script (38cc5ed)
- feat: amend security review issues instead of creating duplicates (5b3c9f5)
- Merge branch 'main' of https://github.com/XAOSTECH/dev-control (ed42e70)
- fix: prevent duplicate security review issues and fix inverted logic (317ff94)
- Merge pull request #75 from XAOSTECH:security/autofix-1771725722 (297282e)
- Merge pull request #77 from XAOSTECH:security/autofix-1771725763 (7ba15e3)
- security: auto-fix CodeQL alerts (9c9aedd)
- security: auto-fix CodeQL alerts (9007125)
- Merge pull request #71 from XAOSTECH:security/autofix-1771725675 (a285150)
- security: auto-fix CodeQL alerts (4ed930b)
- Merge branch 'main' of https://github.com/XAOSTECH/dev-control (3ac9cac)
- security: replace insecure regex with explicit bot allowlist + label requirement (95eed72)
- feat: add automerge label to security-fix PRs (2287308)
- Merge pull request #45 from XAOSTECH/security/autofix-1771725086 (56d40f9)
- security: auto-fix CodeQL alerts (7e35584)
- fix: trim spaces from expression capture and handle git diff errors (e379ba9)
- fix: security-autofix script input handling and consistency (725cf89)
- fix: add env section before run when extracting vulnerable expressions (7dab5c8)
- chore: make security-autofix script executable (4655db8)
- refactor: move complex script to external file to avoid expression parsing issues (956083a)
- fix: remove expression syntax from comment (f83a370)
- fix: remove ellipsis from JSON comment to avoid expression parser error (8b7c5a2)
- chore: whitespace - trigger workflow reload (a54ad83)
- fix: use head/tail instead of awk to avoid GitHub Actions expression parsing (04b1c29)
- refactor: replace Python with robust shell script for code-injection fixes (e85e41e)
- refactor: use Python for robust code-injection vulnerability fixing (b57d892)
- fix: skip PR creation when no files modified (759666f)
- fix: prevent jq backtick parsing in issue body (12eca20)
- Merge pull request #37 from XAOSTECH:security/autofix-1771640641 (f66fa45)
- fix: ensure labels exist before PR creation (b96d279)
- security: auto-fix CodeQL alerts (96e2dd8)
- fix: send commit payload via gh api input (f4e8ac2)
- fix: send git tree payload via gh api input (bd68599)
- fix: allow workflow_dispatch to bypass workflow_run guard (c057d55)
- debug: add tree JSON inspection output (81a2623)
- fix: build tree JSON properly with jq instead of string concat (8369a4f)
- fix: send parents as JSON array in commit API call (41142d0)
- sync: update security-autofix template with API approach (c33c2d7)
- fix: use GitHub API instead of git push for workflow changes (2a518f8)
- debug: test API write permission (25f2815)
- fix: use create-github-app-token@v2 with all required permissions (34e46dd)
- debug: add token permission check (0a0afb7)
- sync: update security-autofix template with permission grants (64a73b6)
- fix: add explicit permission grants for GitHub App token (30e3798)
- fix: remove duplicate env block in bash-lint-advanced.yml (c002d10)
- fix: remove redundant git config - identity action handles this (1320a58)
- fix: use relative path for local identity action (d6f3a86)
- fix: remove invalid expression syntax from comment (6e31c5b)
- fix: eliminate ALL multiline strings from workflow YAML (1a45db8)
- fix: remove heredoc syntax from workflows - use temp files (8aa9e5b)
- fix: use heredoc syntax for multiline strings in workflows (b1b0f77)
- chore: sync security-autofix template with fixed workflow (5e218cc)
- fix: remove broken Python code from security-autofix workflow (9e34978)
- security: fix code injection in central-loader variables (5688f94)
- security: implement workflow_run pattern for automerge (a8650b2)
Installation
Full Toolkit (tarball)
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.6/dev-control-0.5.6.tar.gz | tar xz
cd dev-control-0.5.6
./install.shLibrary Only (lightweight)
For projects that only need the TUI/print/colour utilities (~27KB vs ~180KB):
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.6/dev-control-lib-0.5.6.tar.gz | tar xz
# Then in your scripts:
source "./dev-control-lib-0.5.6/colours.sh"
source "./dev-control-lib-0.5.6/print.sh"
print_header "My Script"Homebrew (coming soon)
brew tap xaoscience/tap
brew install dev-controlChecksums
| File | SHA256 |
|---|---|
| dev-control-0.5.6.tar.gz | 0163604ad7aba519c994f3f054f7c9c3f67645706484da57efdfc3447e7d8e7f |
| dev-control-lib-0.5.6.tar.gz | e9e7a5a13950be7d2ba1a2d13970c5c2d95c9fc5931a487c3b5a638c2b28b442 |
Full Changelog: v0.5.5...v0.5.6
Release v0.5.5
What's Changed
Commits since v0.5.4
- chore: update CHANGELOG for v0.5.5 (re-release) (260f985)
- feat: use GitHub-style merge messages in automerge (14ff10d)
- Merge remote-tracking branch 'refs/remotes/pr/36' (288bedc)
- chore: convert American spellings to British English (f206108)
- fix: restore GH_TOKEN to automerge merge step (5bb6009)
- security: reduce automerge checkout attack surface (a379fe2)
- chore: update CHANGELOG for v0.5.5 (re-release) (273d282)
- fix: use xaostech-security[bot] credentials in security-autofix (7e03dce)
- feat: add automated security fix bot workflow (b189e3a)
- security: fix YAML syntax error and pin create-pull-request action (ea70839)
- security: fix code injection in central-loader sed replacements (1b79451)
- security: fix code injection vulnerabilities in workflows (80fbe1b)
- Update CodeQL Action to v4 with automatic patch management (e148b60)
- Simplify CodeQL to focus on repo languages (JavaScript/YAML only) (876f63e)
- chore: rename codeQL (01efbb6)
- Add auto-fix PR creation to bash-lint-advanced with xaostech-security[bot] credentials (355edeb)
- Fix bash-lint-advanced job outputs and create advanced CodeQL security workflow (6053dfe)
- Fix CodeQL untrusted-checkout alert: fetch PR head from official repo (11784cb)
- Fix --reauthor to include target commit and detect merge topology (f1cadbf)
- Add reauthor and force resign options to dc-fix (4628b57)
- Sign automerge merges with xaos-bot (f94620b)
- chore: update CHANGELOG for v0.5.5 (re-release) (429ed52)
- Merge pull request #34 from XAOSTECH/anglicise/20260220-215059 (bb14c48)
- chore: convert American spellings to British English (15f31b4)
- Fix anglicise grep quoting and ignore test-repo (b919cd8)
- chore: update CHANGELOG for v0.5.5 (re-release) (ff85a3c)
- Add defaults-only mode for template loading (8324153)
- Add app token secret name templating (be9f6dc)
- Template workflow secret name placeholders (4a373dc)
- Add secret name and stability caching to template-loading.sh (4681ca5)
- chore: update CHANGELOG for v0.5.5 (re-release) (ab1a234)
- Add bot-email input and template-loading integration for bot values (9f8a876)
- Replace xaos-bot specific values with placeholders in action template (2a96bad)
- chore: update CHANGELOG for v0.5.5 (re-release) (7571944)
- fix: correct shields.io badge parameters and refine anglicise exclusions (ff22c5e)
- docs(readme): readability (8a57dd0)
- chore: update CHANGELOG for v0.5.5 (11f4b9f)
- fix(footer.Dockerfile): pre-create ~/.devcontainer so postCreateCommand marker can be written (012c706)
- fix(footer.Dockerfile): bust permissions layer cache with BUILD_DATE ARG (2a000fc)
- fix(containerise): remove --userns=keep-id from runArgs + prune before nest loop (3d861ef)
- fix(containerise): prune stale vsc-*-uid wrapper images after base build (e7278df)
- feat(containers): add metadata LABEL to base images + streaming GPU/device passthrough (201e98c)
Installation
Full Toolkit (tarball)
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.5/dev-control-0.5.5.tar.gz | tar xz
cd dev-control-0.5.5
./install.shLibrary Only (lightweight)
For projects that only need the TUI/print/colour utilities (~27KB vs ~180KB):
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.5/dev-control-lib-0.5.5.tar.gz | tar xz
# Then in your scripts:
source "./dev-control-lib-0.5.5/colours.sh"
source "./dev-control-lib-0.5.5/print.sh"
print_header "My Script"Homebrew (coming soon)
brew tap xaoscience/tap
brew install dev-controlChecksums
| File | SHA256 |
|---|---|
| dev-control-0.5.5.tar.gz | 91cb2b87d5206d1d7a3af084640820c502cb7bddc4e35cc5918e765569383713 |
| dev-control-lib-0.5.5.tar.gz | 608b9933fe0e67a000782761a9ac847b23508d967e34b6985ae6d496af6e9005 |
Full Changelog: v0.5.4...v0.5.5
Release v0.5.4
What's Changed
Commits since v0.5.3
- chore: update CHANGELOG for v0.5.4 (re-release) (f82a21d)
- docs(readme): update command examples (1c4d5af)
- chore: update CHANGELOG for v0.5.4 (re-release) (43fdd90)
- fix(footer.Dockerfile): fix user setup and switch to wget (26b2dae)
- fix: remove GPG_TTY literal and conflicting socket bind mount (01a74b8)
- fix(container): pre-create .ssh/.cache/.config in image; restore .gnupg chown in postCreateCommand; add --no-cache to dc-contain --base (8609c92)
- chore: update CHANGELOG for v0.5.4 (re-release) (974abfe)
- fix: support v-prefixed version input, strip if present (8cbd262)
- fix: normalise CHANGELOG blank lines with cat -s after each edit (f9c9d14)
- chore: update CHANGELOG for v0.5.4 (re-release) (d9f274d)
- feat: automate re-release and smart CHANGELOG handling (869e4cd)
- perf: skip build steps on duplicate run via early release check (7ed6442)
- fix: add per-tag concurrency and idempotent release creation (f9cfcf3)
- fix: use GITHUB_TOKEN to push tag in dispatch path to prevent re-trigger (599eaaa)
- chore: update CHANGELOG for v0.5.4 (adf0f50)
- refactor: deduplicate commit-fetching into shared gather step (6596398)
- feat: auto-generate CHANGELOG.md in release workflow (4fe7962)
- docs(readme): update intro + usage (ae65eeb)
- fix: skip GPG re-registration if key already present (c72dfea)
- feat: extract bot identity into composite action (a4062d1)
- fix: prevent set -e crash in GPG registration step (0817b1e)
- fix: use machine user (xaos-bot) identity for GPG signing and git attribution (758a975)
- fix: use personal PAT (XB_UT) for GPG key registration, fix check logic (608c720)
- fix: expose GPG key registration failures and attribute release to bot (ae15fdf)
- fix: generate app token before checkout so credential helper uses app identity (68e214b)
- fix: configure app token remote once at workflow start for all pushes (84fcb30)
- fix: remove invalid workflows permission key from release workflow (aca9217)
- fix: workflows permission, app token push, and auto-version for release (c7a0691)
- fix: set git identity in Update latest tag step (8c48681)
- fix: correct latest tag creation in release workflow (4464dc6)
- fix: apply bot identity and GPG verification to release workflow (f712da5)
- fix: correct bot display name and GPG commit verification (6d2bd2d)
- Merge pull request #33 from XAOSTECH/anglicise/20260218-003720 (e9849e1)
- fix: correct single-quote escaping in anglicise grep patterns (a0291af)
- chore: convert American spellings to British English (a86ff82)
- fix: use perl negative lookahead instead of whole-line filename skip (77ef752)
- fix: use app display name for git user.name instead of ASCII slug (7807b62)
- fix: support --auto-resolve=value and AUTO_RESOLVE=THEIRS in fix-history (dfaa60e)
- fix: register bot GPG key unconditionally on every workflow run (664ff25)
- Merge pull request #32 from XAOSTECH/anglicise/20260218-001511 (d03652d)
- feat: attribute bot commits/merges to GitHub App identity (ed98c53)
- chore: convert American spellings to British English (e1eb36b)
- Merge pull request #31 from XAOSTECH/replace/20260217-235313 (b63d9cb)
- refactor: use xxd -p -u for cleaner hex passphrase encoding (4e0c90d)
- chore: replace text across repository (6ae9fd2)
- feat: auto-merge any xaos[bot] PRs without requiring automerge label (6e493d9)
- fix: use gpg-connect-agent PRESET_PASSPHRASE for correct CI/CD signing (f62e697)
- fix: use absolute PATH and ensure wrapper is accessible in commit step (ceddf85)
- fix: replace heredoc with printf for YAML compliance (ecfd66f)
- fix: create GPG wrapper script for pinentry mode (d70e17a)
- fix: simplify GPG signing and remove .git default from exclude paths (9ebb777)
- fix: pass GPG environment variables to commit step (eb7bff1)
- fix: replace heredoc with printf for valid YAML syntax (3800f84)
- fix: implement proper GPG signing with passphrase caching (4c02f34)
- fix: add GPG_PINENTRY_MODE=loopback to enable non-interactive signing (4a1da2a)
- fix: enable GPG signing in CI/CD with loopback pinentry mode (80c4986)
- chore: update workflows with GitHub App token integration (80db8b2)
- feat: add text replacement workflow (c0f60e8)
- chore: change anglicise workflow to run monthly and on-demand only (224b406)
- docs(security): version (33e28e6)
- docs(readme): intro (5644168)
Installation
Full Toolkit (tarball)
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.4/dev-control-0.5.4.tar.gz | tar xz
cd dev-control-0.5.4
./install.shLibrary Only (lightweight)
For projects that only need the TUI/print/colour utilities (~27KB vs ~180KB):
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.4/dev-control-lib-0.5.4.tar.gz | tar xz
# Then in your scripts:
source "./dev-control-lib-0.5.4/colours.sh"
source "./dev-control-lib-0.5.4/print.sh"
print_header "My Script"Homebrew (coming soon)
brew tap xaoscience/tap
brew install dev-controlChecksums
| File | SHA256 |
|---|---|
| dev-control-0.5.4.tar.gz | e3d2b42570176e334d5800c29d69512be33a2980e47441f73098b1ed591768f8 |
| dev-control-lib-0.5.4.tar.gz | 83a4f2937f98c266b34894e6610df655acff7c7b2e8a976c23d13416d22f0201 |
Full Changelog: v0.5.3...v0.5.4
Release v0.5.3
What's Changed
Commits since v0.5.2
- fix(containerise/docker-footer): replace curl retry loop with wget (9fe7add)
- docs(workflows): add GPG tag signing instructions and fix example URLs (668d71b)
- fix(module-nesting): unquote find pattern for proper argument expansion (6cbccf9)
- fix(containerise): exclude .tmp/.bak directories from nest scanning (ef7ba17)
- fix: correct dev-control GitHub URL and add curl retry for reliability (0169d58)
- fix: chmod 755 /home/${CATEGORY} to allow postCreateCommand file I/O (0967c91)
- fix: pre-create .gnupg with 700 permissions to prevent VS Code init failure (1317198)
- feat: add container deletion to --nest --regen to remove stale containers (281df56)
- fix(containerise): remove baked runtime commands from Dockerfile, defer to postCreateCommand (90cb6d0)
- chore(containerise): postStart -> postCreate + deduplicate git config therein (8ed74d9)
- chore(containerise): remove metadata logic (using README) (7b01fc2)
- chore: colors.sh -> colours.sh (dbf246b)
- fix(workflows): use TAG_NAME instead of HEAD in release notes generation (76fc081)
Installation
Full Toolkit (tarball)
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.3/dev-control-0.5.3.tar.gz | tar xz
cd dev-control-0.5.3
./install.shLibrary Only (lightweight)
For projects that only need the TUI/print/colour utilities (~27KB vs ~180KB):
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.3/dev-control-lib-0.5.3.tar.gz | tar xz
# Then in your scripts:
source "./dev-control-lib-0.5.3/colours.sh"
source "./dev-control-lib-0.5.3/print.sh"
print_header "My Script"Homebrew (coming soon)
brew tap xaoscience/tap
brew install dev-controlChecksums
| File | SHA256 |
|---|---|
| dev-control-0.5.3.tar.gz | 17c30570f9bd096b9b126fc3081e0f12f27d568c4847500f70a443d2d41b9b00 |
| dev-control-lib-0.5.3.tar.gz | e5dfab19b3a3c63d4d02d09b85b76f6092cfabcc540f06490e4a48ffc2ec565c |
Full Changelog: v0.5.2...v0.5.3
Release v0.5.2
What's Changed
Commits since v0.5.1
- fix(workflows): use TAG_NAME instead of HEAD in release notes generation (4116b7e)
- chore: update CHANGELOG for v0.5.2 (32567bc)
- fix(devcontainer): match UID 1000 for --userns=keep-id compatibility (c5315e8)
- refactor(containerise): remove inline JSON comments - README handles all documentation (8037e6d)
- fix(docker): enforce .gnupg write permissions before USER switch to survive --userns remapping (56bafd5)
- fix(docker): perform GPG cleanup as root before USER switch to avoid permission errors (97723cc)
- fix(docker): recreate .gnupg immediately after cleanup to preserve permissions (12dd28b)
- chore(workflows): redact GPG key IDs from all workflow logs (3f14aad)
- chore(workflows): redact GPG key IDs from logs (f4c6087)
- fix(workflows): handle GPG import gracefully with robust key extraction (a37cb59)
- fix(dc-fix): improve GPG validation logic and check for 'none' key (2d08291)
- fix(gpg): remove gpg-connect-agent from postCreate to preserve .gnupg permissions (f4f5f23)
- refactor(readme): add latest download URL and clarify img/base flow (07b31f2)
- feat(readme): centralize devcontainer README generation (2e44ce0)
- Merge pull request #30 from XAOSTECH/anglicise/20260209-203619 (0dfaecc)
- fix(nest): disable set -e during --regen deletion loop (7b94b87)
- chore: convert American spellings to British English (f3e911b)
- fix(nest): rebuild all projects after --regen deletion (8e61ae2)
- feat(nest): make --regen auto-rebuild without second confirmation (4a74e32)
- fix(nest): exclude .bak and .tmp from --regen deletion list (b3f8f0f)
- fix(parse_args): remove duplicate --regen case preventing deletion notification (4464772)
- fix(nest): use grep/perl regex for robust JSON parsing from nest.json (70962d1)
- feat(nest): implement proper metadata hierarchy with README generation (d093aca)
- fix(nest): remove invented logic, keep --delete, use only comment-based category detection (4b30021)
- feat(nest): fix legacy project detection and add interactive category assignment (17aa203)
- chore(containerise): add safety filter so --regen skips any .devcontainer under .tmp or .bak. (d035a2f)
- feat: add --regen flag to nest mode for deleting existing devcontainers (a79d810)
- Revert "feat: improve category detection with smart fallback chain" and "fix: improve category detection with folder name inference" (0f53401)
- fix: improve category detection with folder name inference and metadata persistence (9efbaf8)
- feat: improve category detection with smart fallback chain (9ac4000)
- fix: correct heredoc syntax for metadata field (353572d)
- fix: improve category detection with metadata field and fallback chain (7a57db9)
- fix: restore monolith comment-based category system in devcontainer.json (fb0afd5)
- fix: resolve modularization issues breaking GPG and postCreateCommand (9ad656f)
- fix(containerise): remove invalid JSON comments, preserve docs in README (b364c1a)
- fix(containerise): use UIDs instead of usernames in postCreateCommand (eda9ac9)
- fix(containerise): resolve gnupg permission denied by clearing corrupted state first (6841b51)
- Merge pull request #28 from XAOSTECH/anglicise/20260209-151906 (9aaf3ac)
- fix(automerge): trigger on anglicise runs and scan labeled prs (b38200a)
- chore: convert American spellings to British English (2ea87e8)
- fix(workflows): align automerge triggers and anglicise exclusions (93b5b0f)
- fix(anglicise): ensure automerge label exists before creating pr (13cdb48)
- feat(cluster): add full-stack cluster setup with selection window (a781765)
- fix(anglicise/mcp-setup): exclude authorization bearer lines from anglicise checks + americanise auth header + normalise indent (676b09d)
- fix(mcp-setup): move firecrawl npm cache to /tmp (b7e9ca9)
- fix(mcp-setup): avoid npm cache permission errors (98c6853)
- fix(mcp-setup): ensure Firecrawl MCP PATH is resolvable (69a31f0)
- fix(containerise): restore GPG mount permissions in postCreateCommand (abd2432)
- fix(containerise): remove ~/.gnupg destruction from containerise postCreateCommand (17ed1be)
- fix(mcp): use dynamic NVM sourcing for firecrawl instead of hardcoded path (54f4205)
- fix(containerise): remove duplicate git config from postCreateCommand (47e7fc4)
- fix(print): use echo -e instead of printf for header middle lines (c867c39)
- feat(workflows): add GPG signing to all commit-creating workflows (ba52e93)
Installation
Full Toolkit (tarball)
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.2/dev-control-0.5.2.tar.gz | tar xz
cd dev-control-0.5.2
./install.shLibrary Only (lightweight)
For projects that only need the TUI/print/colour utilities (~27KB vs ~180KB):
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.2/dev-control-lib-0.5.2.tar.gz | tar xz
# Then in your scripts:
source "./dev-control-lib-0.5.2/colors.sh"
source "./dev-control-lib-0.5.2/print.sh"
print_header "My Script"Homebrew (coming soon)
brew tap xaoscience/tap
brew install dev-controlChecksums
| File | SHA256 |
|---|---|
| dev-control-0.5.2.tar.gz | 3961fae4c543bc5098af40ece0bfb3ed8a4e165e386a45e1003cb295d98f16c0 |
| dev-control-lib-0.5.2.tar.gz | c0d061c3de1f6262c5e0910677efdfecf1be93909ffb902be5e12d7a14edc506 |
Full Changelog: v0.5.1...v0.5.2
Release v0.5.1
What's Changed
Commits since v0.4.0
- fix(gpg): provide passphrase when exporting private key (6f7604d)
- debug(gpg): add verbose error output for key export failures (00705b7)
- chore: change GPG key expiration to 1 day for testing (987b40a)
- fix(gpg): extract correct key fingerprint from generation output (34de103)
- fix(gpg): validate private key export before uploading secret (2f19a18)
- refactor(workflows): replace third-party actions with native implementations (bda3629)
- fix: correct GPG secret check in release workflow (29aa928)
- fix: detect container environment and recommend running on host (ecbfa81)
- fix: improve GPG key generation error handling and diagnostics (9e01bc1)
- feat: automate GPG bot key generation for GitHub Actions (36eba25)
- feat: add GPG tag signing support to release workflows (85477c3)
- fix: skip uncommitted changes check in cleanup-only mode (c64b71c)
- feat: include anglicise branches in cleanup operations (2340cad)
- fix: handle no changes gracefully in anglicise workflow (0d7756e)
- security: require automerge label AND trusted author (e7d1a32)
- chore(automerge): missing sheep (8bbae3e)
- Merge pull request #23 from XAOSTECH/anglicise/20260208-211857 (594d353)
- chore: convert American spellings to British English (e9e0b63)
- feat(nest): add . flag to include root directory in container scan (4e61ef5)
- fix(gpg): restore .gnupg pre-creation in base image footer (ead8621)
- fix(gpg): aggressive .gnupg recreation in postCreateCommand (95373e8)
- chore(release): angl. + reorder lib copy (5c272cd)
- docs: release v0.5.0 changelog (fc46587)
- fix(locale): use full LOCALE in sed pattern, not %.* (91c292e)
- fix(gpg): ensure .gnupg is writable in postCreateCommand (a8f280c)
- fix(container): dynamic locale/TZ, GPG socket dir, npx PATH for MCP (1e74c4e)
- fix(container): escape ampersands in git config sed substitution (e3e2a20)
- feat(web-dev): install Wrangler globally for Cloudflare Workers development (075e867)
- feat(containerise): complete modularization of Dockerfile generation (c35b55b)
- feat(dc-fix): auto-push after signing (atomic commit + push) (b4cdc83)
- Merge pull request #22 from XAOSTECH/refactor/modularise-containerise (1dbcaee)
- docs: complete example.container.yaml with missing config fields (ffbc01a)
- feat: add _example and _minimal config variant generation (de880b3)
- refactor: rewrite containerise.sh to source extracted modules (edbebb0)
- feat: add NVM/Node.js to common.Dockerfile for MCP server support (3f13951)
- refactor: extract reusable container functions to lib/container.sh (7fe9e67)
- refactor: extract Dockerfile templates to config/containers/ (355666a)
- refactor: extract category metadata to config/containers/categories.yaml (bb52a82)
- chore: anglicise colors.sh -> colours.sh (75c12e2)
- fix(containerise): add streaming GPU support and fix shell syntax errors (57057bb)
- chore: apply small fixes to README (f910a6e)
- refactor(containerise): extract git configuration into reusable functions (24369cc)
- refactor(containerise): move dev-control to system-wide /opt and consolidate setup (541d97c)
- fix(containerise): refactor conda env setup and improve permissions (ada3e4f)
- refactor(containerise): replace pip with Miniforge conda for data-science (6dfa6c0)
- feat(containerise): expand data-science, add category extensions and nest mode (0d555a7)
- fix(containerise): improve remote user detection and vscode-server permissions (f9a2158)
- security(workflows): add explicit permissions declarations to all workflows (da8df03)
- Merge pull request #21 from XAOSTECH/anglicise/20260204-212606 (afd279f)
- chore: convert American spellings to British English (1aa2c12)
Installation
Full Toolkit (tarball)
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.1/dev-control-0.5.1.tar.gz | tar xz
cd dev-control-0.5.1
./install.shLibrary Only (lightweight)
For projects that only need the TUI/print/color utilities (~27KB vs ~180KB):
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.1/dev-control-lib-0.5.1.tar.gz | tar xz
# Then in your scripts:
source "./dev-control-lib-0.5.1/colors.sh"
source "./dev-control-lib-0.5.1/print.sh"
print_header "My Script"Homebrew (coming soon)
brew tap xaoscience/tap
brew install dev-controlChecksums
| File | SHA256 |
|---|---|
| dev-control-0.5.1.tar.gz | 50614c291bb186804631746fad81d6b03fa929c5ce98b22de46f2edd5f2ed7c4 |
| dev-control-lib-0.5.1.tar.gz | fc29c292775994d67df2118cbcbef99a4885d0a1c84506020a7d1768d8d7717e |
Full Changelog: v0.4.0...v0.5.1
Release v0.5.0
What's Changed
Commits since v0.4.0
- chore(release): angl. + reorder lib copy (5c272cd)
- docs: release v0.5.0 changelog (fc46587)
- fix(locale): use full LOCALE in sed pattern, not %.* (91c292e)
- fix(gpg): ensure .gnupg is writable in postCreateCommand (a8f280c)
- fix(container): dynamic locale/TZ, GPG socket dir, npx PATH for MCP (1e74c4e)
- fix(container): escape ampersands in git config sed substitution (e3e2a20)
- feat(web-dev): install Wrangler globally for Cloudflare Workers development (075e867)
- feat(containerise): complete modularization of Dockerfile generation (c35b55b)
- feat(dc-fix): auto-push after signing (atomic commit + push) (b4cdc83)
- Merge pull request #22 from XAOSTECH/refactor/modularise-containerise (1dbcaee)
- docs: complete example.container.yaml with missing config fields (ffbc01a)
- feat: add _example and _minimal config variant generation (de880b3)
- refactor: rewrite containerise.sh to source extracted modules (edbebb0)
- feat: add NVM/Node.js to common.Dockerfile for MCP server support (3f13951)
- refactor: extract reusable container functions to lib/container.sh (7fe9e67)
- refactor: extract Dockerfile templates to config/containers/ (355666a)
- refactor: extract category metadata to config/containers/categories.yaml (bb52a82)
- chore: anglicise colors.sh -> colours.sh (75c12e2)
- fix(containerise): add streaming GPU support and fix shell syntax errors (57057bb)
- chore: apply small fixes to README (f910a6e)
- refactor(containerise): extract git configuration into reusable functions (24369cc)
- refactor(containerise): move dev-control to system-wide /opt and consolidate setup (541d97c)
- fix(containerise): refactor conda env setup and improve permissions (ada3e4f)
- refactor(containerise): replace pip with Miniforge conda for data-science (6dfa6c0)
- feat(containerise): expand data-science, add category extensions and nest mode (0d555a7)
- fix(containerise): improve remote user detection and vscode-server permissions (f9a2158)
- security(workflows): add explicit permissions declarations to all workflows (da8df03)
- Merge pull request #21 from XAOSTECH/anglicise/20260204-212606 (afd279f)
- chore: convert American spellings to British English (1aa2c12)
Installation
Full Toolkit (tarball)
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.0/dev-control-0.5.0.tar.gz | tar xz
cd dev-control-0.5.0
./install.shLibrary Only (lightweight)
For projects that only need the TUI/print/color utilities (~27KB vs ~180KB):
curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.0/dev-control-lib-0.5.0.tar.gz | tar xz
# Then in your scripts:
source "./dev-control-lib-0.5.0/colors.sh"
source "./dev-control-lib-0.5.0/print.sh"
print_header "My Script"Homebrew (coming soon)
brew tap xaoscience/tap
brew install dev-controlChecksums
| File | SHA256 |
|---|---|
| dev-control-0.5.0.tar.gz | b66b5d1ac765dbc3a5b9f99abb092fbb769359ca84feab0f9ce80dca9faa0afb |
| dev-control-lib-0.5.0.tar.gz | 59baf82b0f6e60a59e4de512701eff797fdd6a6f9fc3401d114ea2ebabc320d8 |
Full Changelog: v0.4.0...v0.5.0
Release v0.4.0
[0.4.0] - 2026-02-04
Added
- Multi-category base image support with specialised development environments
- Categories: game-dev, art, data-science, streaming, web-dev, dev-tools
- Feature descriptions and GitHub source references for each category
- Dual-mode operation:
--base --CATEGORY: Build pre-configured category base images--img --CATEGORY: Generate devcontainers from category base images
- GPU acceleration & streaming features:
- CUDA Toolkit 13.1 support with NVIDIA hardware integration
- FFmpeg compilation from source with NVENC/NVDEC hardware encoding
- NGINX-RTMP streaming server integration with SRT protocol support
- ONNX Runtime GPU acceleration for ML inference
- YOLOv8 export and inference capabilities
- Enhanced configuration:
- New options:
use_base_category,base_category,mount_wrangler - Streaming options:
install_cuda,install_ffmpeg,install_nginx_rtmp,
install_streaming_utils,enable_nvidia_devices - Configuration via new YAML keys in container configuration files
- New options:
- Improved help & documentation:
- Category descriptions with tools and versions
- Mode-specific usage examples
- GitHub source paths for category base images
Changed
containerise.shhelp text completely restructured for multi-category architecture- Configuration loading refactored to support base category selection
- Command-line parsing enhanced with MODE and CATEGORY_FLAG support
- File permission:
containerise.shnow executable (+x)
Technical Details
- Code changes: +1026 lines (1080 insertions, 54 deletions)
- New functions:
generate_category_dockerfile(): Build category base imagesbuild_base_image(): Execute category base image buildsgenerate_image_devcontainer(): Generate devcontainers from base images
- New data structures:
BASE_IMAGE_CATEGORIES[]: Category-to-image mappingsCATEGORY_FEATURES[]: Feature descriptions per categoryCATEGORY_GITHUB_PATHS[]: Source code references
Backward Compatibility
- ✓ Legacy interactive mode fully preserved
- ✓ Existing .devcontainer configurations unaffected
- ✓
--defaultsand--config FILEoptions functional - ✓ Non-category configurations work as before
Use Cases Enabled
- Game Development: Godot 4.x + Vulkan SDK + SDL2 + GLFW 3.4 + CUDA
- 3D/2D Art: Krita, GIMP, Inkscape, Blender, ImageMagick
- Data Science: CUDA + FFmpeg + NVIDIA acceleration
- Live Streaming: FFmpeg (NVENC/NVDEC) + NGINX-RTMP + ONNX Runtime
- Web Development: Node.js 25 (nvm) + npm + Wrangler
- General Development: GCC + build-essential + standard compilers
Installation
Full Toolkit (tarball)
curl -fsSL https://github.com/xaoscience/dev-control/releases/download/v0.4.0/dev-control-0.4.0.tar.gz | tar xz
cd dev-control-0.4.0
./install.shLibrary Only (lightweight)
For projects that only need the TUI/print/color utilities (~27KB vs ~180KB):
curl -fsSL https://github.com/xaoscience/dev-control/releases/download/v0.4.0/dev-control-lib-0.4.0.tar.gz | tar xz
# Then in your scripts:
source "./dev-control-lib-0.4.0/colors.sh"
source "./dev-control-lib-0.4.0/print.sh"
print_header "My Script"Homebrew (coming soon)
brew tap xaoscience/tap
brew install dev-controlChecksums
| File | SHA256 |
|---|---|
| dev-control-0.4.0.tar.gz | 91b649d8b7c4a40a7359d23679cdcbb9c49ff3d9cf78bea5db0acafddc47448b |
| dev-control-lib-0.4.0.tar.gz | 03dbce45d74d57aa80e1437cbbc1dddc8f9ed42bb993a707ec9e314f871ebc4f |
Full Changelog: v0.3.0-1-g5416fa7a1c6cebfb3b9403089d6dc45d19b7a9bb...v0.4.0
Full Changelog: v0.3.0...v0.4.0
Release v0.3.0
What's Changed
Commits since v0.2.2-3-gd8293e1446fa0059d1376fb1f5ba122d5c9842fc
- chore: update CHANGELOG for v0.3.0 (bfadb84)
Installation
Full Toolkit (tarball)
curl -fsSL https://github.com/xaoscience/dev-control/releases/download/v0.3.0/dev-control-0.3.0.tar.gz | tar xz
cd dev-control-0.3.0
./install.shLibrary Only (lightweight)
For projects that only need the TUI/print/color utilities (~27KB vs ~180KB):
curl -fsSL https://github.com/xaoscience/dev-control/releases/download/v0.3.0/dev-control-lib-0.3.0.tar.gz | tar xz
# Then in your scripts:
source "./dev-control-lib-0.3.0/colors.sh"
source "./dev-control-lib-0.3.0/print.sh"
print_header "My Script"Homebrew (coming soon)
brew tap xaoscience/tap
brew install dev-controlChecksums
| File | SHA256 |
|---|---|
| dev-control-0.3.0.tar.gz | be331389a5d1568a4819ddea76df76f2815349f9ce09fb164f397603161feb27 |
| dev-control-lib-0.3.0.tar.gz | f23c6988be8daadf37fce1fd642b100cc174e8549c601b1a46a4a6b36906918f |
Full Changelog: v0.2.2-3-gd8293e1446fa0059d1376fb1f5ba122d5c9842fc...v0.3.0
Release v0.2.2
What's Changed
Commits since v0.2.1
- refactor(release): separate template from dev-control-specific workflow (c79e3cb)
- Merge pull request #20 from xaoscience/anglicise/20260124-212407 (18b3b77)
- chore: convert American spellings to British English (f2cf574)
- fix(anglicise): expand exclusions for CLI flags and code patterns (7ffc090)
Installation
Full Toolkit (tarball)
curl -fsSL https://github.com/xaoscience/dev-control/releases/download/v0.2.2/dev-control-0.2.2.tar.gz | tar xz
cd dev-control-0.2.2
./install.shLibrary Only (lightweight)
For projects that only need the TUI/print/color utilities (~27KB vs ~180KB):
curl -fsSL https://github.com/xaoscience/dev-control/releases/download/v0.2.2/dev-control-lib-0.2.2.tar.gz | tar xz
# Then in your scripts:
source "./dev-control-lib-0.2.2/colors.sh"
source "./dev-control-lib-0.2.2/print.sh"
print_header "My Script"Homebrew (coming soon)
brew tap xaoscience/tap
brew install dev-controlChecksums
| File | SHA256 |
|---|---|
| dev-control-0.2.2.tar.gz | d1418015dfa5d17d61a77c7f123f36900a4a485dbf53329b262e808e4cfb157c |
| dev-control-lib-0.2.2.tar.gz | 8f150a051bff6bd26b9128b7ce84c2f0d6eefec00e2c16acba074b037447f227 |
Full Changelog: v0.2.1...v0.2.2