diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..ccc65e5 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @geofmureithi diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index b3d06ce..60aafc9 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -33,10 +33,9 @@ body: label: Steps to reproduce description: Steps to reproduce the behavior placeholder: | - 1. Go to '...' - 2. Click on '....' - 3. Scroll down to '....' - 4. See error + 1. Setup with '....' + 2. Do '....' + 3. See error validations: required: true @@ -51,9 +50,12 @@ body: id: version attributes: label: Version - description: What version of apalis-sqlite are you running? + description: What version are you running? options: - - 1.0.0-alpha.1 + - 0.7.x + - 1.0.0-alpha.x + - 1.0.0-beta.x + - 1.0.0-rc.x - main branch - Other (specify in additional context) validations: diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 412b715..733046a 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -51,7 +51,7 @@ body: id: terms attributes: label: Code of Conduct - description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/apalis-dev/apalis-sqlite/blob/main/CODE_OF_CONDUCT.md) + description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/apalis-dev/apalis/blob/main/CODE_OF_CONDUCT.md) options: - label: I agree to follow this project's Code of Conduct required: true diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml new file mode 100644 index 0000000..aeb45a4 --- /dev/null +++ b/.github/workflows/changelog.yml @@ -0,0 +1,14 @@ +name: "Changelog" +permissions: + contents: read +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled] + branches: [ main, develop ] + +jobs: + # Enforces the update of a changelog file on every pull request + changelog: + runs-on: ubuntu-latest + steps: + - uses: dangoslen/changelog-enforcer@v3 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f09119..e77b260 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,21 +2,23 @@ name: CI on: push: - branches: [main] + branches: [main, develop] pull_request: - branches: [main] env: CARGO_TERM_COLOR: always RUST_BACKTRACE: 1 + DATABASE_URL: sqlite://./test.db + SQLX_OFFLINE: true jobs: test: name: Test Suite runs-on: ${{ matrix.os }} + strategy: matrix: - os: [ubuntu-latest, macos-latest] # TODO: windows-latest + os: [ubuntu-latest] rust: [stable, beta] include: - os: ubuntu-latest @@ -42,6 +44,18 @@ jobs: ${{ runner.os }}-cargo-${{ matrix.rust }}- ${{ runner.os }}-cargo- + - name: Install cargo-binstall + uses: cargo-bins/cargo-binstall@v1.16.2 + + - name: Install sqlx-cli + run: cargo binstall sqlx-cli --locked --force + + - name: Set up database + run: sqlx database create + + - name: Run migrations + run: sqlx migrate run + - name: Run cargo test with all features run: cargo test --all-features --verbose -- --test-threads=1 @@ -108,50 +122,18 @@ jobs: env: RUSTDOCFLAGS: "-Dwarnings" - security: - name: Security Audit - runs-on: ubuntu-latest - steps: - - name: Checkout sources - uses: actions/checkout@v6 - - - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - - - name: Install cargo-audit - run: cargo install cargo-audit - - - name: Run cargo audit - run: cargo audit - - coverage: - name: Code Coverage + unused-deps: + name: Unused Dependencies runs-on: ubuntu-latest - if: github.event_name == 'push' && github.ref == 'refs/heads/main' steps: - name: Checkout sources uses: actions/checkout@v6 - - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - - - name: Install cargo-tarpaulin - run: cargo install cargo-tarpaulin - - - name: Cache cargo registry - uses: actions/cache@v4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: ${{ runner.os }}-cargo-coverage-${{ hashFiles('**/Cargo.lock') }} + - name: Install Rust nightly toolchain + uses: dtolnay/rust-toolchain@nightly - - name: Generate code coverage - run: cargo tarpaulin --all-features --verbose --workspace --timeout 120 --out xml + - name: Install cargo-udeps + uses: taiki-e/install-action@cargo-udeps - - name: Upload to codecov.io - uses: codecov/codecov-action@v5 - with: - file: cobertura.xml - fail_ci_if_error: false + - name: Check for unused dependencies + run: cargo +nightly udeps --all-targets --all-features diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 0000000..84d4967 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,58 @@ +name: Coverage + +on: + push: + branches: [main] + pull_request: + branches: [main] + +env: + CARGO_TERM_COLOR: always + RUST_BACKTRACE: 1 + DATABASE_URL: sqlite://./test.db + SQLX_OFFLINE: true + +jobs: + coverage: + name: Code Coverage + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v6 + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + + - name: Install cargo-tarpaulin + run: cargo install cargo-tarpaulin + + - name: Cache cargo registry + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-coverage-${{ hashFiles('**/Cargo.lock') }} + + - name: Install cargo-binstall + uses: cargo-bins/cargo-binstall@v1.16.2 + + - name: Install sqlx-cli + run: cargo binstall sqlx-cli --locked --force + + - name: Set up database + run: sqlx database create + + - name: Run migrations + run: sqlx migrate run + + - name: Generate code coverage + run: cargo tarpaulin --all-features --verbose --workspace --timeout 120 --out xml -- --test-threads=1 + + - name: Upload to codecov.io + uses: codecov/codecov-action@v5 + with: + file: cobertura.xml + fail_ci_if_error: false + token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index 2ac3ae3..0000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Documentation - -on: - push: - branches: [main] - pull_request: - branches: [main] - -env: - CARGO_TERM_COLOR: always - -jobs: - docs: - name: Build and Test Documentation - runs-on: ubuntu-latest - steps: - - name: Checkout sources - uses: actions/checkout@v6 - - - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - - - name: Cache cargo registry - uses: actions/cache@v4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: ${{ runner.os }}-cargo-docs-${{ hashFiles('**/Cargo.lock') }} - - - name: Build documentation - run: | - cargo doc --features=migrate,tokio-comp,json --no-deps --document-private-items - env: - RUSTDOCFLAGS: "--cfg docsrs -Dwarnings" diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml new file mode 100644 index 0000000..54fc157 --- /dev/null +++ b/.github/workflows/issues.yml @@ -0,0 +1,18 @@ +name: Issue assignment + +on: + issues: + types: [opened] + +jobs: + auto-assign: + runs-on: ubuntu-latest + permissions: + issues: write + steps: + - name: "Auto-assign issue" + uses: pozil/auto-assign-issue@v2 + with: + assignees: geofmureithi + numOfAssignee: 1 + allowSelfAssign: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 76d1d8d..b88747a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,6 +15,8 @@ env: CARGO_TERM_COLOR: always jobs: + test: + uses: ./.github/workflows/ci.yaml validate: name: Validate Release runs-on: ubuntu-latest @@ -55,22 +57,10 @@ jobs: exit 1 fi - - name: Run tests - run: cargo test --all-features - - - name: Check format - run: cargo fmt --all -- --check - - - name: Run clippy - run: cargo clippy --all-targets --all-features - - - name: Build docs - run: cargo doc --all-features --no-deps - publish: name: Publish to crates.io runs-on: ubuntu-latest - needs: validate + needs: [test, validate] environment: release steps: - name: Checkout sources @@ -93,40 +83,3 @@ jobs: - name: Publish to crates.io run: cargo publish - - github-release: - name: Create GitHub Release - runs-on: ubuntu-latest - needs: [validate, publish] - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') - steps: - - name: Checkout sources - uses: actions/checkout@v6 - - - name: Generate changelog - id: changelog - run: | - if [[ -f CHANGELOG.md ]]; then - # Extract changelog for this version - VERSION="v${{ needs.validate.outputs.version }}" - sed -n "/^## \[$VERSION\]/,/^## \[/p" CHANGELOG.md | sed '$d' > release_notes.md - if [[ -s release_notes.md ]]; then - echo "Found changelog entry for $VERSION" - else - echo "## Changes" > release_notes.md - echo "See commit history for detailed changes." >> release_notes.md - fi - else - echo "## Changes" > release_notes.md - echo "See commit history for detailed changes." >> release_notes.md - fi - - - name: Create GitHub Release - uses: softprops/action-gh-release@v2 - with: - name: Release v${{ needs.validate.outputs.version }} - body_path: release_notes.md - draft: false - prerelease: ${{ contains(needs.validate.outputs.version, 'alpha') || contains(needs.validate.outputs.version, 'beta') || contains(needs.validate.outputs.version, 'rc') }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/rust-security.yml b/.github/workflows/rust-security.yml deleted file mode 100644 index f6eef6a..0000000 --- a/.github/workflows/rust-security.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Rust Security - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - schedule: - - cron: '0 3 * * 1' # Run weekly on Monday at 3 AM UTC - -env: - CARGO_TERM_COLOR: always - -jobs: - cargo-deny: - name: Cargo Deny - runs-on: ubuntu-latest - steps: - - name: Checkout sources - uses: actions/checkout@v6 - - - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - - - name: Install cargo-deny - uses: taiki-e/install-action@cargo-deny - - - name: Run cargo deny - run: cargo deny check - - unused-deps: - name: Unused Dependencies - runs-on: ubuntu-latest - steps: - - name: Checkout sources - uses: actions/checkout@v6 - - - name: Install Rust nightly toolchain - uses: dtolnay/rust-toolchain@nightly - - - name: Install cargo-udeps - uses: taiki-e/install-action@cargo-udeps - - - name: Check for unused dependencies - run: cargo +nightly udeps --all-targets --all-features diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 5a95a46..dd893c8 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -1,25 +1,24 @@ name: Security and Dependencies - on: schedule: - # Run security audit daily at 02:00 UTC - - cron: '0 2 * * *' + # Run security checks daily at 03:00 UTC + - cron: "0 3 * * *" push: - branches: [ main ] + branches: [main] paths: - - '**/Cargo.toml' - - '**/Cargo.lock' + - "**/Cargo.toml" + - "**/Cargo.lock" pull_request: paths: - - '**/Cargo.toml' - - '**/Cargo.lock' + - "**/Cargo.toml" + - "**/Cargo.lock" env: CARGO_TERM_COLOR: always jobs: - security-audit: - name: Security Audit + audit: + name: "cargo-audit" runs-on: ubuntu-latest steps: - name: Checkout sources @@ -32,26 +31,47 @@ jobs: uses: taiki-e/install-action@cargo-audit - name: Run cargo audit - run: cargo audit - - - name: Run cargo audit (JSON output) run: cargo audit --json > audit-results.json continue-on-error: true - name: Upload audit results - uses: actions/upload-artifact@v4 - if: always() + uses: actions/upload-artifact@v5 with: - name: security-audit-results + name: cargo-audit-results path: audit-results.json - dependency-review: - name: Dependency Review + vet: + name: cargo-vet + runs-on: ubuntu-latest + env: + CARGO_VET_VERSION: 0.10.1 + steps: + - uses: actions/checkout@master + - name: Install Rust + run: rustup update stable && rustup default stable + - uses: actions/cache@v4 + with: + path: ${{ runner.tool_cache }}/cargo-vet + key: cargo-vet-bin-${{ env.CARGO_VET_VERSION }} + - name: Add the tool cache directory to the search path + run: echo "${{ runner.tool_cache }}/cargo-vet/bin" >> $GITHUB_PATH + - name: Ensure that the tool cache is populated with the cargo-vet binary + run: cargo install --root ${{ runner.tool_cache }}/cargo-vet --version ${{ env.CARGO_VET_VERSION }} cargo-vet + - name: Invoke cargo-vet + run: cargo vet --locked + + cargo-deny: + name: cargo-deny runs-on: ubuntu-latest - if: github.event_name == 'pull_request' steps: - name: Checkout sources uses: actions/checkout@v6 - - name: Dependency Review - uses: actions/dependency-review-action@v3 + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + + - name: Install cargo-deny + uses: taiki-e/install-action@cargo-deny + + - name: Run cargo deny + run: cargo deny check diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 78a9f60..b5ed93f 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -2,7 +2,7 @@ name: Mark stale issues and pull requests on: schedule: - - cron: '0 0 * * *' # Run daily at midnight + - cron: '0 3 * * *' # Run daily at 3 AM UTC workflow_dispatch: jobs: @@ -35,4 +35,4 @@ jobs: stale-pr-label: 'stale' exempt-issue-labels: 'pinned,security,good first issue' exempt-pr-labels: 'pinned,security' - operations-per-run: 50 \ No newline at end of file + operations-per-run: 50 diff --git a/CHANGELOG.md b/CHANGELOG.md index cd35c0e..3e66512 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +- chore: streamline the workflow steps (#22) ### Added @@ -18,6 +19,59 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Moved from monorepo +## [0.7.4] - 2025-05-14 + +### 🐛 Bug Fixes + +- *(sqlite)* Handle empty ID list in fetch_next to yield None, that make Event::Idle never trigger (#571) +## [0.7.1] - 2025-04-23 + +### 🐛 Bug Fixes + +- Improve sqlite queries with transactions and single statement queries (#549) +## [0.7.0] - 2025-03-24 + +### 🐛 Bug Fixes + +- Reenqueue oprphaned before starting streaming (#507) +- Ease apalis-core default features (#538) + +### 💼 Other + +- Generic retry persist check (#498) +- Add associated types to the `Backend` trait (#516) +## [0.6.4] - 2024-12-03 + +### 🐛 Bug Fixes + +- Allow polling only when worker is ready (#472) +## [0.5.5] - 2024-07-03 + +### ⚙️ Miscellaneous Tasks + +- Fix typos (#346) +## [0.4.9] - 2024-01-03 + +### 🚀 Features + +- Configurable worker set as dead (#220) +## [0.4.7] - 2023-11-15 + +### 🐛 Bug Fixes + +- Allow cargo build --all-features (#204) +## [0.4.5] - 2023-10-08 + +### 💼 Other + +- Api to get migrations +## [0.4.4] - 2023-07-31 + +### 💼 Other + +- Sqlx to v0.7 +## [0.3.0] - 2022-06-05 + Previous Document: https://github.com/apalis-dev/apalis/blob/main/CHANGELOG.md diff --git a/Cargo.lock b/Cargo.lock index 7f7c741..48a7a33 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1122,9 +1122,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" dependencies = [ "value-bag", ] @@ -1147,9 +1147,9 @@ checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "mio" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", "wasi", diff --git a/src/lib.rs b/src/lib.rs index 8420da8..46f8ec7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -473,7 +473,9 @@ mod tests { #[tokio::test] async fn basic_worker() { const ITEMS: usize = 10; - let pool = SqlitePool::connect(":memory:").await.unwrap(); + let pool = SqlitePool::connect(std::env::var("DATABASE_URL").unwrap().as_str()) + .await + .unwrap(); SqliteStorage::setup(&pool).await.unwrap(); let mut backend = SqliteStorage::new(&pool); @@ -496,7 +498,7 @@ mod tests { Ok(()) } - let worker = WorkerBuilder::new("rango-tango-1") + let worker = WorkerBuilder::new("rango-tango-basic") .backend(backend) .build(send_reminder); worker.run().await.unwrap(); @@ -512,7 +514,10 @@ mod tests { let config = Config::new("rango-tango-queue") .with_poll_interval(lazy_strategy) .set_buffer_size(5); - let backend = SqliteStorage::new_with_callback(":memory:", &config); + let backend = SqliteStorage::new_with_callback( + std::env::var("DATABASE_URL").unwrap().as_str(), + &config, + ); let pool = backend.pool().clone(); SqliteStorage::setup(&pool).await.unwrap(); @@ -544,7 +549,7 @@ mod tests { Ok(()) } - let worker = WorkerBuilder::new("rango-tango-1") + let worker = WorkerBuilder::new("rango-tango-hooked") .backend(backend) .build(send_reminder); worker.run().await.unwrap(); @@ -564,7 +569,7 @@ mod tests { }); let mut sqlite = SqliteStorage::new_with_callback( - ":memory:", + std::env::var("DATABASE_URL").unwrap().as_str(), &Config::new("workflow-queue").with_poll_interval( StrategyBuilder::new() .apply(IntervalStrategy::new(Duration::from_millis(100))) @@ -576,7 +581,7 @@ mod tests { sqlite.push_start(100usize).await.unwrap(); - let worker = WorkerBuilder::new("rango-tango") + let worker = WorkerBuilder::new("rango-tango-workflow") .backend(sqlite) .on_event(|ctx, ev| { println!("On Event = {:?}", ev); diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml new file mode 100644 index 0000000..2772ccb --- /dev/null +++ b/supply-chain/audits.toml @@ -0,0 +1,4 @@ + +# cargo-vet audits file + +[audits] diff --git a/supply-chain/config.toml b/supply-chain/config.toml new file mode 100644 index 0000000..d9dbec3 --- /dev/null +++ b/supply-chain/config.toml @@ -0,0 +1,1172 @@ + +# cargo-vet config file + +[cargo-vet] +version = "0.10" + +[policy.apalis-sqlite] +audit-as-crates-io = true + +[[exemptions.allocator-api2]] +version = "0.2.21" +criteria = "safe-to-deploy" + +[[exemptions.android_system_properties]] +version = "0.1.5" +criteria = "safe-to-deploy" + +[[exemptions.apalis]] +version = "1.0.0-beta.2" +criteria = "safe-to-run" + +[[exemptions.apalis-core]] +version = "1.0.0-beta.2" +criteria = "safe-to-deploy" + +[[exemptions.apalis-sql]] +version = "1.0.0-beta.2" +criteria = "safe-to-deploy" + +[[exemptions.apalis-sqlite]] +version = "1.0.0-beta.3" +criteria = "safe-to-deploy" + +[[exemptions.apalis-workflow]] +version = "0.1.0-beta.2" +criteria = "safe-to-run" + +[[exemptions.async-channel]] +version = "1.9.0" +criteria = "safe-to-deploy" + +[[exemptions.async-channel]] +version = "2.5.0" +criteria = "safe-to-deploy" + +[[exemptions.async-executor]] +version = "1.13.3" +criteria = "safe-to-deploy" + +[[exemptions.async-global-executor]] +version = "2.4.1" +criteria = "safe-to-deploy" + +[[exemptions.async-io]] +version = "1.13.0" +criteria = "safe-to-deploy" + +[[exemptions.async-io]] +version = "2.6.0" +criteria = "safe-to-deploy" + +[[exemptions.async-lock]] +version = "2.8.0" +criteria = "safe-to-deploy" + +[[exemptions.async-lock]] +version = "3.4.1" +criteria = "safe-to-deploy" + +[[exemptions.async-std]] +version = "1.13.2" +criteria = "safe-to-deploy" + +[[exemptions.async-task]] +version = "4.7.1" +criteria = "safe-to-deploy" + +[[exemptions.atoi]] +version = "2.0.0" +criteria = "safe-to-deploy" + +[[exemptions.atomic-waker]] +version = "1.1.2" +criteria = "safe-to-deploy" + +[[exemptions.autocfg]] +version = "1.5.0" +criteria = "safe-to-deploy" + +[[exemptions.base64]] +version = "0.22.1" +criteria = "safe-to-deploy" + +[[exemptions.base64ct]] +version = "1.8.0" +criteria = "safe-to-deploy" + +[[exemptions.bitflags]] +version = "1.3.2" +criteria = "safe-to-deploy" + +[[exemptions.bitflags]] +version = "2.10.0" +criteria = "safe-to-deploy" + +[[exemptions.block-buffer]] +version = "0.10.4" +criteria = "safe-to-deploy" + +[[exemptions.blocking]] +version = "1.6.2" +criteria = "safe-to-deploy" + +[[exemptions.bumpalo]] +version = "3.19.0" +criteria = "safe-to-deploy" + +[[exemptions.byteorder]] +version = "1.5.0" +criteria = "safe-to-deploy" + +[[exemptions.bytes]] +version = "1.11.0" +criteria = "safe-to-deploy" + +[[exemptions.cc]] +version = "1.2.48" +criteria = "safe-to-deploy" + +[[exemptions.cfg-if]] +version = "1.0.4" +criteria = "safe-to-deploy" + +[[exemptions.chrono]] +version = "0.4.42" +criteria = "safe-to-deploy" + +[[exemptions.concurrent-queue]] +version = "2.5.0" +criteria = "safe-to-deploy" + +[[exemptions.const-oid]] +version = "0.9.6" +criteria = "safe-to-deploy" + +[[exemptions.core-foundation]] +version = "0.9.4" +criteria = "safe-to-deploy" + +[[exemptions.core-foundation-sys]] +version = "0.8.7" +criteria = "safe-to-deploy" + +[[exemptions.cpufeatures]] +version = "0.2.17" +criteria = "safe-to-deploy" + +[[exemptions.crc]] +version = "3.4.0" +criteria = "safe-to-deploy" + +[[exemptions.crc-catalog]] +version = "2.4.0" +criteria = "safe-to-deploy" + +[[exemptions.crossbeam-queue]] +version = "0.3.12" +criteria = "safe-to-deploy" + +[[exemptions.crossbeam-utils]] +version = "0.8.21" +criteria = "safe-to-deploy" + +[[exemptions.crypto-common]] +version = "0.1.7" +criteria = "safe-to-deploy" + +[[exemptions.der]] +version = "0.7.10" +criteria = "safe-to-deploy" + +[[exemptions.digest]] +version = "0.10.7" +criteria = "safe-to-deploy" + +[[exemptions.displaydoc]] +version = "0.2.5" +criteria = "safe-to-deploy" + +[[exemptions.dotenvy]] +version = "0.15.7" +criteria = "safe-to-deploy" + +[[exemptions.either]] +version = "1.15.0" +criteria = "safe-to-deploy" + +[[exemptions.equivalent]] +version = "1.0.2" +criteria = "safe-to-deploy" + +[[exemptions.errno]] +version = "0.3.14" +criteria = "safe-to-deploy" + +[[exemptions.etcetera]] +version = "0.8.0" +criteria = "safe-to-deploy" + +[[exemptions.event-listener]] +version = "2.5.3" +criteria = "safe-to-deploy" + +[[exemptions.event-listener]] +version = "5.4.1" +criteria = "safe-to-deploy" + +[[exemptions.event-listener-strategy]] +version = "0.5.4" +criteria = "safe-to-deploy" + +[[exemptions.fastrand]] +version = "1.9.0" +criteria = "safe-to-deploy" + +[[exemptions.fastrand]] +version = "2.3.0" +criteria = "safe-to-deploy" + +[[exemptions.find-msvc-tools]] +version = "0.1.5" +criteria = "safe-to-deploy" + +[[exemptions.fixedbitset]] +version = "0.5.7" +criteria = "safe-to-run" + +[[exemptions.flume]] +version = "0.11.1" +criteria = "safe-to-deploy" + +[[exemptions.foldhash]] +version = "0.1.5" +criteria = "safe-to-deploy" + +[[exemptions.foreign-types]] +version = "0.3.2" +criteria = "safe-to-deploy" + +[[exemptions.foreign-types-shared]] +version = "0.1.1" +criteria = "safe-to-deploy" + +[[exemptions.form_urlencoded]] +version = "1.2.2" +criteria = "safe-to-deploy" + +[[exemptions.futures]] +version = "0.3.31" +criteria = "safe-to-deploy" + +[[exemptions.futures-channel]] +version = "0.3.31" +criteria = "safe-to-deploy" + +[[exemptions.futures-core]] +version = "0.3.31" +criteria = "safe-to-deploy" + +[[exemptions.futures-executor]] +version = "0.3.31" +criteria = "safe-to-deploy" + +[[exemptions.futures-intrusive]] +version = "0.5.0" +criteria = "safe-to-deploy" + +[[exemptions.futures-io]] +version = "0.3.31" +criteria = "safe-to-deploy" + +[[exemptions.futures-lite]] +version = "1.13.0" +criteria = "safe-to-deploy" + +[[exemptions.futures-lite]] +version = "2.6.1" +criteria = "safe-to-deploy" + +[[exemptions.futures-macro]] +version = "0.3.31" +criteria = "safe-to-deploy" + +[[exemptions.futures-sink]] +version = "0.3.31" +criteria = "safe-to-deploy" + +[[exemptions.futures-task]] +version = "0.3.31" +criteria = "safe-to-deploy" + +[[exemptions.futures-timer]] +version = "3.0.3" +criteria = "safe-to-deploy" + +[[exemptions.futures-util]] +version = "0.3.31" +criteria = "safe-to-deploy" + +[[exemptions.generic-array]] +version = "0.14.7" +criteria = "safe-to-deploy" + +[[exemptions.getrandom]] +version = "0.2.16" +criteria = "safe-to-deploy" + +[[exemptions.getrandom]] +version = "0.3.4" +criteria = "safe-to-deploy" + +[[exemptions.gloo-timers]] +version = "0.3.0" +criteria = "safe-to-deploy" + +[[exemptions.hashbrown]] +version = "0.15.5" +criteria = "safe-to-deploy" + +[[exemptions.hashbrown]] +version = "0.16.1" +criteria = "safe-to-deploy" + +[[exemptions.hashlink]] +version = "0.10.0" +criteria = "safe-to-deploy" + +[[exemptions.heck]] +version = "0.5.0" +criteria = "safe-to-deploy" + +[[exemptions.hermit-abi]] +version = "0.3.9" +criteria = "safe-to-deploy" + +[[exemptions.hermit-abi]] +version = "0.5.2" +criteria = "safe-to-deploy" + +[[exemptions.hex]] +version = "0.4.3" +criteria = "safe-to-deploy" + +[[exemptions.hkdf]] +version = "0.12.4" +criteria = "safe-to-deploy" + +[[exemptions.hmac]] +version = "0.12.1" +criteria = "safe-to-deploy" + +[[exemptions.home]] +version = "0.5.12" +criteria = "safe-to-deploy" + +[[exemptions.iana-time-zone]] +version = "0.1.64" +criteria = "safe-to-deploy" + +[[exemptions.iana-time-zone-haiku]] +version = "0.1.2" +criteria = "safe-to-deploy" + +[[exemptions.icu_collections]] +version = "2.1.1" +criteria = "safe-to-deploy" + +[[exemptions.icu_locale_core]] +version = "2.1.1" +criteria = "safe-to-deploy" + +[[exemptions.icu_normalizer]] +version = "2.1.1" +criteria = "safe-to-deploy" + +[[exemptions.icu_normalizer_data]] +version = "2.1.1" +criteria = "safe-to-deploy" + +[[exemptions.icu_properties]] +version = "2.1.1" +criteria = "safe-to-deploy" + +[[exemptions.icu_properties_data]] +version = "2.1.1" +criteria = "safe-to-deploy" + +[[exemptions.icu_provider]] +version = "2.1.1" +criteria = "safe-to-deploy" + +[[exemptions.idna]] +version = "1.1.0" +criteria = "safe-to-deploy" + +[[exemptions.idna_adapter]] +version = "1.2.1" +criteria = "safe-to-deploy" + +[[exemptions.indexmap]] +version = "2.12.1" +criteria = "safe-to-deploy" + +[[exemptions.instant]] +version = "0.1.13" +criteria = "safe-to-deploy" + +[[exemptions.io-lifetimes]] +version = "1.0.11" +criteria = "safe-to-deploy" + +[[exemptions.itoa]] +version = "1.0.15" +criteria = "safe-to-deploy" + +[[exemptions.js-sys]] +version = "0.3.83" +criteria = "safe-to-deploy" + +[[exemptions.kv-log-macro]] +version = "1.0.7" +criteria = "safe-to-deploy" + +[[exemptions.lazy_static]] +version = "1.5.0" +criteria = "safe-to-deploy" + +[[exemptions.libc]] +version = "0.2.178" +criteria = "safe-to-deploy" + +[[exemptions.libm]] +version = "0.2.15" +criteria = "safe-to-deploy" + +[[exemptions.libredox]] +version = "0.1.10" +criteria = "safe-to-deploy" + +[[exemptions.libsqlite3-sys]] +version = "0.30.1" +criteria = "safe-to-deploy" + +[[exemptions.linux-raw-sys]] +version = "0.3.8" +criteria = "safe-to-deploy" + +[[exemptions.linux-raw-sys]] +version = "0.11.0" +criteria = "safe-to-deploy" + +[[exemptions.litemap]] +version = "0.8.1" +criteria = "safe-to-deploy" + +[[exemptions.lock_api]] +version = "0.4.14" +criteria = "safe-to-deploy" + +[[exemptions.log]] +version = "0.4.29" +criteria = "safe-to-deploy" + +[[exemptions.md-5]] +version = "0.10.6" +criteria = "safe-to-deploy" + +[[exemptions.memchr]] +version = "2.7.6" +criteria = "safe-to-deploy" + +[[exemptions.mio]] +version = "1.1.1" +criteria = "safe-to-deploy" + +[[exemptions.native-tls]] +version = "0.2.14" +criteria = "safe-to-deploy" + +[[exemptions.num-bigint-dig]] +version = "0.8.6" +criteria = "safe-to-deploy" + +[[exemptions.num-integer]] +version = "0.1.46" +criteria = "safe-to-deploy" + +[[exemptions.num-iter]] +version = "0.1.45" +criteria = "safe-to-deploy" + +[[exemptions.num-traits]] +version = "0.2.19" +criteria = "safe-to-deploy" + +[[exemptions.once_cell]] +version = "1.21.3" +criteria = "safe-to-deploy" + +[[exemptions.openssl]] +version = "0.10.75" +criteria = "safe-to-deploy" + +[[exemptions.openssl-macros]] +version = "0.1.1" +criteria = "safe-to-deploy" + +[[exemptions.openssl-probe]] +version = "0.1.6" +criteria = "safe-to-deploy" + +[[exemptions.openssl-sys]] +version = "0.9.111" +criteria = "safe-to-deploy" + +[[exemptions.parking]] +version = "2.2.1" +criteria = "safe-to-deploy" + +[[exemptions.parking_lot]] +version = "0.12.5" +criteria = "safe-to-deploy" + +[[exemptions.parking_lot_core]] +version = "0.9.12" +criteria = "safe-to-deploy" + +[[exemptions.pem-rfc7468]] +version = "0.7.0" +criteria = "safe-to-deploy" + +[[exemptions.percent-encoding]] +version = "2.3.2" +criteria = "safe-to-deploy" + +[[exemptions.petgraph]] +version = "0.8.3" +criteria = "safe-to-run" + +[[exemptions.pin-project]] +version = "1.1.10" +criteria = "safe-to-deploy" + +[[exemptions.pin-project-internal]] +version = "1.1.10" +criteria = "safe-to-deploy" + +[[exemptions.pin-project-lite]] +version = "0.2.16" +criteria = "safe-to-deploy" + +[[exemptions.pin-utils]] +version = "0.1.0" +criteria = "safe-to-deploy" + +[[exemptions.piper]] +version = "0.2.4" +criteria = "safe-to-deploy" + +[[exemptions.pkcs1]] +version = "0.7.5" +criteria = "safe-to-deploy" + +[[exemptions.pkcs8]] +version = "0.10.2" +criteria = "safe-to-deploy" + +[[exemptions.pkg-config]] +version = "0.3.32" +criteria = "safe-to-deploy" + +[[exemptions.polling]] +version = "2.8.0" +criteria = "safe-to-deploy" + +[[exemptions.polling]] +version = "3.11.0" +criteria = "safe-to-deploy" + +[[exemptions.potential_utf]] +version = "0.1.4" +criteria = "safe-to-deploy" + +[[exemptions.ppv-lite86]] +version = "0.2.21" +criteria = "safe-to-deploy" + +[[exemptions.proc-macro2]] +version = "1.0.103" +criteria = "safe-to-deploy" + +[[exemptions.quote]] +version = "1.0.42" +criteria = "safe-to-deploy" + +[[exemptions.r-efi]] +version = "5.3.0" +criteria = "safe-to-deploy" + +[[exemptions.rand]] +version = "0.8.5" +criteria = "safe-to-deploy" + +[[exemptions.rand]] +version = "0.9.2" +criteria = "safe-to-deploy" + +[[exemptions.rand_chacha]] +version = "0.3.1" +criteria = "safe-to-deploy" + +[[exemptions.rand_chacha]] +version = "0.9.0" +criteria = "safe-to-deploy" + +[[exemptions.rand_core]] +version = "0.6.4" +criteria = "safe-to-deploy" + +[[exemptions.rand_core]] +version = "0.9.3" +criteria = "safe-to-deploy" + +[[exemptions.redox_syscall]] +version = "0.5.18" +criteria = "safe-to-deploy" + +[[exemptions.ring]] +version = "0.17.14" +criteria = "safe-to-deploy" + +[[exemptions.rsa]] +version = "0.9.9" +criteria = "safe-to-deploy" + +[[exemptions.rustix]] +version = "0.37.28" +criteria = "safe-to-deploy" + +[[exemptions.rustix]] +version = "1.1.2" +criteria = "safe-to-deploy" + +[[exemptions.rustls]] +version = "0.23.35" +criteria = "safe-to-deploy" + +[[exemptions.rustls-pki-types]] +version = "1.13.1" +criteria = "safe-to-deploy" + +[[exemptions.rustls-webpki]] +version = "0.103.8" +criteria = "safe-to-deploy" + +[[exemptions.rustversion]] +version = "1.0.22" +criteria = "safe-to-deploy" + +[[exemptions.ryu]] +version = "1.0.20" +criteria = "safe-to-deploy" + +[[exemptions.schannel]] +version = "0.1.28" +criteria = "safe-to-deploy" + +[[exemptions.scopeguard]] +version = "1.2.0" +criteria = "safe-to-deploy" + +[[exemptions.security-framework]] +version = "2.11.1" +criteria = "safe-to-deploy" + +[[exemptions.security-framework-sys]] +version = "2.15.0" +criteria = "safe-to-deploy" + +[[exemptions.serde]] +version = "1.0.228" +criteria = "safe-to-deploy" + +[[exemptions.serde_core]] +version = "1.0.228" +criteria = "safe-to-deploy" + +[[exemptions.serde_derive]] +version = "1.0.228" +criteria = "safe-to-deploy" + +[[exemptions.serde_json]] +version = "1.0.145" +criteria = "safe-to-deploy" + +[[exemptions.serde_urlencoded]] +version = "0.7.1" +criteria = "safe-to-deploy" + +[[exemptions.sha1]] +version = "0.10.6" +criteria = "safe-to-deploy" + +[[exemptions.sha2]] +version = "0.10.9" +criteria = "safe-to-deploy" + +[[exemptions.shlex]] +version = "1.3.0" +criteria = "safe-to-deploy" + +[[exemptions.signature]] +version = "2.2.0" +criteria = "safe-to-deploy" + +[[exemptions.slab]] +version = "0.4.11" +criteria = "safe-to-deploy" + +[[exemptions.smallvec]] +version = "1.15.1" +criteria = "safe-to-deploy" + +[[exemptions.socket2]] +version = "0.4.10" +criteria = "safe-to-deploy" + +[[exemptions.socket2]] +version = "0.6.1" +criteria = "safe-to-deploy" + +[[exemptions.spin]] +version = "0.9.8" +criteria = "safe-to-deploy" + +[[exemptions.spki]] +version = "0.7.3" +criteria = "safe-to-deploy" + +[[exemptions.sqlx]] +version = "0.8.6" +criteria = "safe-to-deploy" + +[[exemptions.sqlx-core]] +version = "0.8.6" +criteria = "safe-to-deploy" + +[[exemptions.sqlx-macros]] +version = "0.8.6" +criteria = "safe-to-deploy" + +[[exemptions.sqlx-macros-core]] +version = "0.8.6" +criteria = "safe-to-deploy" + +[[exemptions.sqlx-mysql]] +version = "0.8.6" +criteria = "safe-to-deploy" + +[[exemptions.sqlx-postgres]] +version = "0.8.6" +criteria = "safe-to-deploy" + +[[exemptions.sqlx-sqlite]] +version = "0.8.6" +criteria = "safe-to-deploy" + +[[exemptions.stable_deref_trait]] +version = "1.2.1" +criteria = "safe-to-deploy" + +[[exemptions.stringprep]] +version = "0.1.5" +criteria = "safe-to-deploy" + +[[exemptions.subtle]] +version = "2.6.1" +criteria = "safe-to-deploy" + +[[exemptions.syn]] +version = "2.0.111" +criteria = "safe-to-deploy" + +[[exemptions.sync_wrapper]] +version = "1.0.2" +criteria = "safe-to-run" + +[[exemptions.synstructure]] +version = "0.13.2" +criteria = "safe-to-deploy" + +[[exemptions.tempfile]] +version = "3.23.0" +criteria = "safe-to-deploy" + +[[exemptions.thiserror]] +version = "2.0.17" +criteria = "safe-to-deploy" + +[[exemptions.thiserror-impl]] +version = "2.0.17" +criteria = "safe-to-deploy" + +[[exemptions.tinystr]] +version = "0.8.2" +criteria = "safe-to-deploy" + +[[exemptions.tinyvec]] +version = "1.10.0" +criteria = "safe-to-deploy" + +[[exemptions.tinyvec_macros]] +version = "0.1.1" +criteria = "safe-to-deploy" + +[[exemptions.tokio]] +version = "1.48.0" +criteria = "safe-to-deploy" + +[[exemptions.tokio-macros]] +version = "2.6.0" +criteria = "safe-to-deploy" + +[[exemptions.tokio-stream]] +version = "0.1.17" +criteria = "safe-to-deploy" + +[[exemptions.tokio-util]] +version = "0.7.17" +criteria = "safe-to-run" + +[[exemptions.tower]] +version = "0.5.2" +criteria = "safe-to-run" + +[[exemptions.tower-layer]] +version = "0.3.3" +criteria = "safe-to-deploy" + +[[exemptions.tower-service]] +version = "0.3.3" +criteria = "safe-to-deploy" + +[[exemptions.tracing]] +version = "0.1.43" +criteria = "safe-to-deploy" + +[[exemptions.tracing-attributes]] +version = "0.1.31" +criteria = "safe-to-deploy" + +[[exemptions.tracing-core]] +version = "0.1.35" +criteria = "safe-to-deploy" + +[[exemptions.typenum]] +version = "1.19.0" +criteria = "safe-to-deploy" + +[[exemptions.ulid]] +version = "1.2.1" +criteria = "safe-to-deploy" + +[[exemptions.unicode-bidi]] +version = "0.3.18" +criteria = "safe-to-deploy" + +[[exemptions.unicode-ident]] +version = "1.0.22" +criteria = "safe-to-deploy" + +[[exemptions.unicode-normalization]] +version = "0.1.25" +criteria = "safe-to-deploy" + +[[exemptions.unicode-properties]] +version = "0.1.4" +criteria = "safe-to-deploy" + +[[exemptions.untrusted]] +version = "0.9.0" +criteria = "safe-to-deploy" + +[[exemptions.url]] +version = "2.5.7" +criteria = "safe-to-deploy" + +[[exemptions.utf8_iter]] +version = "1.0.4" +criteria = "safe-to-deploy" + +[[exemptions.value-bag]] +version = "1.12.0" +criteria = "safe-to-deploy" + +[[exemptions.vcpkg]] +version = "0.2.15" +criteria = "safe-to-deploy" + +[[exemptions.version_check]] +version = "0.9.5" +criteria = "safe-to-deploy" + +[[exemptions.waker-fn]] +version = "1.2.0" +criteria = "safe-to-deploy" + +[[exemptions.wasi]] +version = "0.11.1+wasi-snapshot-preview1" +criteria = "safe-to-deploy" + +[[exemptions.wasip2]] +version = "1.0.1+wasi-0.2.4" +criteria = "safe-to-deploy" + +[[exemptions.wasite]] +version = "0.1.0" +criteria = "safe-to-deploy" + +[[exemptions.wasm-bindgen]] +version = "0.2.106" +criteria = "safe-to-deploy" + +[[exemptions.wasm-bindgen-futures]] +version = "0.4.56" +criteria = "safe-to-deploy" + +[[exemptions.wasm-bindgen-macro]] +version = "0.2.106" +criteria = "safe-to-deploy" + +[[exemptions.wasm-bindgen-macro-support]] +version = "0.2.106" +criteria = "safe-to-deploy" + +[[exemptions.wasm-bindgen-shared]] +version = "0.2.106" +criteria = "safe-to-deploy" + +[[exemptions.web-sys]] +version = "0.3.83" +criteria = "safe-to-deploy" + +[[exemptions.web-time]] +version = "1.1.0" +criteria = "safe-to-deploy" + +[[exemptions.webpki-roots]] +version = "0.26.11" +criteria = "safe-to-deploy" + +[[exemptions.webpki-roots]] +version = "1.0.4" +criteria = "safe-to-deploy" + +[[exemptions.whoami]] +version = "1.6.1" +criteria = "safe-to-deploy" + +[[exemptions.winapi]] +version = "0.3.9" +criteria = "safe-to-deploy" + +[[exemptions.winapi-i686-pc-windows-gnu]] +version = "0.4.0" +criteria = "safe-to-deploy" + +[[exemptions.winapi-x86_64-pc-windows-gnu]] +version = "0.4.0" +criteria = "safe-to-deploy" + +[[exemptions.windows-core]] +version = "0.62.2" +criteria = "safe-to-deploy" + +[[exemptions.windows-implement]] +version = "0.60.2" +criteria = "safe-to-deploy" + +[[exemptions.windows-interface]] +version = "0.59.3" +criteria = "safe-to-deploy" + +[[exemptions.windows-link]] +version = "0.2.1" +criteria = "safe-to-deploy" + +[[exemptions.windows-result]] +version = "0.4.1" +criteria = "safe-to-deploy" + +[[exemptions.windows-strings]] +version = "0.5.1" +criteria = "safe-to-deploy" + +[[exemptions.windows-sys]] +version = "0.48.0" +criteria = "safe-to-deploy" + +[[exemptions.windows-sys]] +version = "0.52.0" +criteria = "safe-to-deploy" + +[[exemptions.windows-sys]] +version = "0.60.2" +criteria = "safe-to-deploy" + +[[exemptions.windows-sys]] +version = "0.61.2" +criteria = "safe-to-deploy" + +[[exemptions.windows-targets]] +version = "0.48.5" +criteria = "safe-to-deploy" + +[[exemptions.windows-targets]] +version = "0.52.6" +criteria = "safe-to-deploy" + +[[exemptions.windows-targets]] +version = "0.53.5" +criteria = "safe-to-deploy" + +[[exemptions.windows_aarch64_gnullvm]] +version = "0.48.5" +criteria = "safe-to-deploy" + +[[exemptions.windows_aarch64_gnullvm]] +version = "0.52.6" +criteria = "safe-to-deploy" + +[[exemptions.windows_aarch64_gnullvm]] +version = "0.53.1" +criteria = "safe-to-deploy" + +[[exemptions.windows_aarch64_msvc]] +version = "0.48.5" +criteria = "safe-to-deploy" + +[[exemptions.windows_aarch64_msvc]] +version = "0.52.6" +criteria = "safe-to-deploy" + +[[exemptions.windows_aarch64_msvc]] +version = "0.53.1" +criteria = "safe-to-deploy" + +[[exemptions.windows_i686_gnu]] +version = "0.48.5" +criteria = "safe-to-deploy" + +[[exemptions.windows_i686_gnu]] +version = "0.52.6" +criteria = "safe-to-deploy" + +[[exemptions.windows_i686_gnu]] +version = "0.53.1" +criteria = "safe-to-deploy" + +[[exemptions.windows_i686_gnullvm]] +version = "0.52.6" +criteria = "safe-to-deploy" + +[[exemptions.windows_i686_gnullvm]] +version = "0.53.1" +criteria = "safe-to-deploy" + +[[exemptions.windows_i686_msvc]] +version = "0.48.5" +criteria = "safe-to-deploy" + +[[exemptions.windows_i686_msvc]] +version = "0.52.6" +criteria = "safe-to-deploy" + +[[exemptions.windows_i686_msvc]] +version = "0.53.1" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_gnu]] +version = "0.48.5" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_gnu]] +version = "0.52.6" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_gnu]] +version = "0.53.1" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_gnullvm]] +version = "0.48.5" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_gnullvm]] +version = "0.52.6" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_gnullvm]] +version = "0.53.1" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_msvc]] +version = "0.48.5" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_msvc]] +version = "0.52.6" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_msvc]] +version = "0.53.1" +criteria = "safe-to-deploy" + +[[exemptions.wit-bindgen]] +version = "0.46.0" +criteria = "safe-to-deploy" + +[[exemptions.writeable]] +version = "0.6.2" +criteria = "safe-to-deploy" + +[[exemptions.yoke]] +version = "0.8.1" +criteria = "safe-to-deploy" + +[[exemptions.yoke-derive]] +version = "0.8.1" +criteria = "safe-to-deploy" + +[[exemptions.zerocopy]] +version = "0.8.31" +criteria = "safe-to-deploy" + +[[exemptions.zerocopy-derive]] +version = "0.8.31" +criteria = "safe-to-deploy" + +[[exemptions.zerofrom]] +version = "0.1.6" +criteria = "safe-to-deploy" + +[[exemptions.zerofrom-derive]] +version = "0.1.6" +criteria = "safe-to-deploy" + +[[exemptions.zeroize]] +version = "1.8.2" +criteria = "safe-to-deploy" + +[[exemptions.zerotrie]] +version = "0.2.3" +criteria = "safe-to-deploy" + +[[exemptions.zerovec]] +version = "0.11.5" +criteria = "safe-to-deploy" + +[[exemptions.zerovec-derive]] +version = "0.11.2" +criteria = "safe-to-deploy" diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock new file mode 100644 index 0000000..0c397a4 --- /dev/null +++ b/supply-chain/imports.lock @@ -0,0 +1,2 @@ + +# cargo-vet imports lock