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

feat: merge alloy-rs/ruint (ruint2), take 2 #264

Merged
merged 7 commits into from
Jul 18, 2023
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
4 changes: 0 additions & 4 deletions .cargo/audit.toml

This file was deleted.

1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ about: Please use the discussions tab for questions
title: ''
labels: ''
assignees: ''

---

Please post your question as a discussion here:
Expand Down
1 change: 0 additions & 1 deletion .github/scripts/release.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,3 @@
# * Git tag with version
# * Git push branch and tag
# * Cargo publish in all workspace members

25 changes: 0 additions & 25 deletions .github/workflows/audit.yml

This file was deleted.

155 changes: 86 additions & 69 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,128 +1,145 @@
name: CI

on: [push, pull_request]
on:
push:
branches: [main]
pull_request:

env:
CARGO_TERM_COLOR: always
# Skip incremental build and debug info generation in CI
CARGO_INCREMENTAL: 0
CARGO_PROFILE_DEV_DEBUG: 0

jobs:
accept:
name: Accept
runs-on: ubuntu-latest
needs: [lint, test]
needs: [test, feature-checks, clippy, docs, fmt]
steps:
- name: Accept
run: true

lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: rustfmt, clippy
- name: Cache build
uses: Swatinem/rust-cache@v1
with:
key: cache-v1
- name: Check formatting
run: cargo fmt --all -- --check
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --locked --workspace --all-features --all-targets
- name: Check docs
run: cargo doc --locked --workspace --all-features --no-deps --document-private-items
run: "true"

test:
name: Test
name: Test ${{ matrix.rust }}
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
rust:
- stable
- nightly
rust: [stable, beta, nightly, 1.65] # MSRV
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install rust
uses: dtolnay/rust-toolchain@master
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: Cache build
uses: Swatinem/rust-cache@v1
with:
key: cache-v1
- name: exclude nightly features
if: ${{ matrix.rust }} != 'nightly'
run: |
sed -i 's/nightly = \[\]//g' Cargo.toml
sed -i 's/generic_const_exprs = \["nightly"\]//g' Cargo.toml
- uses: Swatinem/rust-cache@v2
# Cargo doc test is not included in `--all-targets` so we call it separately.
# See <https://github.com/rust-lang/cargo/issues/6669>
# Cargo doc test also doesn't support `--no-run`, so we run it but
# have it just print `--help`.
- name: Build tests
run: |
cargo test --locked --workspace --all-features --all-targets --no-run
cargo test --locked --workspace --all-features --doc -- --help
cargo test --workspace --all-features --all-targets --no-run
cargo test --workspace --all-features --doc -- --help
- name: Run tests
run: |
cargo test --locked --workspace --all-features --all-targets -- --nocapture
cargo test --locked --workspace --all-features --doc -- --nocapture
cargo test --workspace --all-features --all-targets -- --nocapture
cargo test --workspace --all-features --doc -- --nocapture

feature-checks:
name: Feature checks
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@cargo-hack
- uses: Swatinem/rust-cache@v2
- name: cargo hack
run: |
cargo hack check \
--feature-powerset --exclude-features nightly,generic_const_exprs \
--depth 1 \
--all-targets

codecov:
# See <https://doc.rust-lang.org/nightly/unstable-book/compiler-flags/source-based-code-coverage.html>
name: Coverage
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install rust
uses: dtolnay/rust-toolchain@master
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@nightly
with:
toolchain: nightly
components: llvm-tools-preview
- name: Cache build
uses: Swatinem/rust-cache@v1
with:
key: cache-v1
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-llvm-cov
- name: Build with code coverage
run: |
cargo llvm-cov --no-report --locked --workspace --all-features --all-targets
cargo llvm-cov --no-report --locked --workspace --all-features --doc
cargo llvm-cov --no-report --workspace --all-features --all-targets
cargo llvm-cov --no-report --workspace --all-features --doc
- name: Generate code coverage
env:
# Covered tests are slower, so reduce the test load. (We also shouldn't
# depend too much on case generation for coverage).
PROPTEST_CASES: 5
run: |
# Generate profiles, but do not merge them
cargo llvm-cov --no-report --locked --workspace --all-features --all-targets -- --nocapture
cargo llvm-cov --no-report --locked --workspace --all-features --doc -- --nocapture
cargo llvm-cov --no-report --workspace --all-features --all-targets -- --nocapture
cargo llvm-cov --no-report --workspace --all-features --doc -- --nocapture
- name: Merge profiles
run: cargo llvm-cov --no-run --lcov --output-path lcov.info
- name: Submit to codecov.io
uses: codecov/codecov-action@v3.1.1
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }} # Optional for public repos
files: lcov.info
fail_ci_if_error: true
verbose: true

security_audit:
name: Dependency Security Audit
clippy:
name: Clippy
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
- name: Set up Rust
uses: dtolnay/rust-toolchain@master
- uses: dtolnay/rust-toolchain@clippy
- run: cargo clippy --workspace --all-features
env:
RUSTFLAGS: -Dwarnings

docs:
name: Docs
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@nightly
with:
toolchain: nightly
- uses: actions-rs/audit-check@v1
components: rust-docs
- run: cargo doc --workspace --all-features --no-deps --document-private-items
env:
RUSTDOCFLAGS: "--cfg doc_cfg -D warnings"

fmt:
name: Fmt
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- run: cargo fmt --all --check

cargo-deny:
name: Cargo deny check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: EmbarkStudios/cargo-deny-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
command: check all
2 changes: 1 addition & 1 deletion .github/workflows/issue_tracker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Issue Tracker

on:
push:
branches: [ main ]
branches: [main]

jobs:
issue-tracker:
Expand Down
16 changes: 15 additions & 1 deletion Changelog.md → CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Support for [`alloy-rlp`](https://github.com/alloy-rs/rlp)

### Changed

- Make `serde::Deserialize` impl more permissive
- Use Ethereum `Quantity` encoding for serde serialization when human-readable
- Fix error in `from_base_be` that allowed instantiation of overflowing `Uint`.
- Updated `ark` to `0.4`, `fastrlp` to `0.3` and `pyo3` to `0.18`.
- Updated `ark` to `0.4`, `fastrlp` to `0.3`, `pyo3` to `0.19`, and `sqlx-core` to `0.7`.
- Improved `fastrlp` perfomance
- Improved `proptest` performance
- Made `support` module and its modules public
- Made more `algorithm` functions public
- Constified `as_le_slice` and `as_le_bytes`

### Removed

- Automatic detection of nightly features. Enable them instead with the `nightly` cargo feature.
- Dependency on `derive_more`

### Fixed

Expand Down
Loading