Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
f077328
Fix web and prepare to publish 4.0.2
mosuem Mar 31, 2025
9a0b464
Allow 4.0.0 version for protobuf dependency and prepare to release 4.…
mraleph Mar 31, 2025
aa915bf
Bump dart-lang/setup-dart from 1.7.0 to 1.7.1 (#761)
dependabot[bot] Mar 31, 2025
5ba3745
Allow the latest pkg:googleapis_auth (#775)
kevmoo Apr 1, 2025
d297a29
Add server interceptor acting as a middleware (#762)
ThHareau May 23, 2025
a6b9485
Fix CallOptions.mergeWith (#786)
mraleph May 26, 2025
aebb65c
Update publish.yaml (#789)
devoncarew Jun 11, 2025
4e35b16
update deps; simplify analysis options (#790)
devoncarew Jun 20, 2025
79f277e
export additional generated protobuf symbols (#792)
devoncarew Jun 24, 2025
c737e3d
simplify hierarchy of ResponseFuture (#791)
devoncarew Jun 24, 2025
c2581f9
Bump build_test from 2.2.3 to 3.2.1 (#797)
dependabot[bot] Jun 30, 2025
0f86517
bump to 4.2.0 in prep for publishing (#795)
devoncarew Aug 16, 2025
b46c486
Pub workspace (#806)
mosuem Oct 6, 2025
0cefb2e
Upgrade protobuf to 5.0.0 (#807)
mosuem Oct 8, 2025
095739d
Downgrade meta package version from 1.17.0 to 1.16.0 (#810)
feinstein Oct 31, 2025
774fd15
Update protos (#812)
mosuem Nov 17, 2025
f952d38
Merge upstream/master into aot_monorepo_compat
tsavo-at-pieces Nov 26, 2025
cb991f7
Refactor generated protobuf files and improve code formatting
tsavo-at-pieces Nov 26, 2025
dedce7a
fix(grpc): Restore critical null connection fix and apply race condit…
tsavo-at-pieces Nov 26, 2025
e8b6d52
docs(grpc): Add comprehensive documentation explaining why we use the…
tsavo-at-pieces Nov 26, 2025
c8babb8
test(grpc): Add race condition regression tests from PR #7 with analysis
tsavo-at-pieces Nov 26, 2025
a267004
feat(grpc): Add stderr logging to race condition catch blocks per PR …
tsavo-at-pieces Nov 26, 2025
4efd8f7
style(grpc): Format all files to pass GitHub Actions CI checks
tsavo-at-pieces Nov 26, 2025
e313336
fix(grpc): Add platform-specific logging for race condition fixes
tsavo-at-pieces Nov 26, 2025
c27d12f
style(grpc): Simplify code formatting in handler.dart and logging files
tsavo-at-pieces Nov 26, 2025
c75c76a
feat: Add Release Please + Claude Code Action for automated releases
tsavo-at-pieces Nov 26, 2025
9f517a9
fix: Configure Release Please to use target-branch dynamically
tsavo-at-pieces Nov 26, 2025
01c9086
fix: Use ANTHROPIC_API_KEY instead of ANTHROPIC_API_KEY_GLOBAL_CLOUD_…
tsavo-at-pieces Nov 26, 2025
a7d7b3b
fix: Use ANTHROPIC_API_KEY_GLOBAL_CLOUD_RUNTIME secret
tsavo-at-pieces Nov 26, 2025
301f1c5
chore: release 5.1.0
github-actions[bot] Nov 26, 2025
8dfb26a
docs: Add AI-enhanced release highlights for v5.1.0
github-actions[bot] Nov 26, 2025
06498d8
docs: Update current version to 5.1.0 in fork documentation
github-actions[bot] Nov 26, 2025
0128273
docs: Add fork identification and key features to README
github-actions[bot] Nov 26, 2025
8792662
Merge pull request #9 from open-runtime/release-please--branches--aot…
tsavo-at-pieces Nov 26, 2025
b201913
fix: Format all Dart files and add fallback release handler
tsavo-at-pieces Nov 26, 2025
b03923e
fix: Use heredoc and notes-file for release creation
tsavo-at-pieces Nov 26, 2025
289c7e4
fix: Replace heredoc with echo statements for YAML compatibility
tsavo-at-pieces Nov 26, 2025
58057a1
docs: Embed comprehensive Claude CI instructions in workflow
tsavo-at-pieces Nov 26, 2025
a13dde6
chore: release 5.1.1
github-actions[bot] Nov 26, 2025
ae63310
docs: Add AI-enhanced release highlights for v5.1.1
github-actions[bot] Nov 26, 2025
41b8430
docs: Update current version to 5.1.1 in fork documentation
github-actions[bot] Nov 26, 2025
615af36
Merge pull request #10 from open-runtime/release-please--branches--ao…
tsavo-at-pieces Nov 26, 2025
b19355f
ci: Add concurrency groups to cancel outdated workflow runs
tsavo-at-pieces Nov 26, 2025
bcd9ffb
fix(grpc): Address P1 code review issues - restore error_details expo…
tsavo-at-pieces Nov 26, 2025
e9d5789
docs(grpc): Add PR #8 resolution summary
tsavo-at-pieces Nov 26, 2025
81a9072
chore(ci): Update workflows to target main branch only
tsavo-at-pieces Nov 26, 2025
9142172
feat: Upgrade to protobuf ^6.0.0
tsavo-at-pieces Nov 27, 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
26 changes: 11 additions & 15 deletions .github/workflows/dart.yml
Original file line number Diff line number Diff line change
@@ -1,42 +1,38 @@
name: Dart

on:
# Run CI on pushes to the master branch, and on PRs against master.
# Run CI on pushes to main and on PRs against main.
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:

# Cancel in-progress runs when new commits are pushed
concurrency:
group: dart-ci-${{ github.ref }}
cancel-in-progress: true

jobs:
# Check code formatting and static analysis on a single OS (linux)
# against Dart dev.
analyze:
runs-on: ubuntu-latest
strategy:
matrix:
sdk: [3.5, dev]
sdk: [stable, dev]
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: dart-lang/setup-dart@e630b99d28a3b71860378cafdc2a067c71107f94
- uses: dart-lang/setup-dart@e51d8e571e22473a2ddebf0ef8a2123f0ab2c02c
with:
sdk: ${{ matrix.sdk }}
- name: Report version
run: dart --version
- name: Install dependencies
run: dart pub get
- name: Check formatting (using dev dartfmt release)
if: ${{ matrix.sdk == 'dev' }}
if: ${{ matrix.sdk == 'stable' }}
run: dart format --output=none --set-exit-if-changed .
- name: Analyze code (introp and examples)
run: |
for example in interop example/*/; do
pushd $example
echo [Getting dependencies in $example]
dart pub get
popd
done
shell: bash
- name: Analyze code
run: dart analyze --fatal-infos .
- name: Check that grpc-web sample builds with DDC
Expand All @@ -59,7 +55,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
sdk: [3.5, dev]
sdk: [stable, dev]
platform: [vm, chrome]
exclude:
# We only run Chrome tests on Linux. No need to run them
Expand All @@ -70,7 +66,7 @@ jobs:
platform: chrome
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: dart-lang/setup-dart@e630b99d28a3b71860378cafdc2a067c71107f94
- uses: dart-lang/setup-dart@e51d8e571e22473a2ddebf0ef8a2123f0ab2c02c
with:
sdk: ${{ matrix.sdk }}
- name: Report version
Expand Down
270 changes: 270 additions & 0 deletions .github/workflows/enhance-release-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,270 @@
name: Enhance Release PR

on:
pull_request:
types: [opened, synchronize, reopened]
branches:
- main

# Cancel in-progress runs when a new commit is pushed to the same PR
concurrency:
group: enhance-release-${{ github.event.pull_request.number }}
cancel-in-progress: true

permissions:
contents: write
pull-requests: write
issues: write
id-token: write

jobs:
enhance-release-pr:
name: πŸ€– Claude AI Enhancement
if: startsWith(github.head_ref, 'release-please--')
runs-on: ubuntu-latest
steps:
- name: πŸ“₯ Checkout PR Branch
uses: actions/checkout@v5
with:
ref: ${{ github.head_ref }}
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}

- name: 🏷️ Extract Version from PR Title
id: version
run: |
VERSION=$(echo "${{ github.event.pull_request.title }}" | grep -oP '\d+\.\d+\.\d+' || echo "")
if [ -z "$VERSION" ]; then
echo "⚠️ Could not extract version from PR title"
echo "skip=true" >> $GITHUB_OUTPUT
else
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "skip=false" >> $GITHUB_OUTPUT
echo "πŸ“¦ Detected version: $VERSION"
fi

- name: ⬅️ Get Previous Version
id: prev_version
if: steps.version.outputs.skip != 'true'
run: |
PREV=$(cat .release-please-manifest.json | grep -oP '"\.: "\K[^"]+' || echo "0.0.0")
echo "prev_version=$PREV" >> $GITHUB_OUTPUT
echo "πŸ“¦ Previous version: $PREV"

- name: βœ… Check if Already Enhanced
id: check
if: steps.version.outputs.skip != 'true'
run: |
if grep -q "### πŸš€ Release Highlights" CHANGELOG.md; then
VERSION_LINE=$(grep -n "## \[${{ steps.version.outputs.version }}\]" CHANGELOG.md | head -1 | cut -d: -f1 || echo "0")
HIGHLIGHTS_LINE=$(grep -n "### πŸš€ Release Highlights" CHANGELOG.md | head -1 | cut -d: -f1 || echo "99999")

if [ "$VERSION_LINE" != "0" ] && [ "$HIGHLIGHTS_LINE" -gt "$VERSION_LINE" ]; then
NEXT_VERSION=$(grep -n "## \[" CHANGELOG.md | grep -v "^$VERSION_LINE:" | head -1 | cut -d: -f1 || echo "99999")
if [ "$HIGHLIGHTS_LINE" -lt "${NEXT_VERSION:-99999}" ]; then
echo "βœ… Already enhanced"
echo "already_enhanced=true" >> $GITHUB_OUTPUT
exit 0
fi
fi
fi
echo "already_enhanced=false" >> $GITHUB_OUTPUT

- name: πŸ€– Full Release Enhancement with Claude
if: steps.version.outputs.skip != 'true' && steps.check.outputs.already_enhanced != 'true'
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY_GLOBAL_CLOUD_RUNTIME }}
github_token: ${{ secrets.GITHUB_TOKEN }}
prompt: |
REPO: ${{ github.repository }}
PROPOSED_VERSION: ${{ steps.version.outputs.version }}
PREVIOUS_VERSION: ${{ steps.prev_version.outputs.prev_version }}
PR_BRANCH: ${{ github.head_ref }}
PR_NUMBER: ${{ github.event.pull_request.number }}

# πŸ€– CLAUDE CODE: RELEASE MANAGER FOR open-runtime/grpc-dart

## Project Context

This is a **FORK** of grpc/grpc-dart with critical production enhancements:
- **Race condition fixes** - Prevents "Cannot add event after closing" crashes
- **Null connection fix** - Actionable errors instead of null pointer exceptions
- **ServerInterceptor support** - Powers the AOT security architecture

Key files: `lib/src/server/handler.dart`, `lib/src/client/http2_connection.dart`

Release Please has proposed version **${{ steps.version.outputs.version }}** (from ${{ steps.prev_version.outputs.prev_version }}).

---

## 🎯 YOUR MISSION: Complete Pre-Release Enhancement

Execute these tasks IN ORDER:

---

## TASK 0: πŸ”’ VERSION REVIEW (CRITICAL - DO THIS FIRST!)

```bash
git log v${{ steps.prev_version.outputs.prev_version }}..HEAD --oneline
```

**Version Rules:**
| Change Type | Version | Examples |
|-------------|---------|----------|
| **MAJOR** | X.0.0 | Removing public API, breaking protocol changes |
| **MINOR** | x.Y.0 | New features, upstream merge with new capabilities |
| **PATCH** | x.y.Z | Bug fixes, docs, CI, race condition fixes |

**⚠️ BREAKING CHANGE Rules (IMPORTANT!):**

Only use MAJOR bump for **actual API breaking changes**:
- βœ… Removing or renaming public classes/methods
- βœ… Changing method signatures
- βœ… Protocol incompatibilities

**NEVER** MAJOR for:
- ❌ Workflow/CI changes
- ❌ Documentation updates
- ❌ Internal refactoring
- ❌ Adding new features (that's MINOR)

**If version is wrong** (e.g., 6.0.0 for docs changes):
1. Update `.release-please-manifest.json` to correct version
2. Update `pubspec.yaml` version field
3. Update CHANGELOG.md version header
4. Commit: `fix: Adjust version to X.Y.Z (from proposed A.B.C)`

---

## TASK 1: πŸ“ ADD RELEASE HIGHLIGHTS

Insert after version header in CHANGELOG.md:

```markdown
### πŸš€ Release Highlights

[2-4 sentences about DEVELOPER IMPACT, not implementation details]
```

**βœ… GOOD Example:**
```markdown
### πŸš€ Release Highlights

This release adds automated release management with AI-enhanced notes, making version
tracking effortless. The fork's critical race condition fixes remain fully intact,
ensuring production stability for high-concurrency gRPC servers.
```

**❌ BAD Example:**
```markdown
### πŸš€ Release Highlights

Various improvements and bug fixes. Updated CI workflows and some internal changes.
Please update when convenient.
```

Commit: `docs: Add AI-enhanced release highlights for v${{ steps.version.outputs.version }}`

---

## TASK 2: πŸ“š DOCUMENTATION SYNC

Check if these need updates:
- `README.md` - Installation instructions, version references
- `WHY_USE_OPEN_RUNTIME_FORK.md` - If fork-specific features changed
- `FORK_CHANGES.md` - If new fixes were added
- `CLAUDE.md` - If conventions changed

**Only update if genuinely needed.** Don't change for the sake of it.

---

## TASK 3: 🏷️ ISSUE MANAGEMENT

```bash
gh issue list --repo ${{ github.repository }} --state open --limit 50
```

**When to CLOSE an issue:**
- Commit explicitly says "Fixes #X" or "Closes #X"
- You can verify the fix by reading code changes
- Issue description matches what was changed

**When NOT to close:**
- Partially addressed (comment with progress instead)
- Not 100% certain it's fixed
- Feature request needing user verification

**Closing comment format:**
```
πŸŽ‰ This issue has been addressed in v${{ steps.version.outputs.version }}!
The fix will be available once the release PR merges.
```

---

## TASK 4: πŸ’¬ POST PR SUMMARY

```bash
gh pr comment ${{ github.event.pull_request.number }} --body "## πŸš€ Release v[VERSION] Ready!

### Version Review:
- **Proposed:** ${{ steps.version.outputs.version }}
- **Final:** [ACTUAL_VERSION] βœ…
- **Reason:** [Why this version is correct]

### What Claude Did:
- [x] Reviewed version appropriateness
- [x] Added Release Highlights to CHANGELOG.md
- [x] Reviewed documentation (updates: yes/no)
- [x] Processed related issues (N found)

### Fork-Specific Notes:
[Notes about upstream compatibility, critical fixes preserved, etc.]

### Installation (after merge):
\\\`\\\`\\\`yaml
dependencies:
grpc:
git:
url: https://github.com/open-runtime/grpc-dart
tag_pattern: \"^v\"
version: ^[VERSION]
\\\`\\\`\\\`

**Ready to merge!** πŸŽ‰

---
*πŸ€– Generated by Claude Code Action*"
```

---

## EXECUTION RULES

1. **Git Setup First:**
```bash
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
```

2. **Commit Each Change Separately** with conventional commit messages

3. **Push All Changes:**
```bash
git push origin ${{ github.head_ref }}
```

4. **Be Conservative** - this is a critical infrastructure package

Now execute all tasks in order!
claude_args: |
--allowedTools "Read,Edit,Bash(git:*),Bash(gh:*),Bash(cat:*),Bash(head:*),Bash(grep:*)"

- name: ℹ️ Already Enhanced Notice
if: steps.check.outputs.already_enhanced == 'true'
run: |
echo "ℹ️ Release PR already enhanced - skipping"

5 changes: 3 additions & 2 deletions .github/workflows/health.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
name: Health

on:
pull_request:
branches: [ master ]
types: [opened, synchronize, reopened, labeled, unlabeled]

jobs:
health:
uses: dart-lang/ecosystem/.github/workflows/health.yaml@main
with:
checks: "changelog,do-not-submit,breaking,coverage,leaking"
ignore_coverage: "example/**,interop/**"
checks: "changelog,do-not-submit,breaking,leaking"
permissions:
pull-requests: write
7 changes: 4 additions & 3 deletions .github/workflows/post_summaries.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
name: Comment on the pull request

on:
# Trigger this workflow after the Health workflow completes. This workflow will have permissions to
# do things like create comments on the PR, even if the original workflow couldn't.
# Trigger this workflow after the given workflows completes.
# This workflow will have permissions to do things like create comments on the
# PR, even if the original workflow couldn't.
workflow_run:
workflows:
- Health
Expand All @@ -14,4 +15,4 @@ jobs:
upload:
uses: dart-lang/ecosystem/.github/workflows/post_summaries.yaml@main
permissions:
pull-requests: write
pull-requests: write
Loading
Loading