Skip to content

chore: Release v1.5.0#770

Merged
tirumerla merged 2 commits into
mainfrom
release-v1.5.0
May 8, 2026
Merged

chore: Release v1.5.0#770
tirumerla merged 2 commits into
mainfrom
release-v1.5.0

Conversation

@tirumerla
Copy link
Copy Markdown
Contributor

@tirumerla tirumerla commented May 8, 2026

Summary

  • Merge Release branch to Main

Summary by CodeRabbit

  • Chores

    • Released version 1.5.0 with updated Rust toolchain requirements.
    • Updated minimum supported Rust version from 1.88 to 1.91.
    • Updated Rust toolchain from 1.88.0 to 1.91.1 for CI pipelines.
  • Documentation

    • Added v1.5.0 release notes to CHANGELOG, documenting new features, bug fixes, reverts, and maintenance updates.

tirumerla and others added 2 commits May 7, 2026 21:29
* chore: Release version 1.5.0

* chore: Updating lock file

* chore: Clean up 1.5.0 changelog entries

* chore: Restore Cargo.lock from main

---------

Co-authored-by: oz-release-app[bot] <205211949+oz-release-app[bot]@users.noreply.github.com>
Co-authored-by: tirumerla <tirumerla@gmail.com>
@tirumerla tirumerla requested a review from a team as a code owner May 8, 2026 14:45
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 8, 2026

Review Change Stack

Walkthrough

This PR releases version 1.5.0 of the OpenZeppelin Relayer with a coordinated Rust toolchain upgrade from 1.88.0 to 1.91.1. Configuration files, release documentation, and in-memory repositories are updated with lifetime annotations and code utilities modernized to leverage newer Rust standard library APIs.

Changes

Version 1.5.0 Release with Rust 1.91 Upgrade

Layer / File(s) Summary
Toolchain & Version Configuration
rust-toolchain.toml, Cargo.toml, .github/actions/prepare/action.yml, .github/release-please/manifest.json
Rust toolchain bumped from 1.88.0 to 1.91.1; package version and MSRV updated to 1.5.0 and 1.91 respectively across all configuration points.
Release Documentation
CHANGELOG.md
New 1.5.0 changelog section added with Features, Bug Fixes, Reverts, and Chores entries linking to issues, PRs, and commits.
Mutex Guard Lifetime Annotations
src/repositories/api_key/api_key_in_memory.rs, src/repositories/network/network_in_memory.rs, src/repositories/notification/notification_in_memory.rs, src/repositories/plugin/plugin_in_memory.rs, src/repositories/relayer/relayer_in_memory.rs, src/repositories/signer/signer_in_memory.rs, src/repositories/transaction/transaction_in_memory.rs
All seven in-memory repository acquire_lock helpers updated to use explicit MutexGuard<'_, T> lifetime annotations instead of implicit forms.
Utility Method Refactoring
src/jobs/handlers/transaction_cleanup_handler.rs, src/queues/sqs/worker.rs, src/services/plugins/pool_executor.rs
Refactored to use standard library utilities: std::slice::from_ref() for zero-copy slice creation, and is_multiple_of() for divisibility checks in rate-limiting and probing logic.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • OpenZeppelin/openzeppelin-relayer#767: Both PRs make the same code-level changes: they bump Rust from 1.88→1.91.1 (rust-toolchain, Cargo MSRV, GitHub action) and apply identical source edits (e.g., using std::slice::from_ref, is_multiple_of checks, and MutexGuard<'_, T> lifetimes), so they are related.

Suggested reviewers

  • nahimterrazas
  • son-oz

Poem

🐰 A version bump brings joy today,
Rust 1.91 paves the way!
Guards with lifetimes, slice::from_ref,
Divisibility checks—pure delight, no grief.
1.5.0 hops forward with style!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is incomplete. It only contains a minimal summary ('Merge Release branch to Main') and is missing the 'Testing Process' section and the checklist required by the template. Complete the PR description by adding a 'Testing Process' section and filling out the checklist items, including references to related issues and confirmation of testing where applicable.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'chore: Release v1.5.0' clearly and specifically describes the main change—a version release—which aligns with the changeset's version bump and release activities across multiple files.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release-v1.5.0

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/actions/prepare/action.yml:
- Around line 17-19: Replace the mutable tag reference to the third-party GitHub
Action (the uses string "dtolnay/rust-toolchain@1.91.1") with an immutable
commit SHA; update the uses field to point to the action by its full commit SHA
(e.g., "dtolnay/rust-toolchain@<commit-sha>") so the job uses a specific,
immutable revision rather than a tag.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 87735ba3-a107-43c2-9f4c-e0f1bb945f57

