Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 02 Apr 16:20
· 48 commits to main since this release
dfbdee5

Install

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/ScaleCommerce-DEV/scdev/main/install.sh | sh

Features

  • scdev create command - scaffold new projects from templates (GitHub repos or local directories)
    • Template resolution: bare name (express), full repo (myorg/repo), or local path (./dir)
    • --branch and --tag flags for GitHub templates
    • --auto-start and --auto-setup flags for non-interactive setup
    • DNS-safe project name validation
    • GitHub tarball download with security hardening (symlink validation, size limits, mode masking, path traversal checks)
  • Config variables - variables: section for reusable ${VAR} substitution across the config file (not passed to containers). Variables can reference built-in variables like ${PROJECTNAME}.
  • Per-service routing domain - routing.domain allows individual HTTP/HTTPS services to have custom domains (e.g. api.my-app.scalecommerce.site for a backend service)
  • scdev start -q/--quiet - skip project info display after start (useful in scripts and setup.just)
  • Docker availability check - all Docker-dependent commands now check if Docker is running and show a clear error message instead of confusing Docker errors
  • scdev exec handles -- separator - scdev exec app -- cmd now works correctly

Templates

  • Three official templates published:
    • express - Node.js + Express hello world with --watch mode
    • nuxt4 - Nuxt 4 with interactive scaffolding, HMR, nuxi prepare for module deps
    • symfony - Symfony with CLI dev server, scaffold-in-/tmp pattern
  • Template Authoring Guide at templates/README.md
  • .setup-complete marker pattern for solving container startup vs setup circular dependency

Improvements

  • shared.redis_insights renamed to shared.redis in project config (consistent with shared.router, shared.mail, shared.db)
  • buildContainerConfig is now the single source of truth for container configuration (fixes divergence between start and update paths)
  • connectRouter uses shared helper pattern (consistent with mail/db/redis)
  • Extracted IsDBServiceByName() to eliminate duplicate DB detection logic
  • Reduced redundant GlobalConfig loading in status command
  • Removed dead sync_mode code from Mutagen sync
  • Fixed unsafe append in cleanup command
  • Supply chain security messaging in README

Documentation

  • README: Templates section, multi-service routing, configuration reference tables, supply chain security callout
  • Template Authoring Guide: setup lifecycle, scaffolding patterns (in-place vs /tmp), framework-specific notes
  • CLAUDE.md: templates docs, Docker check, variables, routing.domain
  • scdev skill restructured with progressive disclosure (222-line SKILL.md + references/)