Conversation
…tch modes (refs #20) - Add release.zsh as unified entry point for all release types - Support interactive mode with sensible defaults and prompts - Support batch mode for AI/automation with all parameters required - Support official, beta, dev, and dry-run release types - Add comprehensive documentation in docs/RELEASE_SYSTEM.md - Integrate with existing full-release.zsh and gitflow-release.zsh - Include version validation, branch requirements, and error handling - Test with successful dry-run validation
#20) - Update Release Script Automation section to use ./release.zsh - Add examples for AI/automation batch mode usage - Add reference to docs/RELEASE_SYSTEM.md in mandatory reading - Clarify legacy script usage for troubleshooting only - Ensure AI uses batch mode for automation and interactive mode for developers
…#20) - Remove test-config*.txt files that were accidentally committed - These were transient test artifacts that should be in output/ directory - Follows AI instructions requirement for output file placement
- Remove test-beta-version-generation.zsh (temporary test artifact) - Remove test-homebrew-update.zsh (temporary test artifact) - These were used during Homebrew multi-channel development - Functionality is now properly tested in scripts/testing/ suites - Follows AI instructions requirement for output file placement
…efs #20) - Move load-env.zsh from repo root to scripts/core/ directory - Update usage comments with proper relative path examples - Add load-env.zsh source to update-homebrew-channel.zsh for HOMEBREW_TOKEN loading - Follows proper script organization and relative path conventions - Maintains functionality while improving project structure
…for clarity (refs #72)
…ts/release/README.md (refs #72)
… correctly (refs #72)
- Add design principle for minimal environment variable usage - Update interactive mode principle to require command-line arguments only - Remove environment variable support from safe prompt utility - Update main goprox script to use local variables for interactive flags - Update test frameworks and documentation to clarify new standard - Add comprehensive test suite for safe prompt functionality This change establishes that environment variables should only be used for: - Tokens and credentials (GITHUB_TOKEN, HOMEBREW_TOKEN) - Basic project-wide settings (GOPROX_ROOT, GOPROX_CONFIG) - System integration variables (CI/CD platform variables) Interactive control (--non-interactive, --auto-confirm, --default-yes) must be provided via command-line arguments to avoid persistence and scope issues.
…70) - Source logger utility in safe prompt test suite - Ensure all safe prompt tests run with correct logger output - Remove all environment variable usage for interactive control in tests - Validate new command-line argument standard for safe prompt and test framework All tests now pass and logger output is correctly integrated in test results.
…#72) - Fix is_interactive function to only check stdin (-t 0) instead of both stdin and stdout - Redirect logger output to stderr to prevent interference with command substitution - Add proper logger integration to release script using project logger - Add safe_log wrapper function to handle logger errors gracefully - Add debug logging throughout main function to track execution flow - Fix script initialization order to set SCRIPT_DIR before sourcing logger This resolves the issue where interactive prompts were not working due to: 1. Incorrect interactive environment detection 2. Logger output interfering with command substitution return values 3. Missing logger integration causing silent exits The release script now properly detects interactive environments and handles user input without logger interference.
🧪 Test Results✅ All tests passed Test Suites Executed:
📊 Test Reports: Available in workflow artifacts Generated by GoProX Comprehensive Testing Framework |
🧪 Test Results✅ All tests passed Test Suites Executed:
📊 Test Reports: Available in workflow artifacts Generated by GoProX Comprehensive Testing Framework |
🧪 Test Results✅ All tests passed Test Suites Executed:
📊 Test Reports: Available in workflow artifacts Generated by GoProX Comprehensive Testing Framework |
🧪 Test Results✅ All tests passed Test Suites Executed:
📊 Test Reports: Available in workflow artifacts Generated by GoProX Comprehensive Testing Framework |
🧪 Test Results✅ All tests passed Test Suites Executed:
📊 Test Reports: Available in workflow artifacts Generated by GoProX Comprehensive Testing Framework |
🧪 Test Results✅ All tests passed Test Suites Executed:
📊 Test Reports: Available in workflow artifacts Generated by GoProX Comprehensive Testing Framework |
- Fixes CI environment validation failures in GitHub Actions - Adds --force-clean flag to run-unit-tests.zsh and run-tests.zsh calls - Ensures tests run in isolated environments when needed - Addresses GitHub Actions environment variables (GITHUB_ACTIONS, GITHUB_TOKEN, etc.) Fixes GitHub Actions CI failures where environment validation was blocking tests due to CI-specific environment variables being set.
🧪 Test Results✅ All tests passed Test Suites Executed:
📊 Test Reports: Available in workflow artifacts Generated by GoProX Comprehensive Testing Framework |
Summary
This PR implements comprehensive fixes and improvements to the interactive release script (
scripts/release/release.zsh), resolving critical issues with interactive prompts, logger integration, and version format handling.Requirements
Motivation
The interactive release script was experiencing several critical issues:
${var,,}syntax caused "bad substitution" errors in some environmentsThese issues prevented the interactive release script from functioning properly and providing a smooth user experience.
Changes
Interactive Prompt System
is_interactive()to check only stdin (-t 0) instead of both stdin and stdout>&2) to prevent capture by command substitutionsafe_prompt()andsafe_confirm()functions for reliable input captureLogger Integration
log_*calls withsafe_log *wrapper for consistencysafe_log()function to prevent logger errors from causing script exitsVersion Format Handling
Shell Compatibility
${var,,}syntax with explicit case checking for better compatibilityInteractive Workflow Completion
Acceptance Criteria
Testing
The interactive release script has been thoroughly tested:
Related Issues
Impact
This PR significantly improves the user experience for interactive releases by:
The interactive release script is now fully functional and ready for production use.