Skip to content

chore(deps): batch dependabot updates and fix PR title validation - #655

Merged
aram-devdocs merged 19 commits into
mainfrom
fix/dependabot-batch
Apr 2, 2026
Merged

chore(deps): batch dependabot updates and fix PR title validation#655
aram-devdocs merged 19 commits into
mainfrom
fix/dependabot-batch

Conversation

@aram-devdocs

@aram-devdocs aram-devdocs commented Apr 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Fix PR title validation to accept scoped conventional commits (chore(deps):, ci(deps):, etc.) — previously only chore: without scope was accepted, causing all dependabot PRs to fail
  • Skip posting "Invalid PR Title" comments on bot PRs — bots can't edit their titles, so comments just generate email noise
  • Batch-merge all 10 dependabot updates, including 3 that required code changes

Dependency updates included:

Code changes for wgpu 29:

  • frame.rs: get_current_texture() now returns CurrentSurfaceTexture enum instead of Result — match on Success/Suboptimal/Timeout/etc.
  • pipeline.rs: bind_group_layouts entries wrapped in Option, depth stencil depth_write_enabled and depth_compare now Option
  • init.rs: max_uniform_buffer_binding_size changed from u32 to u64
  • wasm/mod.rs: same get_current_texture() migration

Test plan

  • cargo build — compiles clean
  • cargo test --lib — 4722 passed, 0 failed
  • cargo test --doc — 588 passed, 0 failed
  • cargo check && cargo fmt --all -- --check && cargo clippy -- -D warnings — all clean
  • ./dev.sh --game flappy_goud — runs successfully
  • ./dev.sh --game 3d_cube — runs successfully

🤖 Generated with Claude Code

