github cloudposse/atmos v1.201.0-rc.0

pre-release8 hours ago
Deferred YAML Function Evaluation in Merge @aknysh (#1821) ## what
  • Implemented deferred merge infrastructure to solve type conflicts when YAML functions are present in hierarchical stack configurations
  • Added comprehensive test coverage (76 tests, 89.9% code coverage) for deferred merge functionality
  • Created blog post documenting the new deferred merge feature
  • Cleaned up leftover test fixtures from abandoned implementations

why

  • YAML functions (!template, !terraform.output, !store.get, etc.) were being merged before evaluation, creating type mismatches that broke merge operations
  • When base configurations had string values and overrides had template functions, the merge would fail due to type conflicts
  • This affected real-world scenarios: multi-environment deployments, team-specific configurations, gradual migrations, and mixed configuration sources
  • The deferred merge approach (defer → merge → apply) eliminates type conflicts while preserving all YAML function capabilities

references

Summary by CodeRabbit

  • New Features

    • Deferred YAML function evaluation during merges to avoid type conflicts.
    • Enhanced !template decoding: JSON strings auto-decode into native YAML structures.
    • Component-aware YAML function processing and configurable list merge strategies (replace, append, merge).
  • Updates

    • Large dependency upgrades across SDKs, Kubernetes, container tooling, and utilities.
    • Example Dockerfile Atmos version bumped.
  • Tests

    • Extensive new unit, integration, and benchmark tests and fixtures covering YAML functions and deferred-merge scenarios.
  • Documentation

    • New design doc and blog post explaining deferred merge workflow and usage.

✏️ Tip: You can customize this high-level summary in your review settings.

feat(website): Sort changelog by release version @osterman (#1819) ## what
  • Group blog posts by release version instead of date
  • Sort with "Unreleased" posts first, then versions in descending semver order
  • Display release version as clickable section headers linking to GitHub releases
  • Simplified filter UI to show only tag filtering (removed year-based filtering)

why

Blog posts were out of order by version due to mismatched post dates and release dates. Sorting by semver ensures users see features grouped by the version they can upgrade to.

references

Fixes issues where changelog timeline order didn't match release chronology.

Summary by CodeRabbit

  • New Features

    • Release badges on blog posts and in the TOC (including "Unreleased"); changelog and sidebar now grouped by release with GitHub links; multi-select year/tag filters for the timeline; sidebar collapse state shared site-wide.
  • Documentation

    • Blog front-matter standardized and many posts populated with a release field; release metadata auto-populated for accurate grouping.
  • Style

    • Updated badge, timeline, TOC, sidebar and blog layout styles for spacing, responsiveness and dark-mode.
  • Chores

    • Simplified tag taxonomy for clearer user-facing categories.

✏️ Tip: You can customize this high-level summary in your review settings.

Make Cloud Posse watermark clickable @osterman (#1820) ## What - Convert the Cloud Posse watermark from a non-interactive CSS background image to a clickable anchor element - Watermark now links to cloudposse.com and opens in a new tab - Renamed component from CloudPosseLogo to Watermark for clarity

Why

  • Improve user experience by making the watermark interactive and clickable
  • Better maintainability with a React component instead of CSS background properties
  • Consistent with modern web practices for branding elements

How

  • Created new Watermark component that renders an anchor tag with two theme-aware images
  • Implemented theme switching via CSS using Docusaurus's [data-theme] selector
  • Added Root theme component to render watermark on all pages globally
  • Removed background-image styling from body element

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added a Cloud Posse watermark/logo positioned in the bottom-right corner with light/dark theme support, hover effects, and click-through functionality.
  • Style

    • Watermark hidden on mobile devices for improved responsiveness.
    • Removed background imagery from theme styling.

✏️ Tip: You can customize this high-level summary in your review settings.

Redesign changelog page with vertical timeline @osterman (#1818) ## Summary

Completely redesigned the changelog/blog list page to replace the narrow sidebar layout with a full-width vertical timeline view. The new design makes better use of screen real estate and provides an intuitive way to browse release notes.

What Changed

  • Vertical timeline layout with year/month grouping and alternate left/right entry positioning
  • Filter controls for filtering by year and tag
  • Collapsible sidebar on individual blog posts (collapsed by default to maximize content width)
  • Full abstracts on timeline cards (shows content before <!--truncate--> instead of "...")
  • Smooth hover effects with color transitions and connector line animations
  • Animated gradient title on the changelog index page

Implementation Details

  • Created ChangelogTimeline component with month/year grouping logic
  • Custom theme swizzles for BlogListPage, BlogLayout, and BlogSidebar/Desktop
  • CSS modules for scoped styling with responsive design
  • Filter state management using React hooks

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Interactive changelog timeline with year and tag filters and reset action
    • Timeline grouping by year/month with linked entries and optional excerpts
    • Tag badges with distinct color styling and accessible controls
    • Full‑width changelog page and custom blog layout for improved visual hierarchy
    • Collapsible blog sidebar (desktop) and responsive behavior for mobile/tablet

✏️ Tip: You can customize this high-level summary in your review settings.

docs: Clarify version management intro @osterman (#1817) ## what
  • Explain version management upfront with concrete examples instead of abstract concepts
  • Challenge the "obvious" approach of strict pinning by showing its hidden costs (divergence, weak feedback loops, operational overhead)
  • Frame these as design patterns—proven approaches that optimize for different goals
  • Remove dedicated "Industry Context" section and weave LaunchDarkly and Thoughtworks quotes naturally into relevant subsections

why

The intro didn't make clear that version management is a complex problem with real trade-offs. Strict pinning seems like the obvious answer but optimizes for the wrong things. By explaining the problem upfront and showing why the obvious answer doesn't work, readers understand why these design patterns matter. Weaving quotes into context (rather than a separate section) follows the excellent approach used in the design documentation itself.

references

Follows the pattern used in /website/docs/design-patterns/version-management/index.mdx which does an excellent job explaining the problem before diving into solutions.

Summary by CodeRabbit

Documentation

  • Documentation
    • Updated comprehensive version management guide with concrete, multi-environment examples and refined design patterns explanations.
    • Reorganized content to emphasize convergence vs. control strategies with organizational context.
    • Removed outdated industry context sections and testimonials.
    • Reframed key takeaways to better align with software delivery practices and deployment strategies.

✏️ Tip: You can customize this high-level summary in your review settings.

fix: Move PR size labeler to dedicated workflow @osterman (#1816) ## what
  • Created new .github/workflows/pr-size-labeler.yml workflow using pull_request_target event
  • Moved pr-size-labeler job from codeql.yml to dedicated workflow
  • Workflow now has elevated permissions to label PRs from forks

why

The PR size labeler was failing with 403 Resource not accessible by integration for PRs from forks because pull_request event runs with read-only permissions for non-member contributors. Using pull_request_target runs the workflow in the base repository context with write permissions, while remaining safe because we only use the GitHub API to read file metadata.

references

Fixes #1814

Summary by CodeRabbit

  • Chores
    • Moved PR size labeling out of the security workflow into a dedicated PR Size Labeler workflow to improve maintainability and separation of concerns.
    • Restored equivalent PR size labeling behavior in the new workflow while removing the embedded job from the original workflow file.

✏️ Tip: You can customize this high-level summary in your review settings.

fix: Pin golangci-lint to commit with -c flag fix for Git v2.52+ @osterman (#1815) ## what
  • Pin golangci-lint to commit 101ccaca which fixes the -c advice.detachedHead=false bug
  • Remove git wrapper workaround (~80 lines of hacky code)
  • Clean, simple build step for custom golangci-lint with lintroller plugin
  • Pin AWS provider to v5.x for LocalStack compatibility

why

golangci-lint fix

The golangci-lint custom command was failing with exit status 128 on CI runners using Git v2.52+.

Root cause: golangci-lint passes "-c advice.detachedHead=false" as a single argument, but Git v2.52+ became stricter and rejects this (expects two separate arguments: "-c" and "advice.detachedHead=false").

Fix: PR #6206 was merged Nov 19, 2025 but not yet released. We pin to the fix commit until v2.6.3+ is released.

LocalStack fix

The LocalStack CI job was failing with MalformedXML error when creating S3 buckets.

Root cause: AWS Terraform provider v6.x has breaking changes in S3 bucket creation that LocalStack 1.4.0 does not support. The providers.tf had no version constraints, so Terraform installed v6.23.0.

Fix: Pin AWS provider to ~> 5.0 in examples/demo-localstack/components/terraform/bucket/providers.tf.

references

Don't miss a new atmos release

NewReleases is sending notifications on new releases.