Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 12 Apr 00:02
· 37 commits to main since this release
a98c750

Install

macOS / Linux:

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

Features

  • scdev link command - create named link networks for direct container-to-container communication between separate projects

    • scdev link create <name> / scdev link delete <name> - manage named link networks
    • scdev link join <name> <member>... / scdev link leave <name> <member>... - add/remove projects or individual services
    • scdev link ls - list all links and their members
    • scdev link status <name> - show members and connection state
    • Members can be whole projects (sec-scan) or specific services (redis-debug.app)
    • Each link creates a dedicated Docker network (scdev_link_<name>) for isolation between link groups
    • Containers resolve each other by container name via Docker's embedded DNS (e.g., app.project-b.scdev)
    • Links persist in global state and auto-reconnect on scdev start
    • Validation: link name characters, project/service existence, duplicate prevention
  • scdev info / scdev status / scdev list show link information - links are displayed alongside services and shared services

  • scdev rename command - rename a project with full Docker resource migration

    • Stops containers, migrates volume data (named + Mutagen sync), removes old network
    • Updates state file and link memberships atomically
    • Rewrites name: in .scdev/config.yaml (preserves formatting and comments)
    • Restarts project with new name
    • Confirmation prompt (skip with --force)
    • Validates new name is DNS-safe and not already taken

Bug Fixes

  • Fix variables in typed config fields - ${VAR} placeholders in int/bool fields (e.g., port: ${PORT}, router: ${ENABLE}) caused "cannot unmarshal !!str into int" errors. The first config parse pass now uses a minimal struct, deferring typed field parsing until after variable substitution.

Improvements

  • Added ContainerNameFor() standalone helper for building container names without a loaded Project
  • Added CopyVolume() to Runtime interface for volume data migration