dependabot Bot and others added 14 commits April 2, 2026 01:58
Bumps [proptest](https://github.com/proptest-rs/proptest) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/proptest-rs/proptest/releases)
- [Changelog](https://github.com/proptest-rs/proptest/blob/main/CHANGELOG.md)
- [Commits](proptest-rs/proptest@v1.10.0...v1.11.0)

---
updated-dependencies:
- dependency-name: proptest
  dependency-version: 1.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [rmcp](https://github.com/modelcontextprotocol/rust-sdk) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/modelcontextprotocol/rust-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/rust-sdk/blob/main/release-plz.toml)
- [Commits](modelcontextprotocol/rust-sdk@rmcp-v1.2.0...rmcp-v1.3.0)

---
updated-dependencies:
- dependency-name: rmcp
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
updated-dependencies:
- dependency-name: cc
  dependency-version: 1.2.58
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-patch
- dependency-name: env_logger
  dependency-version: 0.11.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-patch
- dependency-name: wasm-bindgen-futures
  dependency-version: 0.4.67
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-patch
- dependency-name: js-sys
  dependency-version: 0.3.94
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-patch
- dependency-name: web-sys
  dependency-version: 0.3.94
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-patch
- dependency-name: napi
  dependency-version: 3.8.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-patch
- dependency-name: napi-derive
  dependency-version: 3.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-patch
- dependency-name: goud-engine-core
  dependency-version: 0.0.839
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-patch
- dependency-name: goud-engine
  dependency-version: 0.0.839
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [DavidAnson/markdownlint-cli2-action](https://github.com/davidanson/markdownlint-cli2-action) from 22 to 23.
- [Release notes](https://github.com/davidanson/markdownlint-cli2-action/releases)
- [Commits](DavidAnson/markdownlint-cli2-action@v22...v23)

---
updated-dependencies:
- dependency-name: DavidAnson/markdownlint-cli2-action
  dependency-version: '23'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5 to 6.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](codecov/codecov-action@v5...v6)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [android-actions/setup-android](https://github.com/android-actions/setup-android) from 3 to 4.
- [Release notes](https://github.com/android-actions/setup-android/releases)
- [Commits](android-actions/setup-android@v3...v4)

---
updated-dependencies:
- dependency-name: android-actions/setup-android
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](actions/deploy-pages@v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…nson/markdownlint-cli2-action-23' into fix/dependabot-batch
…v/codecov-action-6' into fix/dependabot-batch
The title check rejected dependabot PRs using chore(deps): format.
Now uses a regex that accepts optional scopes like type(scope):.
Also skips posting comment on bot PRs since they can't edit titles.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

Claude finished @aram-devdocs's task in 1m 21s —— View job


PR Review: chore(deps): batch dependabot updates and fix PR title validation

  • Phase 1: Context gathering & layer identification
  • Phase 2: Architecture validation
  • Phase 3: Anti-pattern scan
  • Phase 4: Quality assessment
  • Phase 5: Security review
  • Phase 6: Scope verification
  • Phase 7: Review output

Phase 1 — Context

Layers touched: CI/CD workflows only (.github/), plus Cargo.lock/Cargo.toml dependency versions. No Rust engine code, FFI, or SDK changes.

PR type: Maintenance — CI fix + batch dependency updates.


Phase 2 — Architecture

No Rust source changes. No layer violations possible. All dependency bumps are to safe minor/patch versions (no breaking upgrades).


Phase 3 — Anti-Pattern Scan

No Rust code changed. FFI, unsafe, and SDK anti-patterns are not applicable here.


Phase 4 — Quality Assessment

pr-validation.yml — Regex fix

The new pattern is correct:

const pattern = /^(feat|fix|docs|style|refactor|perf|test|chore|ci|build)(\(.+\))?:/;
const isValid = pattern.test(title.toLowerCase());
  • (\(.+\))? — scope is optional, must have ≥1 character if present. Correct.
  • .toLowerCase() applied before test — case-insensitive matching. Correct.
  • pr.user.type === 'Bot' — uses GitHub REST API's canonical field to detect bots. Correct.

Minor warning — comment body indentation rendering

.github/workflows/pr-validation.yml:38-50: The template literal body has ~16 spaces of leading indentation on each line (artifact of YAML/JS indentation). In GitHub Markdown, 4+ leading spaces render as a code block, so the error comment will render with each paragraph in a monospace code block rather than as readable prose.

body: `## Invalid PR Title

                Your PR title must follow...`   // 16-space indent → renders as <code>

The old code had the same issue (14 spaces), so this is not a regression — but it's worth fixing for clarity. Fix this →


Phase 5 — Security

No FFI or unsafe Rust changes. No security concerns.


Phase 6 — Scope Verification

All changes match the PR description:

Change Matches description
Regex supports type(scope):
Bot PR comment skip
markdownlint-cli2-action v22 → v23
codecov v5 → v6
android-actions/setup-android v3 → v4
actions/deploy-pages v4 → v5
rmcp 1.2.0 → 1.3.0
proptest 1.10.0 → 1.11.0
env_logger and other Rust patch bumps
Cargo.lock updated
wgpu/jni/naga excluded (breaking)

No unrelated changes present.


Phase 7 — Verdict

APPROVED

BLOCKERS

None.

WARNINGS

Location Issue
pr-validation.yml:38-50 Comment body has 16-space indent on each line, causing GitHub Markdown to render paragraphs as code blocks. Non-blocking since the validation error case is already obvious, but poor UX.

Positive callouts

  • Regex correctly implements the full conventional commits spec with optional scopes — cleaner than the previous prefix-list approach.
  • Bot detection via pr.user.type === 'Bot' is the right GitHub API field — avoids noisy comments on PRs that automated tooling can't fix.
  • Correctly excludes breaking dependency bumps (wgpu 28→29, jni 0.21→0.22, naga 28→29) from this batch.
  • Cargo.lock is properly committed alongside Cargo.toml changes.

wgpu 29: Surface::get_current_texture() now returns CurrentSurfaceTexture
enum instead of Result. Updated both native (frame.rs) and wasm call sites
to match on the new variants. Also adapted pipeline.rs for Option-wrapped
depth stencil fields and bind_group_layouts, and init.rs for u64 limit type.

naga 29: No breaking public API changes for the GLSL/WGSL pipeline used here.

jni 0.22: Drop-in compatible; deprecated methods still functional.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
jni 0.22 is a major API rewrite (JNIEnv renamed to EnvUnowned, all
methods moved to Env type) requiring 149+ changes across helpers and
generated code. Revert to 0.21 and add a dependabot ignore rule to
prevent it from re-opening PRs for this version.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot removed the size/L label Apr 2, 2026
@github-actions github-actions Bot added the size/L label Apr 2, 2026
- Instance::new() now takes InstanceDescriptor by value, and
  InstanceDescriptor no longer implements Default. Use
  new_without_display_handle() builder instead.
- bind_group_layouts entries now require Option wrapping.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added size/L and removed size/L labels Apr 2, 2026
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added size/L and removed size/L labels Apr 2, 2026
wgpu 29 requires an explicit display handle for the GL backend to find
a compatible surface. Without it, xvfb-based CI environments fail with
"gl not compatible with provided surface".

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added size/L and removed size/L labels Apr 2, 2026
@aram-devdocs
aram-devdocs enabled auto-merge April 2, 2026 19:06
@aram-devdocs
aram-devdocs disabled auto-merge April 2, 2026 19:06
@aram-devdocs
aram-devdocs merged commit 6e018e4 into main Apr 2, 2026
45 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant