Skip to content

Releases: XAOSTECH/dev-control

Release v0.5.8

30 Mar 01:54
v0.5.8
4db9f67

Choose a tag to compare

What's Changed

Commits since v0.5.7

  • chore: update CHANGELOG for v0.5.8 (re-release) (4db9f67)
  • feat(dc-init): add --push flag with reusable commit/push function (890484d)
  • feat(release): add consolidate option to absorb newer releases into an older version (e3a0984)
  • feat(containerise): very strict cache buster; BUILD_DATE now includes %m (2e5da6b)
  • fix(security): resolve CodeQL envvar-injection and code-injection alerts (3a8cce9)
  • feat(release): add optional Authenticode code signing via SignPath.io (9b36605)
  • feat(dc-init): amend existing dc-init commits instead of stacking duplicates (dbc457d)
  • fix(release): sanitize early-exit tarball_count GITHUB_ENV write (111ed91)
  • fix(release): sanitize GITHUB_ENV writes against newline injection (79e4f0c)
  • fix: remove erroneous backslash escaping in MCP config heredoc (e36c378)
  • fix(ci): resolve CodeQL envvar-injection and missing-permissions alerts (461b4a4)
  • fix(release): handle Windows CRLF and binary-mode prefix in SHA256SUMS.txt parsing (a241a0a)
  • fix(release): exclude SHA256SUMS.txt from release assets (35721ff)
  • feat(release): auto-detect and trigger build-*.yml workflows (1cbbaa4)
  • feat(dc-init): enforce default branch name 'main' (783b7d6)
  • feat(batch-init): harden batch mode with filtering and smart defaults (d9c24d1)
  • feat(cli): add --exclude flag to batch/nest modes (5cbffee)
  • chore(containerise): add %h to ARG BUILD_DATE (a8b07c9)
  • ci: force Node.js 24 for all GitHub Actions workflows (e28642e)
  • fix(anglicise): unify drifted is_excluded_text_line functions (cf8f55a)
  • feat(update+release): normalise v0.0.x → v0.1.0 with opt-out checkbox (5f4705a)
  • chore: update CHANGELOG for v0.5.8 (02da8cb)
  • fix(anglicise): exclude license/licence code patterns + template-loading license loop (8516ab6)
  • fix(anglicise): exclude license/licence, e.a. + fix in CHANGELOG (8540410)
  • perf: remove redundant identity setup in anglicise workflow (373126a)
  • Merge pull request #98 from XAOSTECH:anglicise/20260316-032939 (79696b4)
  • chore: convert American spellings to British English (afcf43d)
  • fix: anglicise checkout with App token for workflow file pushes (7e258f0)
  • fix: use cumulative commit count for new-release threshold (f04ff41)

Installation

Quick Install (tarball)

curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.8/dev-control-0.5.8.tar.gz | tar xz

Checksums

File SHA256
dev-control-0.5.8.tar.gz 77443981e66fa30b7830a7500e229a568ecb6f5cfef0fb3ac29430f95fef993b

Full Changelog: v0.5.7...v0.5.8


Release workflow powered by dev-control

Release v0.5.7

15 Mar 06:42
v0.5.7
2d886d9

Choose a tag to compare

What's Changed