📥 Commits

Reviewing files that changed from the base of the PR and between 8194752 and 3db7d38.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (15)
  • .github/actions/prepare/action.yml
  • .github/release-please/manifest.json
  • CHANGELOG.md
  • Cargo.toml
  • rust-toolchain.toml
  • src/jobs/handlers/transaction_cleanup_handler.rs
  • src/queues/sqs/worker.rs
  • src/repositories/api_key/api_key_in_memory.rs
  • src/repositories/network/network_in_memory.rs
  • src/repositories/notification/notification_in_memory.rs
  • src/repositories/plugin/plugin_in_memory.rs
  • src/repositories/relayer/relayer_in_memory.rs
  • src/repositories/signer/signer_in_memory.rs
  • src/repositories/transaction/transaction_in_memory.rs
  • src/services/plugins/pool_executor.rs

Comment on lines +17 to 19
uses: dtolnay/rust-toolchain@1.91.1 # v1.91.1
with:
components: ${{ (inputs.components != '') && format('{0}, rustfmt, clippy', inputs.components) || 'rustfmt, clippy' }}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Read-only verification:
# 1) Find non-SHA GitHub Action refs.
# 2) Resolve dtolnay/rust-toolchain tag commit SHA for 1.91.1.

set -euo pipefail

echo "== Non-SHA action refs in workflows/actions =="
rg -n --glob '.github/**' 'uses:\s+[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+@([^\s#]+)' | \
  rg -n -v '@[0-9a-fA-F]{40}\b' || true

echo
echo "== Resolve tag -> commit SHA for dtolnay/rust-toolchain@1.91.1 =="
gh api repos/dtolnay/rust-toolchain/git/ref/tags/1.91.1 | jq -r '.object.sha, .object.type'

Repository: OpenZeppelin/openzeppelin-relayer

Length of output: 393


🏁 Script executed:

#!/bin/bash
# Step 1: Explore .github directory structure
echo "=== .github directory structure ==="
find .github -type f -name "*.yml" -o -name "*.yaml" 2>/dev/null | head -20

echo
echo "=== Check if .github/actions/prepare/action.yml exists ==="
if [ -f ".github/actions/prepare/action.yml" ]; then
  echo "File exists. Content at lines 17-19:"
  sed -n '15,21p' ".github/actions/prepare/action.yml" | cat -n
else
  echo "File does not exist"
fi

echo
echo "=== All GitHub Actions uses statements ==="
rg 'uses:' '.github/' --no-heading || echo "(no matches found)"

Repository: OpenZeppelin/openzeppelin-relayer

Length of output: 13951


🌐 Web query:

dtolnay/rust-toolchain repository tag v1.91.1 commit SHA

💡 Result:

For the repository dtolnay/rust-toolchain, the tag v1.91.1 corresponds to the commit SHA f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561.[1]

Citations:


🌐 Web query:

dtolnay/rust-toolchain action inputs parameters documentation

💡 Result:

