Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
b59ceae
docs(release): update latest major changes summary for release (refs …
fxstein Jun 30, 2025
7dfd2c4
feat: add simplified top-level release script with interactive and ba…
fxstein Jun 30, 2025
df26743
docs: update AI instructions to use new simplified release script (re…
fxstein Jun 30, 2025
3ae7b99
cleanup: remove leftover test configuration files from repo root (ref…
fxstein Jun 30, 2025
f85a4b7
cleanup: remove temporary test scripts from repo root (refs #20)
fxstein Jun 30, 2025
adba48c
refactor: move load-env.zsh to scripts/core/ and update references (r…
fxstein Jun 30, 2025
9fac514
refactor: merge full-release.zsh functionality into gitflow-release.z…
fxstein Jun 30, 2025
c911554
refactor: rename scripts/release/release.zsh to trigger-workflow.zsh …
fxstein Jun 30, 2025
357de52
chore: move release.zsh to scripts/release, update docs and add scrip…
fxstein Jun 30, 2025
bd8d950
fix: update test environment management, Homebrew multi-channel tests…
fxstein Jun 30, 2025
3f6ddd5
fix: relax commit message assertion in Homebrew integration tests (re…
fxstein Jun 30, 2025
d2c5925
fix: eliminate duplicate function definitions, enforce test isolation…
fxstein Jun 30, 2025
2659b6e
fix: correct gitflow-release.zsh script path in release.zsh (refs #72)
fxstein Jun 30, 2025
59f1d94
test: add test to verify release.zsh detects gitflow-release.zsh path…
fxstein Jun 30, 2025
8b475cf
feat: implement new environment variable standard (refs #70)
fxstein Jun 30, 2025
8a5d2c2
test: clean up safe prompt test integration and logger sourcing (refs…
fxstein Jun 30, 2025
743d5bf
fix: resolve interactive prompt issues in release script (refs #67 #7…
fxstein Jun 30, 2025
0375a7d
cleanup: remove temporary test files (refs #67 #71 #72)
fxstein Jun 30, 2025
c0f982c
fix: complete interactive release script fixes and improvements (refs…
fxstein Jun 30, 2025
544956c
fix: resolve unit test failures and shell compatibility issues (refs …
fxstein Jun 30, 2025
8fd9539
fix: resolve unit test failures and shell compatibility issues (refs …
fxstein Jun 30, 2025
ee6e6c6
fix: improve stat command robustness and cross-platform compatibility…
fxstein Jun 30, 2025
3aa2642
fix: improve stat command robustness and numeric validation (refs #67…
fxstein Jun 30, 2025
f584187
fix: improve test reliability and focus on core functionality (refs #…
fxstein Jun 30, 2025
8c9a04e
fix: Add --force-clean flag to GitHub Actions test workflows (refs #72)
fxstein Jun 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/release-channels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:

- name: Run tests
run: |
./scripts/testing/run-tests.zsh
./scripts/testing/run-tests.zsh --force-clean

- name: Update Homebrew Dev Channel
env:
Expand Down Expand Up @@ -56,7 +56,7 @@ jobs:

- name: Run tests
run: |
./scripts/testing/run-tests.zsh
./scripts/testing/run-tests.zsh --force-clean

- name: Update Homebrew Beta Channel
env:
Expand Down Expand Up @@ -85,7 +85,7 @@ jobs:

- name: Run tests
run: |
./scripts/testing/run-tests.zsh
./scripts/testing/run-tests.zsh --force-clean

- name: Update Homebrew Official Channel
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:
- name: "Run all unit tests"
run: |
echo "🧪 Running all unit tests..."
./scripts/testing/run-unit-tests.zsh
./scripts/testing/run-unit-tests.zsh --force-clean

- name: "Upload unit test results"
if: always()
Expand Down
48 changes: 39 additions & 9 deletions AI_INSTRUCTIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ This document establishes the foundational architectural decisions and design pa
- Commit and push all changes before proceeding

3. **Use Full Release Script**
- Always use `scripts/release/full-release.zsh` for releases
- Always use `scripts/release/gitflow-release.zsh` for releases
- Never run individual scripts unless specifically instructed

4. **Output File Requirements** (CRITICAL)
Expand Down Expand Up @@ -87,7 +87,7 @@ This document establishes the foundational architectural decisions and design pa

## Release Workflow Automation

- When the user requests a release, always use the `./scripts/release/full-release.zsh` script to perform the entire release process (version bump, workflow trigger, monitoring) in a single, automated step.
- When the user requests a release, always use the `./scripts/release/gitflow-release.zsh` script to perform the entire release process (version bump, workflow trigger, monitoring) in a single, automated step.
- By default, all test runs should be performed as dry runs (using `--dry-run`), unless a real release is explicitly requested.
- Do not run the bump-version, release, or monitor scripts individually unless specifically instructed.

Expand Down Expand Up @@ -119,13 +119,36 @@ This document establishes the foundational architectural decisions and design pa
- Use this awareness to ensure all work is properly linked to relevant issues and to provide accurate context during development and communication.

## Release Script Automation
- Always use `scripts/release/full-release.zsh` for all release and dry-run operations. This script performs version bumping, workflow triggering, and monitoring in a single automated process.
- For dry runs, use: `./scripts/release/full-release.zsh --dry-run` (this will run non-interactively and monitor the workflow).
- Default to this format whenever the user requests a release or dry run of the release process.
- **ALWAYS use the new simplified top-level release script**: `./scripts/release/release.zsh` for all release and dry-run operations
- **For AI/Automation**: Use batch mode with all parameters specified: `./scripts/release/release.zsh --batch <type> --prev <version> [options]`
- **For Interactive Use**: Use interactive mode: `./scripts/release/release.zsh` (default) or `./scripts/release/release.zsh --interactive`
- **Release Types**:
- `dry-run`: Test release process without actual release (any branch)
- `official`: Production releases (main/develop/release/* branches)
- `beta`: Beta releases (release/* branches)
- `dev`: Development releases (feature/*/fix/* branches)
- **Default to batch mode for automation** whenever the user requests a release or dry run of the release process
- **IMPORTANT**: Before any release or dry run, always check the entire `scripts/release/` directory for changes. Commit and push all changes in `scripts/release/` before running a release or dry run. The GitHub workflow uses the repository state on GitHub, not local changes. Failure to commit and push will result in the workflow using outdated scripts.
- If a full release (without `--dry-run`) is requested and there are changes in `scripts/release/`, first commit and push those changes, then perform a dry run. Only proceed with the real release if the dry run completes successfully.
- Whenever a release is requested (dry-run or real), always create or update a file in `docs/release` with a summary of major changes since the requested previous release. The filename must match the convention used by the release process: `docs/release/latest-major-changes-since-<BASE>.md` (where `<BASE>` is the previous version, no leading 'v'). This file must be created every time a release is requested, before the release process starts.

**Examples for AI/Automation:**
```zsh
# Dry run for testing
./scripts/release/release.zsh --batch dry-run --prev 01.50.00 --minor

# Official release with monitoring
./scripts/release/release.zsh --batch official --prev 01.50.00 --minor --monitor

# Beta release with specific version
./scripts/release/release.zsh --batch beta --prev 01.50.00 --version 01.51.00

# Development release
./scripts/release/release.zsh --batch dev --prev 01.50.00 --patch
```

**Legacy Scripts**: The old `scripts/release/gitflow-release.zsh` is now the unified release script and should be used for all release operations. The `full-release.zsh` script has been deprecated and its functionality merged into `gitflow-release.zsh`.

## GitHub Issue Management
- Whenever a new GitHub issue is created, immediately run `scripts/maintenance/generate-issues-markdown.zsh` to update the local Markdown issue list.
- After generating the issue list, read the output file (`output/github_issues.md`) to ensure you are memorizing and referencing the latest issues in all future work and communication.
Expand Down Expand Up @@ -587,7 +610,11 @@ What happens after approval/rejection.
- If working on releases, summaries, or version management, read `docs/release/RELEASE_SUMMARY_INSTRUCTIONS.md`
- This document defines required content and formatting for release summaries

### **Step 4: Read Next Steps** (if applicable)
### **Step 4: Read Release System Documentation** (if applicable)
- If working on releases, deployment, or release automation, read `docs/RELEASE_SYSTEM.md`
- This document defines the new simplified release system with interactive and batch modes

### **Step 5: Read Next Steps** (if applicable)
- If starting new work or providing progress updates, read `docs/NEXT_STEPS.md`
- This document tracks current priorities and dependencies

Expand All @@ -605,7 +632,8 @@ After reading all required documents, respond with:
1. **AI Instructions** ✅ - [Brief summary of key requirements and standards]
2. **Design Principles** ✅ - [Brief summary of core principles and architectural decisions]
3. **Release Summary Instructions** ✅ - [Brief summary if applicable to current work]
4. **Next Steps** ✅ - [Brief summary if applicable to current work]
4. **Release System Documentation** ✅ - [Brief summary if applicable to current work]
5. **Next Steps** ✅ - [Brief summary if applicable to current work]

I'm now fully equipped with all mandatory reading requirements and ready to proceed.
```
Expand All @@ -623,7 +651,8 @@ I'm now fully equipped with all mandatory reading requirements and ready to proc
1. **AI Instructions** - Read complete `AI_INSTRUCTIONS.md`
2. **Design Principles** - Read complete `docs/architecture/DESIGN_PRINCIPLES.md`
3. **Release Summary Instructions** - Read `docs/release/RELEASE_SUMMARY_INSTRUCTIONS.md` (if working on releases/summaries)
4. **Next Steps** - Read `docs/NEXT_STEPS.md` (if starting new work or providing progress updates)
4. **Release System Documentation** - Read `docs/RELEASE_SYSTEM.md` (if working on releases/deployment)
5. **Next Steps** - Read `docs/NEXT_STEPS.md` (if starting new work or providing progress updates)

### **Mandatory Confirmation Format:**
After reading ALL required documents, you MUST respond with this exact format:
Expand All @@ -634,7 +663,8 @@ After reading ALL required documents, you MUST respond with this exact format:
1. **AI Instructions** ✅ - [Brief summary of key requirements and standards]
2. **Design Principles** ✅ - [Brief summary of core principles and architectural decisions]
3. **Release Summary Instructions** ✅ - [Brief summary if applicable to current work]
4. **Next Steps** ✅ - [Brief summary if applicable to current work]
4. **Release System Documentation** ✅ - [Brief summary if applicable to current work]
5. **Next Steps** ✅ - [Brief summary if applicable to current work]

I'm now fully equipped with all mandatory reading requirements and ready to proceed.
```
Expand Down
4 changes: 2 additions & 2 deletions docs/RELEASE_PROCESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ The release automation system automatically:

### 2. Legacy Scripts (for reference only)

The following scripts are now called internally by `full-release.zsh` and should not be run directly unless for advanced troubleshooting:
The following scripts are now called internally by `gitflow-release.zsh` and should not be run directly unless for advanced troubleshooting:
- `scripts/release/bump-version.zsh`
- `scripts/release/release.zsh`
- `scripts/release/trigger-workflow.zsh`
- `scripts/release/monitor-release.zsh`

### 3. Monitoring Output
Expand Down
Loading
Loading