Commits since v0.5.6

  • chore: update CHANGELOG for v0.5.7 (re-release) (2d886d9)
  • chore: update git tree visualisation (1eff289)
  • feat: tree-viz overhaul - topo sort, variable spacing, wind slider, clickable nodes, SVG fix, mini SVG - Topological sort (Kahn's algorithm) replaces timestamp sort; merges never appear before their parent commits - Variable row heights: 40px trunk, 80px branches for tighter layout - Dynamic canvas/SVG dimensions derived from actual position data - Wind intensity doubled + range slider (0-500%) for user control - Ctrl+click / middle-click commit nodes opens commit page (repo_url extracted from git remote, SSH auto-converted to HTTPS) - SVG: XML-escaped title attributes (fixes unescaped quote error), branch connection lines (Bézier curves), correct gradient per type - Mini SVG renderer with CSS sway animation for README inline embed - README embed updated: shows mini SVG with links to full SVG/HTML/data - Max-commits default changed to 0 (unlimited); fixed local-outside-fn and duplicate --date flag issues (c1787d1)
  • move tree-viz to .github/static/ for GitHub Pages hosting (d0471b8)
  • feature(static.yml): tree viz page (e78a186)
  • chore: update git tree visualisation (2b7a03a)
  • tree-viz.yml: fix git add pathspec bug preventing commit (c74bf44)
  • update.yml: add new_release_threshold to bump version instead of endless re-releases (fce53b7)
  • fix(release): include (re-release) in same-day CHANGELOG heading (265f6f0)
  • chore: update CHANGELOG for v0.5.7 (re-release) (b399f4a)
  • feat(dc-init): add --skip flag to exclude directories from batch update (bb1e90b)
  • fix(dc-init): skip dev-control repo in batch update (9c174b6)
  • fix(dc-init): fix staging, license priority, and pull-fail handling in batch update (15a79ea)
  • feat(dc-init): add MEMBERS owner guard and interrupted-run recovery (ec6d242)
  • feat(dc-init): add --update mode for batch template refresh (05607d6)
  • feat(dc-init): batch mode stash/pull/commit/push lifecycle (b2621c7)
  • feat(update): integrate tree-viz generation with 30-commit threshold (ca5dbbc)
  • feat(tree-viz): add workflow and template for automated tree generation (229518c)
  • feat(tree-viz): overhaul interactive visualisation with waving leaves and scrollable viewport (e8fb5f0)
  • chore: update CHANGELOG for v0.5.7 (re-release) (434d511)
  • fix(streaming): avoid hard fail on missing usb capture device (6f74eb8)
  • fix(update): ensure/apply automerge label for bot PRs (a2046e3)
  • fix(update): drop hardcoded automated PR label (e871353)
  • fix(update): non-fatal submodule update; fallback branch names (e752158)
  • fix(update): submodule threshold=0 on manual run, fix subshell bug, stale default 60→10 (8cd0b37)
  • chore: update CHANGELOG for v0.5.7 (re-release) (542ff5f)
  • fix(anglicise): limit workflow edits to display text (a70606e)
  • fix(workflows): preserve analyze IDs; keep UK display text (e16c51e)
  • fix(compatibility): github.copilot-chat --> GitHub.copilot-chat (f27fcaf)
  • chore: clean devcontainer extension defaults and minimal profile (6b2ac37)
  • fix: honor category flag in interactive image selection (f86c70c)
  • feat: optimise containerise.sh flow for pre-built images (f3e4413)
  • chore: bump actions to Node.js 24, fix anglicise false positives, apply British English fixes (ccb1b7b)
  • security: remove untrusted checkout merge path (6abacaa)
  • Add origin headers and template folder READMEs (1749f27)
  • chore: update CHANGELOG for v0.5.7 (re-release) (b689d8c)
  • chore(dc-init): update workflows and actions (d767ea4)
  • chore(replace-template): fix syntax (9fdea7c)
  • fix: correct Perl regex syntax using curly brace delimiters (22e8a9f)
  • fix: improve anglicise workflow exclusion patterns for licence/license conversion (ed2c050)
  • fix: strip extensions and customizations from _minimal variant (390ded5)
  • fix: leave timezone empty in _minimal variant (075c676)
  • fix: replace user timezone with UTC in _example and _minimal config variants (fa2c060)
  • chore: update CHANGELOG for v0.5.7 (re-release) (c51c023)
  • fix(update): extract current version before triggering release (cbe62c5)
  • fix: simplify gh pr create syntax to match anglicise.yml pattern (d655ab2)
  • fix: quote multiline gh pr create body for dependency updates (24d82df)
  • fix: properly quote multiline gh pr create body in update.yml (7999020)
  • fix: resolve YAML syntax errors in workflows (3ce369b)
  • improve: use gcda-style HEAD amendment for serverless (32f99f9)
  • feat: enhance update workflow with comprehensive maintenance (ab24478)
  • feat: add repository update workflow (3e72139)
  • chore: update CHANGELOG for v0.5.7 (re-release) (83246dc)
  • fix(containerise): prune container volumes on --regen to clear stale postCreateCommandMarker (c229a6c)
  • chore(web-dev): adapt comment (21c442b)
  • chore(anglicise): license -> licence + adapt anglicise (6ebbac9)
  • chore(docs): clarify dc-init -> dc-create config flow (343e624)
  • chore(docs): clarify envVars (21557b4)
  • chore(docs): move dc-alias to front + fix typo + format (de7098a)
  • chore(docs): mention re-releases (cc9158d)
  • chore: update CHANGELOG for v0.5.7 (re-release) (da25f8b)
  • refactor: drop common-tools and align nvm usage (34f98cd)
  • fix: use nvm default alias in builds (58b0e35)
  • fix: ensure nvm default path and use LTS for wrangler (183ffa5)
  • fix: split common tools before categories and restore footer usage (b556968)
  • Revert "fix: add nvm to web-dev category for wrangler dependency" (dc7fd72)
  • Revert "chore: update CHANGELOG for v0.5.7 (re-release)" (5a6af52)
  • Revert "chore: update CHANGELOG for v0.5.7 (re-release)" (103926e)
  • Revert "refactor: split common template into base and footer" (d9805cb)
  • fix: add nvm to web-dev category for wrangler dependency (a262514)
  • chore: update CHANGELOG for v0.5.7 (re-release) (a979204)
  • chore: update CHANGELOG for v0.5.7 (re-release) (e2914e9)
  • refactor: split common template into base and footer (083ce42)
  • chore: update CHANGELOG for v0.5.7 (0f56724)
  • fix: align containerise.sh to use system-wide nvm at /opt/nvm (c65724c)
  • fix: dynamic Node/nvm version detection to prevent hardcoded path mismatches (59574b9)
  • fix(security): pin unpinned actions and sanitize user input in workflows (928a37b)
  • chore(docs): update README (b067f72)
  • fix: align bash-lint template with repo version (quote environment variables) (a3f4c0f)
  • feat: add SHA256 checksums for GitHub-generated source archives (586fc23)
  • fix: add git clone installation for projects without packaging.sh + update org to XAOSTECH (459ebdb)
  • fix: ALWAYS show installation instructions in dev-control workflow (1e172d6)
  • fix: properly handle projects without packaging.sh in release workflow (19f2749)
  • fix: make tarball build conditional on skip_tarball input and packaging.sh existence (1544bd5)
  • fix: replace CodeQL template with working Advanced Security workflow (b06612c)
  • feat: add CodeQL workflow template with auto-detection (4ebd49b)
  • feat: install docs templates to docs/ subdirectory (d817dc9)
  • fix: convert multi-line --body args to single-line in workflow templates (d31b64f)
  • fix: additional YAML syntax errors in workflow templates (a31cb6e)
  • fix: YAML syntax errors in workflow templates (785324f)
  • feat: add global repoVars.env config for bot credentials (313f152)
  • create-tree (ddf7aa1)

Installation

Quick Install (tarball)

curl -fsSL https://github.com/XAOSTECH/dev-control/releases/download/v0.5.7/dev-control-0.5.7.tar.gz | tar xz

Checksums

File SHA256
dev-control-0.5.7.tar.gz 8e6db18e5555615c97131e349c285c0ce641e5bf3803180c47c1e29b8f95f93c

Full Changelog: v0.5.6...v0.5.7


Release workflow powered by dev-control

Release v0.5.6

22 Feb 05:26
v0.5.6
16ce928

Choose a tag to compare

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.sh

Library 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-control

Checksums

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

21 Feb 00:15
v0.5.5
260f985

Choose a tag to compare

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.sh

Library 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-control

Checksums

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

18 Feb 22:21
v0.5.4
f82a21d

Choose a tag to compare

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.sh

Library 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-control

Checksums

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

14 Feb 03:14
v0.5.3
9fe7add

Choose a tag to compare

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.sh

Library 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-control

Checksums

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

11 Feb 23:03
v0.5.2
4116b7e

Choose a tag to compare

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.sh

Library 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-control

Checksums

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

08 Feb 23:46
6f7604d

Choose a tag to compare

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.sh

Library 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-control

Checksums

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

08 Feb 17:33

Choose a tag to compare

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.sh

Library 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-control

Checksums

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

04 Feb 21:24
931997c

Choose a tag to compare

[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
  • Improved help & documentation:
    • Category descriptions with tools and versions
    • Mode-specific usage examples
    • GitHub source paths for category base images

Changed

  • containerise.sh help 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.sh now executable (+x)

Technical Details

  • Code changes: +1026 lines (1080 insertions, 54 deletions)
  • New functions:
    • generate_category_dockerfile(): Build category base images
    • build_base_image(): Execute category base image builds
    • generate_image_devcontainer(): Generate devcontainers from base images
  • New data structures:
    • BASE_IMAGE_CATEGORIES[]: Category-to-image mappings
    • CATEGORY_FEATURES[]: Feature descriptions per category
    • CATEGORY_GITHUB_PATHS[]: Source code references

Backward Compatibility

  • ✓ Legacy interactive mode fully preserved
  • ✓ Existing .devcontainer configurations unaffected
  • --defaults and --config FILE options 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.sh

Library 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-control

Checksums

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