Skip to content

feat: add YAML-based devnet management with enhanced CLI commands#21

Merged
qj0r9j0vc2 merged 28 commits into
mainfrom
feat/enhanced-cli-yaml-devnet
Jan 26, 2026
Merged

feat: add YAML-based devnet management with enhanced CLI commands#21
qj0r9j0vc2 merged 28 commits into
mainfrom
feat/enhanced-cli-yaml-devnet

Conversation

@qj0r9j0vc2

@qj0r9j0vc2 qj0r9j0vc2 commented Jan 26, 2026

Copy link
Copy Markdown
Member

Summary

Adds YAML-based declarative devnet management with enhanced CLI commands for improved developer experience.

Features

YAML-Based Devnet Definitions

  • Kubernetes-style resource format (apiVersion, kind, metadata, spec)
  • Multi-document YAML support for managing multiple devnets
  • Validation and proto conversion

New Commands

Command Description
apply -f <file> Apply devnet configuration from YAML
diff -f <file> Compare YAML definition against current state
exec <node> -- <cmd> Execute commands inside node containers
port-forward <node> <ports> Forward local ports to container ports
ports [node] List exposed ports for nodes
events Stream Docker container events
logs Enhanced with --level, --stats, --json flags
daemon start/stop/status Manage the devnetd daemon

Reconciliation Engine

  • State comparison between desired (YAML) and current state
  • Detects CREATE, DELETE, SCALE, UPGRADE, UPDATE actions
  • Dry-run support for previewing changes

Log Infrastructure

  • Parser for Cosmos SDK log formats (JSON + plain text)
  • Ring buffer for in-memory storage
  • Persistent bbolt-based log store
  • Level filtering and statistics

Usage

See docs/yaml-devnet-guide.md for detailed usage and examples.

Test Plan

  • Unit tests pass for all new packages
  • Manual test apply --dry-run with sample YAML
  • Manual test diff command
  • Manual test logs with level filtering
  • Manual test exec, port-forward, events commands
  • Manual test daemon commands

@qj0r9j0vc2 qj0r9j0vc2 self-assigned this Jan 26, 2026
- Fix errcheck: add error handling for Delete() calls in store.go
- Fix appendCombine: combine sequential appends in events.go
- Fix rangeValCopy: use indexing/pointers in apply.go, diff.go, reconciler/diff.go
- Fix gofmt: format events.go, buffer.go, store.go
@qj0r9j0vc2 qj0r9j0vc2 force-pushed the feat/enhanced-cli-yaml-devnet branch from aefbc55 to 4b01a8c Compare January 26, 2026 06:44
@qj0r9j0vc2 qj0r9j0vc2 merged commit 5c5e56c into main Jan 26, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant