Skip to content

Add process and I/O execution foundation - #2459

Closed
Mikhail Shirkov (shirkevich) wants to merge 1 commit into
cloudposse:mainfrom
shirkevich:codex/dag-process-io-foundation
Closed

Mikhail Shirkov (shirkevich) wants to merge 1 commit into
cloudposse:mainfrom
shirkevich:codex/dag-process-io-foundation

Conversation

@shirkevich

Copy link
Copy Markdown
Collaborator

Summary

This is PR 1 for the DAG concurrent execution rollout. It introduces the reusable process and stream-isolation foundation without enabling scheduler behavior or changing Terraform bulk routing.

Changes:

  • Add pkg/process with Runner, TaskSpec, Streams, Result, default os/exec runner, context-aware execution, cancellation reporting, and exit-code preservation.
  • Extend pkg/io with prefixed per-node stream composition for terminal, file, and capture sinks.
  • Refactor internal/exec.ExecuteShellCommand() into a backward-compatible wrapper over pkg/process while preserving CI stdout/stderr capture options.
  • Replace the runTerraformShow() global os.Stdout swap with injected stdout capture.

Scope

No scheduler, CLI routing consolidation, concurrency flags, or Terraform adapter behavior is enabled in this PR.

Validation

rtk env GOCACHE=/private/tmp/atmos-gocache GOMODCACHE=/private/tmp/atmos-gomodcache go test ./pkg/process ./pkg/io ./internal/exec ./cmd/terraform

Next PR

PR 2 should branch from codex/dag-process-io-foundation and add the generic pkg/scheduler core with ready-queue scheduling, bounded workers, deterministic aggregate results, and isolated unit tests only.

@atmos-pro

atmos-pro Bot commented May 20, 2026 •

Copy link
Copy Markdown
Contributor

Tip

Atmos Pro  

No affected stacks workflow was detected for this pull request.
If this is expected, no action is needed.
Learn More.

@github-actions github-actions Bot added the size/m Medium size PR label May 20, 2026
@osterman

Copy link
Copy Markdown
Member

looking forward to it Mikhail Shirkov (@shirkevich) !

@shirkevich

Copy link
Copy Markdown
Collaborator Author

Superseded by same-repo draft PR #2464, which uses cloudposse/atmos as the head repository and keeps this stack branch based on main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/m Medium size PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants