From 58e3bd43f560611bb36789493464ba674dbeffa7 Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Fri, 5 Jun 2026 13:44:29 +0200 Subject: [PATCH 1/3] Port Miri and sanitizer checks from CircleCI to Actions workflow --- .github/workflows/ci.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7ca09d7..96aa992 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,6 +70,29 @@ jobs: - name: Check semver uses: obi1kenobi/cargo-semver-checks-action@v2 + miri: + name: Run all tests under miri + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: dtolnay/rust-toolchain@nightly + with: + components: miri + - run: cargo miri test --locked --all-features + + sanitizers: + name: Run all tests under sanitizers + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: dtolnay/rust-toolchain@nightly + with: + components: rust-src + - run: | + RUSTDOCFLAGS=-Cunsafe-allow-abi-mismatch=sanitizer RUSTFLAGS="-Z sanitizer=address" cargo -Z build-std test --locked --target x86_64-unknown-linux-gnu --all-features + RUSTDOCFLAGS=-Cunsafe-allow-abi-mismatch=sanitizer RUSTFLAGS="-Z sanitizer=leak" cargo test --locked -Z build-std --target x86_64-unknown-linux-gnu --all-features + RUSTDOCFLAGS=-Cunsafe-allow-abi-mismatch=sanitizer RUSTFLAGS="-Z sanitizer=memory" cargo test --locked -Z build-std --target x86_64-unknown-linux-gnu --all-features + audit: runs-on: ubuntu-latest steps: From 6a7e0325b9eacb5f567690714a566a86e8987ae5 Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Fri, 5 Jun 2026 13:45:11 +0200 Subject: [PATCH 2/3] Drop CircleCI config --- .circleci/config.yml | 55 -------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index db6b98a..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,55 +0,0 @@ -version: 2 - -jobs: - build: - docker: - - image: cimg/rust:1.65.0 - steps: - - checkout - - run: - name: Setup Rust - command: | - rustup toolchain uninstall nightly - rustup toolchain install nightly -c miri rust-src rustfmt - - run: - name: Version information - command: | - rustc --version - cargo --version - rustc +nightly --version - cargo +nightly --version - rustup --version - - run: - name: Calculate dependencies - command: cargo generate-lockfile - - restore_cache: - keys: - - cargo-cache-{{ arch }}-{{ checksum "Cargo.lock" }} - - run: - name: Check Formatting - command: | - rustfmt --version - cargo fmt --all -- --check --color=auto - - run: - name: Build all targets - command: cargo build --all --all-targets - - run: - name: Run all tests - command: cargo test --all --all-features - - run: - name: Run all tests under miri - command: | - cargo +nightly miri test --all-features - - run: - name: Run all tests under sanitizers - command: | - RUSTDOCFLAGS=-Cunsafe-allow-abi-mismatch=sanitizer RUSTFLAGS="-Z sanitizer=address" cargo +nightly -Z build-std test --target x86_64-unknown-linux-gnu --all-features - RUSTDOCFLAGS=-Cunsafe-allow-abi-mismatch=sanitizer RUSTFLAGS="-Z sanitizer=leak" cargo +nightly test -Z build-std --target x86_64-unknown-linux-gnu --all-features - RUSTDOCFLAGS=-Cunsafe-allow-abi-mismatch=sanitizer RUSTFLAGS="-Z sanitizer=memory" cargo +nightly test -Z build-std --target x86_64-unknown-linux-gnu --all-features - - save_cache: - paths: - - /usr/local/cargo/registry - - target/debug/.fingerprint - - target/debug/build - - target/debug/deps - key: cargo-cache-{{ arch }}-{{ checksum "Cargo.lock" }} From 37fe44024761c1ff3093d2de6994ab8164df172d Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Fri, 5 Jun 2026 13:54:01 +0200 Subject: [PATCH 3/3] Replace CircleCI badge with GH Actions badge --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9272b0d..bd1475c 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # hashlink -- HashMap-like containers that hold their key-value pairs in a user controllable order -[![Build Status](https://img.shields.io/circleci/project/github/kyren/hashlink.svg)](https://circleci.com/gh/kyren/hashlink) +[![Build status](https://github.com/djc/hashlink/workflows/CI/badge.svg)](https://github.com/djc/hashlink/actions?query=workflow%3ACI) [![Latest Version](https://img.shields.io/crates/v/hashlink.svg)](https://crates.io/crates/hashlink) [![API Documentation](https://docs.rs/hashlink/badge.svg)](https://docs.rs/hashlink) -This crate is a fork of +This crate is a fork of [linked-hash-map](https://github.com/contain-rs/linked-hash-map) that builds on top of [hashbrown](https://github.com/rust-lang/hashbrown) to implement more up to date versions of `LinkedHashMap` `LinkedHashSet`, and `LruCache`.