github cloudposse/atmos v1.223.0-rc.4

pre-release4 hours ago
Add topic-specific CLI help @osterman (#2696) ## what
  • Add topic-specific help modes for --help=usage, --help=flags, and --help=all.
  • Keep default help focused on command-specific flags while preserving full global flag output behind --help=all.
  • Add tests, a PRD, and a blog post announcing the help improvement.

why

  • Help pages had become noisy because global flags buried command-specific options.
  • Focused help topics make usage examples, command flags, and full reference output easier to discover.
  • Validated with go test ./cmd -count=1, go test ./internal/tui/templates -count=1, and commit/push hooks.

references

  • n/a

Summary by CodeRabbit

  • New Features
    • Added topic-specific CLI help via --help=<topic>: usage, flags, and all.
    • Default --help is now command-focused and omits inherited/global flags; use --help=all for full reference.
    • Added in-help guidance pointing users to --help=usage and --help=all.
  • Bug Fixes
    • Improved --help=<topic> parsing/validation, including a clear error and valid-topic list for unknown values.
  • Documentation
    • Added PRD, blog post, and roadmap entry for topic-specific CLI help.
  • Tests
    • Expanded unit coverage and updated CLI help golden snapshots.
Add configurable CI log grouping @osterman (#2669) ## what
  • Add provider-agnostic CI log grouping with step, phase, and invocation dimensions.
  • Implement GitHub Actions ::group:: / ::endgroup:: support, grouping mode config, and nested Atmos suppression.
  • Wrap workflow/custom-command steps, terraform/tofu phases, and optional whole-command invocations in collapsible groups.
  • Document the feature in the native CI PRD, user docs, roadmap, and changelog.

why

  • CI logs from Atmos workflows and Terraform runs are hard to scan when all output is flat.
  • A single ci.groups.mode avoids unsupported nested groups while letting users choose step/phase grouping or whole invocation grouping.
  • Invocation labels omit flags and flag values so grouped CI logs stay readable and avoid exposing noisy or sensitive CLI values.

references

Summary by CodeRabbit

  • New Features
    • Added collapsible CI log groups for supported CI providers (including GitHub Actions) with step-, phase-, and invocation-level grouping.
    • Introduced ci.groups.mode (auto, invocation, off) and ATMOS_CI_GROUPS_MODE.
  • Bug Fixes
    • Improved nested/recursive CI grouping to avoid duplicate group markers and refined invocation label formatting (ignoring flags/flag values and respecting --).
    • Added Terraform phase grouping (init vs main subcommands).
  • Tests
    • Expanded coverage for grouping activation, sentinel/no-op behavior, label formatting, and provider escaping; updated related CLI snapshots.
  • Documentation
    • Added docs for ci.groups, published the release blog post, and updated CI PRD/framework materials.
feat: add validation for unsupported YAML tags @osterman (#1515) ## what - Add validation to detect and error on unsupported YAML tags instead of silently ignoring them - Create comprehensive list of all supported YAML tags for validation - Provide clear error messages that include the unsupported tag, file location, and list of supported tags

why

Currently, when Atmos encounters an unsupported YAML tag (like !invalid or typos like !envv instead of !env), it silently strips the tag and keeps the value. This makes it very difficult to track down configuration errors and typos in YAML files.

By explicitly validating tags and providing clear error messages, we:

  • Help users catch typos and invalid tags early
  • Prevent silent configuration failures
  • Improve debugging experience with clear error messages
  • Make the system more reliable and predictable

Example Error Messages

When an unsupported tag is encountered:

unsupported YAML tag '!invalid' found in file '/path/to/stack.yaml'. 
Supported tags are: !exec, !store, !store.get, !template, !terraform.output, 
!terraform.state, !env, !include, !include.raw, !repo-root

When there's a typo in a tag:

unsupported YAML tag '!envv' found in file '/path/to/stack.yaml'. 
Supported tags are: !exec, !store, !store.get, !template, !terraform.output, 
!terraform.state, !env, !include, !include.raw, !repo-root

Test Results

  • Added comprehensive unit tests for unsupported tag detection
  • Tests verify that unsupported tags trigger errors
  • Tests verify that valid tags continue to work correctly
  • Tests verify error message content and clarity

references

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added stricter custom YAML tag validation: unsupported tags now fail fast with an error that lists supported tags.
    • Built-in YAML tags (!!*) are ignored by custom-tag validation to avoid false positives.
    • Updated supported YAML tag set used for validation and messaging.
  • Tests

    • Expanded test coverage for supported/unsupported tags, nested YAML traversal, edge cases, and error-message details.
    • Added additional YAML fixtures to verify error handling.
  • Chores

    • Updated test command wiring and CI/Make targets to use a unified acceptance mode with --cover.
    • Refreshed related docs/blog examples to match the new command surface.

🚀 Enhancements

Migrate devcontainer commands to flag handler @osterman (#2595) ## what
  • Migrates devcontainer subcommands with positional names or passthrough semantics to flags.StandardFlagParser.
  • Centralizes devcontainer name positional arg setup with flags.NewPositionalArgsBuilder.
  • Updates devcontainer exec to prefer exec <name> -- <command> [args...] while preserving the legacy no-separator form.
  • Adds parser coverage for required/optional devcontainer names, flag extraction, and exec -- validation.

why

  • Keeps upgraded devcontainer commands on the command registry and flag handler path consistently.
  • Avoids manual args[0] / args[1:] handling bypassing positional and separated-arg parsing.
  • Ensures native command flags after -- are preserved for devcontainer exec.

references

Summary by CodeRabbit

Release Notes

  • New Features

    • Added retry-focused integration coverage for custom shell steps, including attempt-count assertions.
  • Refactor

    • Standardized flag parsing and auto-generated usage across all devcontainer commands (attach/config/exec/shell/logs/rebuild/remove/start/stop).
    • Centralized step execution to apply configured retries consistently.
  • Tests

    • Expanded devcontainer parser tests with early invalid-input rejection prior to manager invocation.
  • Chores

    • Improved CI reliability by adding a reusable Colima setup action and tuning timeouts.
    • Updated formatting guidance to require gofumpt.

Don't miss a new atmos release

NewReleases is sending notifications on new releases.