The dtolnay/rust-toolchain GitHub Action supports these input parameters (“with:” fields) and outputs: Inputs (with/): 1) toolchain (required: false) - Rustup toolchain specification string such as stable, nightly, 1.89.0, nightly-2025-01-01.[1][2] - The default behavior (if you do not set the input) is to match the action’s @rev (e.g., dtolnay/rust-toolchain@nightly pulls nightly; dtolnay/rust-toolchain@1.89.0 pulls 1.89.0).[1][2] - Note from the README: if you pass an explicit toolchain input instead of using the action @rev, use dtolnay/rust-toolchain@master as the revision of the action.[1] 2) targets (required: false) - Comma-separated list of Rust target triples to install for the chosen toolchain.[3][1] 3) target (required: false) - Alias for targets (same meaning: installs the listed target triples).[3] 4) components (required: false) - Comma-separated list of additional Rust components to install (examples given: clippy, rustfmt).[3][1] Outputs: 1) cachekey - A short hash of the installed rustc version, suitable for use as a cache key.[3][1] 2) name - Rustup’s selected toolchain name (example format like “1.62.0”), suitable for using with cargo +${{ steps..outputs.name }}.[3][1] Example usage: - uses: dtolnay/rust-toolchain@stable with: toolchain: nightly targets: wasm32-unknown-unknown components: clippy,rustfmt Grounding: the action.yml defines inputs toolchain, targets, target (alias), components, plus outputs cachekey and name.[3] The README documents the same inputs/outputs and explains the default behavior tied to the action @rev and the @master guidance when providing toolchain explicitly.[1][2]

Citations:


🏁 Script executed:

#!/bin/bash
# Check the .github/actions/oidc/action.yml to see similar aws-actions pattern
echo "=== Reference: aws-actions/configure-aws-credentials usage ==="
rg -A 3 'uses: aws-actions/configure-aws-credentials' .github/ --no-heading || true

echo
echo "=== Check how prepare action uses the rust-toolchain action ==="
cat -n .github/actions/prepare/action.yml | head -30

Repository: OpenZeppelin/openzeppelin-relayer

Length of output: 1885


Pin third-party GitHub Action to an immutable commit SHA.
Using a tag (@1.91.1) is mutable and weakens CI supply-chain integrity.

Suggested hardening
-      uses: dtolnay/rust-toolchain@1.91.1  # v1.91.1
+      uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561  # v1.91.1
       with:
         components: ${{ (inputs.components != '') && format('{0}, rustfmt, clippy', inputs.components) || 'rustfmt, clippy' }}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
uses: dtolnay/rust-toolchain@1.91.1 # v1.91.1
with:
components: ${{ (inputs.components != '') && format('{0}, rustfmt, clippy', inputs.components) || 'rustfmt, clippy' }}
uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # v1.91.1
with:
components: ${{ (inputs.components != '') && format('{0}, rustfmt, clippy', inputs.components) || 'rustfmt, clippy' }}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/actions/prepare/action.yml around lines 17 - 19, Replace the mutable
tag reference to the third-party GitHub Action (the uses string
"dtolnay/rust-toolchain@1.91.1") with an immutable commit SHA; update the uses
field to point to the action by its full commit SHA (e.g.,
"dtolnay/rust-toolchain@<commit-sha>") so the job uses a specific, immutable
revision rather than a tag.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 8, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.31%. Comparing base (4bfd68d) to head (3db7d38).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
Flag Coverage Δ
ai 0.00% <0.00%> (ø)
dev 90.31% <100.00%> (-0.02%) ⬇️
properties 0.01% <0.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

@@            Coverage Diff             @@
##             main     #770      +/-   ##
==========================================
- Coverage   90.32%   90.31%   -0.02%     
==========================================
  Files         291      291              
  Lines      124502   124510       +8     
==========================================
- Hits       112454   112447       -7     
- Misses      12048    12063      +15     
Files with missing lines Coverage Δ
src/jobs/handlers/transaction_cleanup_handler.rs 86.40% <100.00%> (ø)
src/queues/sqs/worker.rs 53.62% <100.00%> (ø)
src/repositories/api_key/api_key_in_memory.rs 94.44% <100.00%> (ø)
src/repositories/network/network_in_memory.rs 91.38% <100.00%> (ø)
...epositories/notification/notification_in_memory.rs 79.31% <100.00%> (ø)
src/repositories/plugin/plugin_in_memory.rs 99.61% <100.00%> (ø)
src/repositories/relayer/relayer_in_memory.rs 82.47% <100.00%> (ø)
src/repositories/signer/signer_in_memory.rs 79.16% <100.00%> (ø)
.../repositories/transaction/transaction_in_memory.rs 98.23% <100.00%> (ø)
src/services/plugins/pool_executor.rs 77.20% <100.00%> (ø)

... and 12 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@tirumerla tirumerla merged commit cf190cf into main May 8, 2026
32 of 33 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators May 8, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants