Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update criterion requirement from 0.4 to 0.5 #194

Merged
merged 3 commits into from
Feb 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
240 changes: 120 additions & 120 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
on:
push:
branches:
- main
- main
pull_request:

name: CI
Expand All @@ -12,20 +12,20 @@ jobs:
name: Rustfmt
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Cache cargo
uses: Swatinem/rust-cache@v1
- uses: IronCoreLabs/rust-toolchain@v1
with:
toolchain: nightly
components: rustfmt
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- name: Cancel workflow
if: failure()
uses: andymckay/[email protected]
- uses: actions/checkout@v4
- name: Cache cargo
uses: Swatinem/rust-cache@v1
- uses: IronCoreLabs/rust-toolchain@v1
with:
toolchain: nightly
components: rustfmt
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- name: Cancel workflow
if: failure()
uses: andymckay/[email protected]

# Build on all the architectures we intend to support, including cross compiled ones.
build:
Expand All @@ -34,34 +34,34 @@ jobs:
strategy:
matrix:
include:
- os: ubuntu-22.04
target: aarch64-linux-android # Android x64
- os: ubuntu-22.04
target: x86_64-unknown-linux-musl # Alpine Linux x86_64
- os: ubuntu-22.04
target: wasm32-unknown-unknown
features: --features wasm --no-default-features
- os: macos-13
target: aarch64-apple-ios
- os: macos-13
target: x86_64-apple-darwin # 64-bit OSX
- os: macos-14
target: aarch64-apple-darwin # 64-bit M1 OSX
- os: windows-2019
target: x86_64-pc-windows-msvc
- os: ubuntu-22.04
target: aarch64-linux-android # Android x64
- os: ubuntu-22.04
target: x86_64-unknown-linux-musl # Alpine Linux x86_64
- os: ubuntu-22.04
target: wasm32-unknown-unknown
features: --features wasm --no-default-features
- os: macos-13
target: aarch64-apple-ios
- os: macos-13
target: x86_64-apple-darwin # 64-bit OSX
- os: macos-14
target: aarch64-apple-darwin # 64-bit M1 OSX
- os: windows-2019
target: x86_64-pc-windows-msvc
steps:
- uses: actions/checkout@v4
- name: Cache cargo
uses: Swatinem/rust-cache@v1
- uses: IronCoreLabs/rust-toolchain@v1
with:
toolchain: stable
target: ${{ matrix.target }}
- uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --release --target=${{ matrix.target }} ${{ matrix.features }}
- uses: actions/checkout@v4
- name: Cache cargo
uses: Swatinem/rust-cache@v1
- uses: IronCoreLabs/rust-toolchain@v1
with:
toolchain: stable
target: ${{ matrix.target }}
- uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --release --target=${{ matrix.target }} ${{ matrix.features }}

# Run the tests on only one architecture, against various Rust versions.
test:
Expand All @@ -70,20 +70,20 @@ jobs:
strategy:
matrix:
rust:
- stable
- beta
- 1.70.0 #MSRV
- stable
- beta
- 1.74.0 #MSRV
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Cache cargo
uses: Swatinem/rust-cache@v1
- uses: IronCoreLabs/rust-toolchain@v1
with:
toolchain: ${{ matrix.rust }}
- uses: actions-rs/cargo@v1
with:
command: test
- uses: actions/checkout@v4
- name: Cache cargo
uses: Swatinem/rust-cache@v1
- uses: IronCoreLabs/rust-toolchain@v1
with:
toolchain: ${{ matrix.rust }}
- uses: actions-rs/cargo@v1
with:
command: test

# Benchmark current and base revisions, if this is a PR.
bench:
Expand All @@ -93,80 +93,80 @@ jobs:
strategy:
matrix:
include:
- name: current
ref: ${{ github.ref }}
- name: base
ref: ${{ github.base_ref }}
- name: current
ref: ${{ github.ref }}
- name: base
ref: ${{ github.base_ref }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ matrix.ref }}
- name: Cache cargo
uses: Swatinem/rust-cache@v1
- uses: IronCoreLabs/rust-toolchain@v1
with:
toolchain: stable
- uses: actions-rs/cargo@v1
with:
command: install
args: critcmp
- uses: actions-rs/cargo@v1
with:
command: bench
args: -- --save-baseline ${{ matrix.name }}
- run: critcmp --export ${{ matrix.name }} > results.json
- name: Store benchmark results
uses: actions/upload-artifact@v4
with:
name: bench-${{ matrix.name }}
path: results.json
- uses: actions/checkout@v4
with:
ref: ${{ matrix.ref }}
- name: Cache cargo
uses: Swatinem/rust-cache@v1
- uses: IronCoreLabs/rust-toolchain@v1
with:
toolchain: stable
- uses: actions-rs/cargo@v1
with:
command: install
args: critcmp
- uses: actions-rs/cargo@v1
with:
command: bench
args: -- --save-baseline ${{ matrix.name }}
- run: critcmp --export ${{ matrix.name }} > results.json
- name: Store benchmark results
uses: actions/upload-artifact@v4
with:
name: bench-${{ matrix.name }}
path: results.json

# Add a comment to the PR with benchmark results. Only if everything else passed, and this is a PR.
bench_results:
needs:
- bench
- bench
name: Upload benchmark results
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Cache cargo
uses: Swatinem/rust-cache@v1
- name: Retrieve benchmark results
uses: actions/download-artifact@v4
with:
name: bench-current
- name: Delete artifact
uses: geekyeggo/delete-artifact@v1
with:
name: bench-current
failOnError: false
- name: Retrieve benchmark results
uses: actions/download-artifact@v4
with:
name: bench-base
- name: Delete artifact
uses: geekyeggo/delete-artifact@v1
with:
name: bench-base
failOnError: false
- uses: IronCoreLabs/rust-toolchain@v1
with:
toolchain: stable
- uses: actions-rs/cargo@v1
with:
command: install
args: critcmp
- name: Compare benchmarks
run: |
if ! critcmp bench-base/results.json bench-current/results.json -t 10 ; then
echo "# Benchmark blew big budget! Bad!" > comment.md
fi
echo "Benchmark results comparing with base:" >> comment.md
echo '```' >> comment.md
critcmp bench-base/results.json bench-current/results.json -t 2 >> comment.md || true
echo '```' >> comment.md
cat comment.md
mv comment.md .github/workflows/comment.md
- uses: actions/checkout@v4
- name: Cache cargo
uses: Swatinem/rust-cache@v1
- name: Retrieve benchmark results
uses: actions/download-artifact@v4
with:
name: bench-current
- name: Delete artifact
uses: geekyeggo/delete-artifact@v1
with:
name: bench-current
failOnError: false
- name: Retrieve benchmark results
uses: actions/download-artifact@v4
with:
name: bench-base
- name: Delete artifact
uses: geekyeggo/delete-artifact@v1
with:
name: bench-base
failOnError: false
- uses: IronCoreLabs/rust-toolchain@v1
with:
toolchain: stable
- uses: actions-rs/cargo@v1
with:
command: install
args: critcmp
- name: Compare benchmarks
run: |
if ! critcmp bench-base/results.json bench-current/results.json -t 10 ; then
echo "# Benchmark blew big budget! Bad!" > comment.md
fi
echo "Benchmark results comparing with base:" >> comment.md
echo '```' >> comment.md
critcmp bench-base/results.json bench-current/results.json -t 2 >> comment.md || true
echo '```' >> comment.md
cat comment.md
mv comment.md .github/workflows/comment.md
# This will post a comment to the PR with benchmark results, but it's disabled because it's annoying.
# - uses: harupy/comment-on-pr@c0522c4
# env:
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

## 0.15.0 (Unreleased)

- [[#194](https://github.com/IronCoreLabs/recrypt-rs/pull/194)]
- Change MSRV to Rust 1.74.0

## 0.14.1 (2024-12-05)

- [[#190](https://github.com/IronCoreLabs/recrypt-rs/pull/190)]
Expand Down
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ keywords = [
]
description = "A pure-Rust implementation of Transform Encryption, a Proxy Re-encryption scheme"
edition = "2021"
rust-version = "1.70.0"
rust-version = "1.74.0"

[target.'cfg(all(unix, not(target_arch = "wasm32")))'.dependencies]
libc = { version = "0.2" }
Expand Down Expand Up @@ -46,7 +46,7 @@ rand_chacha = "0.3"
sha2 = "0.10"

[dev-dependencies]
criterion = "0.4"
criterion = "0.5"
proptest = "1"
serde_json = "1"

Expand Down
Loading