Skip to content

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 10 Aug 06:35
· 20 commits to main since this release

Go-Arch v2.0.0 πŸš€

Go-Arch is no longer just a CLI β€” it's a framework. This release covers the full roadmap: project evolution, a plugin ecosystem, executable generators, lifecycle hooks, and multi-project workspaces. The project was renamed from go-arch-cli β†’ go-arch (GitHub redirects the old URL).

πŸŽ‰ Highlights

  • Framework positioning β€” a CLI, an ecosystem of installable template packs, executable generators, hooks, and workspaces.
  • Project renamed to go-arch β€” installers and go install use the new name.

✨ New Features

πŸ“¦ Plugins (installable template packs)

  • template install|list|remove|update β€” publishable, versioned template packs fetched via the Go module proxy (go-arch template install github.com/you/go-arch-express).
  • Pack contract v1: go-arch.yaml manifest with contract_version, name, version, hooks, layout, binary_assets.
  • new --template <pack> β€” scaffold from an installed pack (wizard bypass).
  • Engine resolution chain: local > global > pack > embedded.
  • Upgrade re-renders pack-sourced files from the recorded pack (PROTECTED when missing).

βš™οΈ Generators (plugins v2)

  • Executable generation logic in packs via YAML recipe DSLs (steps: template, binary, run, prompt, use: builtin/<name>).
  • Pre-flight path sandboxing (zero writes on path escape).
  • generate <name> three-tier dispatch (pack β†’ builtin β†’ component) + --list.
  • MCP: generate_component gains generatorArgs; new list_generators tool.
  • GENERATOR_NAME env for generator hooks.

πŸ”„ Lifecycle Hooks

  • pre-new / post-new / pre-generate / post-generate in .go-arch.yaml (string shorthand or object form).
  • Timeouts (30s default), ignore_failure, stop-on-first semantics.
  • MCP parity; upgrade never fires hooks.

πŸ—‚οΈ Multi-Project Workspaces

  • go-arch.workspace.yaml at the monorepo root mapping services to paths.
  • workspace upgrade (dry-run by default, --yes applies) and workspace check β€” continue-on-error with per-service summary.
  • --service <name> on generate/check/upgrade.
  • Opt-in: single-project behavior is byte-identical (ADR-7 intact).

⬆️ Project Evolution

  • go-arch upgrade β€” propagates template changes via a fingerprint manifest without clobbering user edits (legacy whitelist fallback).
  • generate auto-registers routes via a generated registry in templ+HTMX projects.
  • doctor β€” environment diagnostics.

πŸ”§ Breaking Changes

  • Repository renamed go-arch-cli β†’ go-arch β€” old URLs redirect.
  • None in CLI commands β€” all existing commands work as before.

πŸ“¦ Assets

Linux (tar.gz, .deb, .rpm, .apk, .pkg.tar.zst), macOS (amd64/arm64), Windows (amd64/arm64) + SHA-256 checksums.

πŸ”— Install

curl -fsSL https://raw.githubusercontent.com/SalvucciFacundo/go-arch/main/install.sh | bash
# or
go install github.com/SalvucciFacundo/go-arch@latest