Overview
Thoroughly test all eac commands in the context of developing a new extension (using ext-env-check as the test case) to validate the extension development workflow. This ensures the extension development experience is smooth and all commands work correctly.
Context
Extension developers use eac commands directly to build, test, and validate their extensions. eac now runs independently from clie — commands are invoked as eac <command> without going through a container wrapper.
Test Extension: ext-env-check (located at C:\source\ready-to-release\ext-env-check)
Command prefix: eac (runs directly, not via ext-eac container)
Commands to Test
1. Module Discovery and Information
eac get-modules
Purpose: List all modules in the repository
Test Cases:
# Basic listing
eac get-modules
# JSON output
eac get-modules --format json
# Specific module filter
eac get-modules --moniker ext-env-check
Expected Output:
- Shows ext-env-check module
- Displays module type: container
- Shows versioning scheme: SemVer
- Lists file patterns
Validation:
eac show-modules
Purpose: Display module details in human-readable format
Test Cases:
eac show-modules
eac show-modules ext-env-check
Validation:
eac get-files
Purpose: List all tracked files with module ownership
Test Cases:
eac get-files
eac get-files --module ext-env-check
eac get-files --module ext-env-check --format json
Validation:
eac get-files-by-module
Purpose: Get files grouped by module
Test Cases:
eac get-files-by-module ext-env-check
eac get-files-by-module ext-env-check --format json
Validation:
2. Dependency Management
eac get-dependencies
Test Cases:
eac get-dependencies ext-env-check
eac get-dependencies ext-env-check --reverse
eac get-dependencies ext-env-check --format json
Validation:
eac show-dependencies
Test Cases:
eac show-dependencies ext-env-check
Validation:
eac validate-dependencies
Test Cases:
eac validate-dependencies ext-env-check
eac validate-dependencies
Validation:
3. Build Commands
eac build
Purpose: Build module (container or binary)
Test Cases:
eac build ext-env-check
eac build ext-env-check --debug
eac build ext-env-check --platform linux/amd64
eac build ext-env-check --no-cache
Expected Output:
- Docker build starts
- Multi-stage build completes successfully
- Container image created with correct tags
- Build artifacts in out/build/ext-env-check/
Validation:
eac get-build-times
eac get-build-times ext-env-check
Validation:
eac show-build-summary
eac show-build-summary ext-env-check
Validation:
4. Test Commands
eac test
Test Cases:
eac test ext-env-check
eac test ext-env-check --suite unit
eac test ext-env-check --list-only
eac test ext-env-check --debug
eac test ext-env-check --race
Validation:
eac get-test-results
eac get-test-results ext-env-check
eac get-test-results ext-env-check --suite unit
eac get-test-results ext-env-check --format json
Validation:
eac show-test-summary
eac show-test-summary ext-env-check
Validation:
eac test-debug
eac test-debug ext-env-check
Validation:
5. Lint and Validation Commands
eac lint
Test Cases:
eac lint ext-env-check
eac lint ext-env-check --fix
eac lint ext-env-check --linter golangci-lint
Validation:
eac validate-module-files
eac validate-module-files ext-env-check
Validation:
eac validate-contracts
eac validate-contracts
eac validate-contracts --contract repository
Validation:
6. Specification Commands
eac create-spec
eac create-spec ext-env-check "validate prefix matching for environment variables"
eac create-spec ext-env-check "strict mode validation" --output specs/ext-env-check/env-validation/strict-mode.feature
Validation:
eac validate-specs
eac validate-specs ext-env-check
eac validate-specs ext-env-check --file specs/ext-env-check/env-validation/basic-check.feature
Validation:
eac get-specs
eac get-specs ext-env-check
eac get-specs ext-env-check --format json
Validation:
7. Release Commands
eac release-pending
eac release-pending ext-env-check
Validation:
eac release-this
eac release-this ext-env-check
eac release-this ext-env-check --dry-run
eac release-this ext-env-check --version 0.2.0
Validation:
eac get-changelog / eac show-changelog
eac get-changelog ext-env-check
eac get-changelog ext-env-check --version 0.1.0
eac show-changelog ext-env-check
Validation:
8. Artifact Commands
eac get-artifacts / eac show-artifacts
eac get-artifacts ext-env-check
eac show-artifacts ext-env-check
Validation:
9. Git and Change Tracking Commands
eac show-files-changed
eac show-files-changed
eac show-files-changed --module ext-env-check
Validation:
eac show-files-staged
Validation:
eac get-changed-modules
eac get-changed-modules
eac get-changed-modules --since HEAD~5
Validation:
10. Documentation Commands
eac update-docs
eac update-docs ext-env-check
eac update-docs
Validation:
Docker Build Testing
Since eac runs natively now, Docker is only involved when eac build invokes the Docker daemon directly (not as a container wrapper). Test the Docker build path specifically:
Validation:
# Verify build produces correct image
eac build ext-env-check
docker images | grep ext-env-check
# Test the built image directly
docker run --rm ghcr.io/ready-to-release/ext-env-check:ci --version
docker run --rm ghcr.io/ready-to-release/ext-env-check:ci extension-meta
Testing Strategy
1. Setup
cd C:\source\ready-to-release\ext-env-check
# eac is available directly — no install step required
eac show-modules # smoke test
2. Automated Test Script
Create scripts/test-eac-commands.sh:
#!/bin/bash
set -e
MODULE="ext-env-check"
echo "Testing EAC Commands for $MODULE"
echo "Testing get-modules..."
eac get-modules --moniker $MODULE
echo "Testing build..."
eac build $MODULE
echo "Testing test..."
eac test $MODULE
echo "Testing lint..."
eac lint $MODULE
echo "Testing validate-specs..."
eac validate-specs $MODULE
echo "Testing release-pending..."
eac release-pending $MODULE
echo "All tests passed!"
3. Full Integration Workflow
# Discovery
eac get-modules
eac get-files --module ext-env-check
# Development
eac lint ext-env-check
eac validate-specs ext-env-check
# Build
eac build ext-env-check
# Test
eac test ext-env-check
# Release
eac release-pending ext-env-check
eac release-this ext-env-check --dry-run
Validation:
4. Error Scenario Testing
# Invalid module name
eac build nonexistent-module
# Git errors
eac release-this ext-env-check # with uncommitted changes
# Docker errors
eac build ext-env-check # with Docker daemon stopped
Validation:
Success Criteria
Command Execution:
Extension Development Workflow:
Documentation:
Deliverables
- Test Report (
out/eac-commands-test-report.md): command-by-command results, issues discovered, performance metrics
- Command Reference (
docs/reference/eac-commands.md): usage notes, troubleshooting guide, limitations
- Automated Test Suite (
scripts/test-eac-commands.sh): runnable test script with exit codes for CI
- Issue Tracking: GitHub issues for bugs found, enhancement requests, documentation gaps
Related Issues
Priority
High — Critical for extension development experience
- Validates eac works correctly for extension repositories
- Required for ext-env-check completion
- Foundation for extension documentation
- Identifies issues before external users encounter them
Overview
Thoroughly test all
eaccommands in the context of developing a new extension (using ext-env-check as the test case) to validate the extension development workflow. This ensures the extension development experience is smooth and all commands work correctly.Context
Extension developers use
eaccommands directly to build, test, and validate their extensions.eacnow runs independently fromclie— commands are invoked aseac <command>without going through a container wrapper.Test Extension: ext-env-check (located at
C:\source\ready-to-release\ext-env-check)Command prefix:
eac(runs directly, not via ext-eac container)Commands to Test
1. Module Discovery and Information
eac get-modulesPurpose: List all modules in the repository
Test Cases:
Expected Output:
Validation:
eac show-modulesPurpose: Display module details in human-readable format
Test Cases:
Validation:
eac get-filesPurpose: List all tracked files with module ownership
Test Cases:
Validation:
eac get-files-by-modulePurpose: Get files grouped by module
Test Cases:
Validation:
2. Dependency Management
eac get-dependenciesTest Cases:
Validation:
eac show-dependenciesTest Cases:
Validation:
eac validate-dependenciesTest Cases:
Validation:
3. Build Commands
eac buildPurpose: Build module (container or binary)
Test Cases:
Expected Output:
Validation:
eac get-build-timesValidation:
eac show-build-summaryValidation:
4. Test Commands
eac testTest Cases:
Validation:
eac get-test-resultsValidation:
eac show-test-summaryValidation:
eac test-debugValidation:
5. Lint and Validation Commands
eac lintTest Cases:
Validation:
eac validate-module-filesValidation:
eac validate-contractsValidation:
6. Specification Commands
eac create-specValidation:
eac validate-specsValidation:
eac get-specsValidation:
7. Release Commands
eac release-pendingValidation:
eac release-thisValidation:
eac get-changelog/eac show-changelogValidation:
8. Artifact Commands
eac get-artifacts/eac show-artifactsValidation:
9. Git and Change Tracking Commands
eac show-files-changedValidation:
eac show-files-stagedValidation:
eac get-changed-modulesValidation:
10. Documentation Commands
eac update-docsValidation:
Docker Build Testing
Since
eacruns natively now, Docker is only involved wheneac buildinvokes the Docker daemon directly (not as a container wrapper). Test the Docker build path specifically:Validation:
eac buildTesting Strategy
1. Setup
2. Automated Test Script
Create
scripts/test-eac-commands.sh:3. Full Integration Workflow
Validation:
4. Error Scenario Testing
Validation:
Success Criteria
Command Execution:
eacExtension Development Workflow:
Documentation:
Deliverables
out/eac-commands-test-report.md): command-by-command results, issues discovered, performance metricsdocs/reference/eac-commands.md): usage notes, troubleshooting guide, limitationsscripts/test-eac-commands.sh): runnable test script with exit codes for CIRelated Issues
Priority
High — Critical for extension development experience