From 1c486b2c73cb2ae896dd77e0f0ec060a47f15cd7 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:10:07 -0700 Subject: [PATCH 01/44] Add one codecov --- codecov.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 codecov.yml diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..7a4789e --- /dev/null +++ b/codecov.yml @@ -0,0 +1,11 @@ +ignore: + - "libsqlite3-sys/bindgen-bindings" + - "libsqlite3-sys/sqlite3" +coverage: + status: + project: + default: + informational: true + patch: + default: + informational: true From 1b8c3056e6a015949896ca20815719930ec48051 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:21:57 -0700 Subject: [PATCH 02/44] Merge another codecov --- codecov.yml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/codecov.yml b/codecov.yml index 7a4789e..7b19db2 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,11 +1,17 @@ -ignore: - - "libsqlite3-sys/bindgen-bindings" - - "libsqlite3-sys/sqlite3" coverage: + range: 70..100 + round: down + precision: 2 status: project: default: - informational: true - patch: - default: - informational: true + threshold: 2% + +# Tests aren't important for coverage +ignore: + - "tests" + +# Make less noisy comments +comment: + layout: "files" + require_changes: yes From 7f34f791c0a5c3f2c2ce2ed7e43ff12ed123c62c Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:22:18 -0700 Subject: [PATCH 03/44] Merge another codecov --- codecov.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/codecov.yml b/codecov.yml index 7b19db2..7864a9e 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,13 +1,14 @@ +# Hold ourselves to a high bar coverage: - range: 70..100 + range: 85..100 round: down precision: 2 status: project: default: - threshold: 2% + threshold: 1% -# Tests aren't important for coverage +# Test files aren't important for coverage ignore: - "tests" From 510b69615dd47cb63584976512cb95b265cb22bf Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:23:03 -0700 Subject: [PATCH 04/44] Merge another codecov --- codecov.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codecov.yml b/codecov.yml index 7864a9e..1e0fb06 100644 --- a/codecov.yml +++ b/codecov.yml @@ -2,7 +2,7 @@ coverage: range: 85..100 round: down - precision: 2 + precision: 1 status: project: default: From b32648cabb5862b0814ab0abd6d5c81498758270 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:24:02 -0700 Subject: [PATCH 05/44] Merge another codecov --- codecov.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/codecov.yml b/codecov.yml index 1e0fb06..ff4f571 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,18 +1,21 @@ -# Hold ourselves to a high bar +# ref: https://docs.codecov.com/docs/codecovyml-reference coverage: + # Hold ourselves to a high bar range: 85..100 round: down precision: 1 status: + # ref: https://docs.codecov.com/docs/commit-status project: default: + # Avoid false negatives threshold: 1% # Test files aren't important for coverage ignore: - "tests" -# Make less noisy comments +# Make comments less noisy comment: layout: "files" require_changes: yes From 126c9a3a35d5ac428c22883d36f0aac69d2e20e9 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:25:23 -0700 Subject: [PATCH 06/44] Place codecov config under .github --- codecov.yml => github/codecov.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename codecov.yml => github/codecov.yml (100%) diff --git a/codecov.yml b/github/codecov.yml similarity index 100% rename from codecov.yml rename to github/codecov.yml From 11027d3f75ced20536b99225edccf34f286dd4e0 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:27:27 -0700 Subject: [PATCH 07/44] Add (only) ASAN workflow --- github/workflows/asan.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 github/workflows/asan.yml diff --git a/github/workflows/asan.yml b/github/workflows/asan.yml new file mode 100644 index 0000000..08afae9 --- /dev/null +++ b/github/workflows/asan.yml @@ -0,0 +1,24 @@ +on: + push: + branches: [main] + pull_request: +name: Address sanitizer +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + override: true + - uses: actions/checkout@v2 + - name: cargo test -Zsanitizer=address + uses: actions-rs/cargo@v1 + with: + command: test + # only --lib --tests b/c of https://github.com/rust-lang/rust/issues/53945 + args: --lib --tests --all-features --target x86_64-unknown-linux-gnu + env: + ASAN_OPTIONS: "detect_odr_violation=0:detect_leaks=0" + RUSTFLAGS: "-Z sanitizer=address" From bbdbd96ec709e3cc83a081cf821fdfffce85ecb5 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:27:38 -0700 Subject: [PATCH 08/44] Add first coverage workflow --- github/workflows/coverage.yml | 66 +++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 github/workflows/coverage.yml diff --git a/github/workflows/coverage.yml b/github/workflows/coverage.yml new file mode 100644 index 0000000..6effa8c --- /dev/null +++ b/github/workflows/coverage.yml @@ -0,0 +1,66 @@ +on: + push: + branches: [master] + paths-ignore: + - 'build_doc.sh' + - 'check.sh' + - 'run_ci_tests.sh' + - 'start_sshd.sh' + - 'stop_sshd.sh' + pull_request: + paths-ignore: + - 'build_doc.sh' + - 'check.sh' + - 'run_ci_tests.sh' + - 'start_sshd.sh' + - 'stop_sshd.sh' +name: coverage +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + components: llvm-tools-preview + - name: Install cargo-llvm-cov + uses: taiki-e/install-action@cargo-llvm-cov + - run: | + # Wait for startup of openssh-server + timeout 15 ./wait_for_sshd_start_up.sh + chmod 600 .test-key + mkdir /tmp/openssh-rs + ssh -i .test-key -v -p 2222 -l test-user localhost -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile=/tmp/openssh-rs/known_hosts whoami + name: Test ssh connectivity + - run: | + eval $(ssh-agent) + echo "SSH_AUTH_SOCK=$SSH_AUTH_SOCK" >> $GITHUB_ENV + echo "SSH_AGENT_PID=$SSH_AGENT_PID" >> $GITHUB_ENV + cat .test-key | ssh-add - + name: Set up ssh-agent + - name: Generate code coverage + run: cargo llvm-cov --all-features --lcov --output-path lcov.info + env: + # makes all the ignored tests not ignored + RUSTFLAGS: --cfg=ci + # we cannot use 127.0.0.1 (the default here) + # since we are running from a different container + TEST_HOST: ssh://test-user@localhost:2222 + XDG_RUNTIME_DIR: /tmp + - name: Upload to codecov.io + uses: codecov/codecov-action@v2 + with: + fail_ci_if_error: true + services: + openssh: + image: linuxserver/openssh-server:amd64-latest + ports: + - 2222:2222 + env: + USER_NAME: test-user + PUBLIC_KEY: |- + ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGzHvK2pKtSlZXP9tPYOOBb/xn0IiC9iLMS355AYUPC7 + DOCKER_MODS: linuxserver/mods:openssh-server-ssh-tunnel From fe6ba380bd39c665e9d9a2153b2dc5287fe25cae Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:29:55 -0700 Subject: [PATCH 09/44] Merge another coverage.yml --- github/workflows/coverage.yml | 42 ----------------------------------- 1 file changed, 42 deletions(-) diff --git a/github/workflows/coverage.yml b/github/workflows/coverage.yml index 6effa8c..f07bde1 100644 --- a/github/workflows/coverage.yml +++ b/github/workflows/coverage.yml @@ -1,19 +1,7 @@ on: push: branches: [master] - paths-ignore: - - 'build_doc.sh' - - 'check.sh' - - 'run_ci_tests.sh' - - 'start_sshd.sh' - - 'stop_sshd.sh' pull_request: - paths-ignore: - - 'build_doc.sh' - - 'check.sh' - - 'run_ci_tests.sh' - - 'start_sshd.sh' - - 'stop_sshd.sh' name: coverage jobs: test: @@ -28,39 +16,9 @@ jobs: components: llvm-tools-preview - name: Install cargo-llvm-cov uses: taiki-e/install-action@cargo-llvm-cov - - run: | - # Wait for startup of openssh-server - timeout 15 ./wait_for_sshd_start_up.sh - chmod 600 .test-key - mkdir /tmp/openssh-rs - ssh -i .test-key -v -p 2222 -l test-user localhost -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile=/tmp/openssh-rs/known_hosts whoami - name: Test ssh connectivity - - run: | - eval $(ssh-agent) - echo "SSH_AUTH_SOCK=$SSH_AUTH_SOCK" >> $GITHUB_ENV - echo "SSH_AGENT_PID=$SSH_AGENT_PID" >> $GITHUB_ENV - cat .test-key | ssh-add - - name: Set up ssh-agent - name: Generate code coverage run: cargo llvm-cov --all-features --lcov --output-path lcov.info - env: - # makes all the ignored tests not ignored - RUSTFLAGS: --cfg=ci - # we cannot use 127.0.0.1 (the default here) - # since we are running from a different container - TEST_HOST: ssh://test-user@localhost:2222 - XDG_RUNTIME_DIR: /tmp - name: Upload to codecov.io uses: codecov/codecov-action@v2 with: fail_ci_if_error: true - services: - openssh: - image: linuxserver/openssh-server:amd64-latest - ports: - - 2222:2222 - env: - USER_NAME: test-user - PUBLIC_KEY: |- - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGzHvK2pKtSlZXP9tPYOOBb/xn0IiC9iLMS355AYUPC7 - DOCKER_MODS: linuxserver/mods:openssh-server-ssh-tunnel From 1fe2a6d008275efaff56200b8fba5ecc252aa970 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:31:17 -0700 Subject: [PATCH 10/44] Merge another coverage.yml --- github/workflows/coverage.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/github/workflows/coverage.yml b/github/workflows/coverage.yml index f07bde1..677ad58 100644 --- a/github/workflows/coverage.yml +++ b/github/workflows/coverage.yml @@ -8,6 +8,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + with: + submodules: true - uses: actions-rs/toolchain@v1 with: profile: minimal From 225ad3978688c093f4670ec04352d465076f39d3 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:31:58 -0700 Subject: [PATCH 11/44] Add first features workflow --- github/workflows/features.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 github/workflows/features.yml diff --git a/github/workflows/features.yml b/github/workflows/features.yml new file mode 100644 index 0000000..2d8c1fe --- /dev/null +++ b/github/workflows/features.yml @@ -0,0 +1,27 @@ +on: + push: + branches: [master] + pull_request: +name: cargo hack +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install cargo-hack + uses: actions-rs/install@v0.1 + with: + crate: cargo-hack + version: latest + use-tool-cache: true + - name: cargo hack + uses: actions-rs/cargo@v1 + with: + command: hack + args: --feature-powerset --exclude-no-default-features check From 922692a2977a4c93786a0ecbe11fc01501361aad Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:32:32 -0700 Subject: [PATCH 12/44] Merge another features workflow --- github/workflows/features.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github/workflows/features.yml b/github/workflows/features.yml index 2d8c1fe..f6acf15 100644 --- a/github/workflows/features.yml +++ b/github/workflows/features.yml @@ -24,4 +24,4 @@ jobs: uses: actions-rs/cargo@v1 with: command: hack - args: --feature-powerset --exclude-no-default-features check + args: --feature-powerset check From 043eb24611b5272a04082d63566837a9efbc71e9 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:32:58 -0700 Subject: [PATCH 13/44] Merge another features workflow --- github/workflows/features.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github/workflows/features.yml b/github/workflows/features.yml index f6acf15..d9ca4c0 100644 --- a/github/workflows/features.yml +++ b/github/workflows/features.yml @@ -24,4 +24,4 @@ jobs: uses: actions-rs/cargo@v1 with: command: hack - args: --feature-powerset check + args: --feature-powerset check --all-targets From d8c8a99dea99b437eefc56e5b873a863a4446c51 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:33:48 -0700 Subject: [PATCH 14/44] Merge another features workflow --- github/workflows/features.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/github/workflows/features.yml b/github/workflows/features.yml index d9ca4c0..c2c3920 100644 --- a/github/workflows/features.yml +++ b/github/workflows/features.yml @@ -15,11 +15,7 @@ jobs: with: submodules: true - name: Install cargo-hack - uses: actions-rs/install@v0.1 - with: - crate: cargo-hack - version: latest - use-tool-cache: true + uses: taiki-e/install-action@cargo-hack - name: cargo hack uses: actions-rs/cargo@v1 with: From f67cad0f915deebcdf7ceb89ffdd0925bc910153 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:34:34 -0700 Subject: [PATCH 15/44] Add (only) loom workflow --- github/workflows/loom.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 github/workflows/loom.yml diff --git a/github/workflows/loom.yml b/github/workflows/loom.yml new file mode 100644 index 0000000..9246b40 --- /dev/null +++ b/github/workflows/loom.yml @@ -0,0 +1,22 @@ +on: + push: + branches: [main] + pull_request: +name: Loom +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + profile: minimal + - uses: actions/checkout@v2 + - name: cargo test --test loom + uses: actions-rs/cargo@v1 + with: + command: test + args: --release --test loom + env: + LOOM_MAX_PREEMPTIONS: 2 + RUSTFLAGS: "--cfg loom" From bf66d94f15b7288f417cfae0eab6542e2e100daf Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:34:43 -0700 Subject: [PATCH 16/44] Add (only) LSAN workflow --- github/workflows/lsan.yml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 github/workflows/lsan.yml diff --git a/github/workflows/lsan.yml b/github/workflows/lsan.yml new file mode 100644 index 0000000..69ce0df --- /dev/null +++ b/github/workflows/lsan.yml @@ -0,0 +1,32 @@ +on: + push: + branches: [main] + pull_request: +name: Leak sanitizer +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + override: true + - uses: actions/checkout@v2 + - run: | + # to get the symbolizer for debug symbol resolution + sudo apt install llvm + # to fix buggy leak analyzer: + # https://github.com/japaric/rust-san#unrealiable-leaksanitizer + sed -i '/\[features\]/i [profile.dev]' Cargo.toml + sed -i '/profile.dev/a opt-level = 1' Cargo.toml + cat Cargo.toml + name: Enable debug symbols + - name: cargo test -Zsanitizer=leak + uses: actions-rs/cargo@v1 + with: + command: test + args: --all-features --target x86_64-unknown-linux-gnu + env: + RUSTFLAGS: "-Z sanitizer=leak" + LSAN_OPTIONS: "suppressions=lsan-suppressions.txt" From c65a7c4f87be9ddea9e34eb254f3b6d5933db4ef Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:35:09 -0700 Subject: [PATCH 17/44] Add first minial workflow --- github/workflows/minimal.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 github/workflows/minimal.yml diff --git a/github/workflows/minimal.yml b/github/workflows/minimal.yml new file mode 100644 index 0000000..b4cf571 --- /dev/null +++ b/github/workflows/minimal.yml @@ -0,0 +1,31 @@ +on: + push: + branches: [master] + pull_request: +name: With dependencies at minimal versions +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + - uses: actions/checkout@v2 + with: + submodules: true + - name: cargo update -Zminimal-versions + uses: actions-rs/cargo@v1 + with: + command: update + toolchain: nightly + args: -Zminimal-versions + - name: cargo test + uses: actions-rs/cargo@v1 + with: + command: test + args: --all-features --all-targets From 77079d77cb4aa288bda667917667cfaee87bd361 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:36:29 -0700 Subject: [PATCH 18/44] Add (only) miri workflow --- github/workflows/miri.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 github/workflows/miri.yml diff --git a/github/workflows/miri.yml b/github/workflows/miri.yml new file mode 100644 index 0000000..e79ab42 --- /dev/null +++ b/github/workflows/miri.yml @@ -0,0 +1,25 @@ +on: + push: + branches: [main] + pull_request: +name: Miri +jobs: + test: + runs-on: ubuntu-latest + steps: + - run: | + echo "NIGHTLY=nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/miri)" >> $GITHUB_ENV + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ env.NIGHTLY }} + override: true + components: miri + - uses: actions/checkout@v2 + - name: cargo miri test + uses: actions-rs/cargo@v1 + with: + command: miri + args: test + env: + MIRIFLAGS: "-Zmiri-tag-raw-pointers" From 9b48ae326374d8d8609a65649026fa09f8a68c7f Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:36:43 -0700 Subject: [PATCH 19/44] Add first msrv workflow --- github/workflows/msrv.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 github/workflows/msrv.yml diff --git a/github/workflows/msrv.yml b/github/workflows/msrv.yml new file mode 100644 index 0000000..aebe1f8 --- /dev/null +++ b/github/workflows/msrv.yml @@ -0,0 +1,19 @@ +on: + push: + branches: [master] + pull_request: +name: Minimum Supported Rust Version +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: 1.48.0 # nom 7 + override: true + - uses: actions/checkout@v2 + - name: cargo +1.48.0 check + uses: actions-rs/cargo@v1 + with: + command: check From b60aa5589ac569446a5128453983dee9bb504666 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:37:03 -0700 Subject: [PATCH 20/44] Merge another msrv workflow --- github/workflows/msrv.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/github/workflows/msrv.yml b/github/workflows/msrv.yml index aebe1f8..ee1b2bf 100644 --- a/github/workflows/msrv.yml +++ b/github/workflows/msrv.yml @@ -10,10 +10,10 @@ jobs: - uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: 1.48.0 # nom 7 + toolchain: 1.56.0 # 2021 edition requires 1.56 override: true - uses: actions/checkout@v2 - - name: cargo +1.48.0 check + - name: cargo +1.56.0 check uses: actions-rs/cargo@v1 with: command: check From 1113c895d862ce860c82596cac973ad075ef1ac6 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:37:31 -0700 Subject: [PATCH 21/44] Merge another msrv workflow --- github/workflows/msrv.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/github/workflows/msrv.yml b/github/workflows/msrv.yml index ee1b2bf..4a3a92e 100644 --- a/github/workflows/msrv.yml +++ b/github/workflows/msrv.yml @@ -10,10 +10,10 @@ jobs: - uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: 1.56.0 # 2021 edition requires 1.56 + toolchain: 1.56.1 # 2021 edition requires 1.56 override: true - uses: actions/checkout@v2 - - name: cargo +1.56.0 check + - name: cargo +1.56.1 check uses: actions-rs/cargo@v1 with: command: check From e6ef8e3166b93c22af938872a547e104f2601587 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:38:01 -0700 Subject: [PATCH 22/44] Merge another msrv workflow --- github/workflows/msrv.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/github/workflows/msrv.yml b/github/workflows/msrv.yml index 4a3a92e..ac0dc41 100644 --- a/github/workflows/msrv.yml +++ b/github/workflows/msrv.yml @@ -13,6 +13,8 @@ jobs: toolchain: 1.56.1 # 2021 edition requires 1.56 override: true - uses: actions/checkout@v2 + with: + submodules: true - name: cargo +1.56.1 check uses: actions-rs/cargo@v1 with: From c74ee968a1aafec9e839dee907f0137e6356feff Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:38:56 -0700 Subject: [PATCH 23/44] Add (only) no-std workflow --- github/workflows/nostd.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 github/workflows/nostd.yml diff --git a/github/workflows/nostd.yml b/github/workflows/nostd.yml new file mode 100644 index 0000000..433e11d --- /dev/null +++ b/github/workflows/nostd.yml @@ -0,0 +1,24 @@ +on: + push: + branches: [main] + pull_request: +name: no-std +jobs: + nostd: + runs-on: ubuntu-latest + name: ${{ matrix.target }} + strategy: + matrix: + target: [thumbv7m-none-eabi, aarch64-unknown-none] + steps: + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + target: ${{ matrix.target }} + - uses: actions/checkout@v2 + - name: cargo check + uses: actions-rs/cargo@v1 + with: + command: check + args: --target ${{ matrix.target }} --no-default-features From 92379c862376607f7caca04e470c09671922f238 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:39:09 -0700 Subject: [PATCH 24/44] Add first os-check workflow --- github/workflows/os-check.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 github/workflows/os-check.yml diff --git a/github/workflows/os-check.yml b/github/workflows/os-check.yml new file mode 100644 index 0000000..bbcb475 --- /dev/null +++ b/github/workflows/os-check.yml @@ -0,0 +1,24 @@ +on: + push: + branches: [master] + pull_request: +name: cargo check +jobs: + os-check: + runs-on: ${{ matrix.os }} + name: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [macos-latest, windows-latest] + steps: + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + - uses: actions/checkout@v2 + - name: cargo check + uses: actions-rs/cargo@v1 + with: + command: check + args: --all-features --all-targets From 05dd4680bf90603c70cb7cd406299675441fe59d Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:39:59 -0700 Subject: [PATCH 25/44] Merge another os-check workflow --- github/workflows/os-check.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/github/workflows/os-check.yml b/github/workflows/os-check.yml index bbcb475..285499b 100644 --- a/github/workflows/os-check.yml +++ b/github/workflows/os-check.yml @@ -2,7 +2,7 @@ on: push: branches: [master] pull_request: -name: cargo check +name: os check jobs: os-check: runs-on: ${{ matrix.os }} @@ -17,8 +17,8 @@ jobs: profile: minimal toolchain: stable - uses: actions/checkout@v2 - - name: cargo check + - name: cargo test uses: actions-rs/cargo@v1 with: - command: check + command: test args: --all-features --all-targets From bc3f55118617b5ffe1ea479c4f6d7d2167b86d36 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:40:29 -0700 Subject: [PATCH 26/44] Add first style workflow --- github/workflows/style.yml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 github/workflows/style.yml diff --git a/github/workflows/style.yml b/github/workflows/style.yml new file mode 100644 index 0000000..74a877c --- /dev/null +++ b/github/workflows/style.yml @@ -0,0 +1,36 @@ +on: + push: + branches: [main] + pull_request: +name: lint +jobs: + style: + runs-on: ubuntu-latest + name: ${{ matrix.toolchain }} + strategy: + fail-fast: false + matrix: + toolchain: [stable, beta] + steps: + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.toolchain }} + components: rustfmt, clippy + - uses: actions/checkout@v2 + - name: cargo fmt --check + uses: actions-rs/cargo@v1 + with: + command: fmt + args: --check + - name: cargo doc + uses: actions-rs/cargo@v1 + if: always() + with: + command: doc + args: --no-deps --all-features + - name: cargo clippy + uses: actions-rs/clippy-check@v1 + if: always() + with: + token: ${{ secrets.GITHUB_TOKEN }} From fe460400ed2259af7e17f5ff51742137623e9e8e Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:41:00 -0700 Subject: [PATCH 27/44] Merge another style workflow --- github/workflows/style.yml | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/github/workflows/style.yml b/github/workflows/style.yml index 74a877c..d3320bc 100644 --- a/github/workflows/style.yml +++ b/github/workflows/style.yml @@ -23,14 +23,24 @@ jobs: with: command: fmt args: --check - - name: cargo doc - uses: actions-rs/cargo@v1 - if: always() - with: - command: doc - args: --no-deps --all-features - name: cargo clippy uses: actions-rs/clippy-check@v1 if: always() with: token: ${{ secrets.GITHUB_TOKEN }} + doc: + runs-on: ubuntu-latest + steps: + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + - uses: actions/checkout@v2 + - name: cargo doc + uses: actions-rs/cargo@v1 + with: + toolchain: nightly + command: doc + args: --no-deps --all-features + env: + RUSTDOCFLAGS: --cfg docsrs From 3bd8b12ec08910b2609cdfc843474d5b83ff7dbc Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:41:57 -0700 Subject: [PATCH 28/44] Merge another style workflow --- github/workflows/style.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/github/workflows/style.yml b/github/workflows/style.yml index d3320bc..648b6a1 100644 --- a/github/workflows/style.yml +++ b/github/workflows/style.yml @@ -18,6 +18,8 @@ jobs: toolchain: ${{ matrix.toolchain }} components: rustfmt, clippy - uses: actions/checkout@v2 + with: + submodules: true - name: cargo fmt --check uses: actions-rs/cargo@v1 with: From 8953a88abecc66ea7811766b46aff6a5fd767124 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:42:10 -0700 Subject: [PATCH 29/44] Add first test workflow --- github/workflows/test.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 github/workflows/test.yml diff --git a/github/workflows/test.yml b/github/workflows/test.yml new file mode 100644 index 0000000..a82ac61 --- /dev/null +++ b/github/workflows/test.yml @@ -0,0 +1,29 @@ +on: + push: + branches: [master] + pull_request: +name: cargo test +jobs: + test: + runs-on: ${{ matrix.os }} + name: ${{ matrix.os }} / ${{ matrix.toolchain }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + toolchain: [stable] + include: + - os: ubuntu-latest + toolchain: beta + - os: ubuntu-latest + toolchain: nightly + steps: + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.toolchain }} + - uses: actions/checkout@v2 + - name: cargo test + uses: actions-rs/cargo@v1 + with: + command: test From 0910d977fc68082220d493bef07bc9d5f2265fc7 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:42:25 -0700 Subject: [PATCH 30/44] Merge another test workflow --- github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/github/workflows/test.yml b/github/workflows/test.yml index a82ac61..5dd762c 100644 --- a/github/workflows/test.yml +++ b/github/workflows/test.yml @@ -27,3 +27,4 @@ jobs: uses: actions-rs/cargo@v1 with: command: test + args: --all-features From 971c3fd9eb5f7d80088caaf5647a74b82d40b860 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:42:52 -0700 Subject: [PATCH 31/44] Merge another test workflow --- github/workflows/test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/github/workflows/test.yml b/github/workflows/test.yml index 5dd762c..de5d3ea 100644 --- a/github/workflows/test.yml +++ b/github/workflows/test.yml @@ -23,8 +23,10 @@ jobs: profile: minimal toolchain: ${{ matrix.toolchain }} - uses: actions/checkout@v2 + with: + submodules: true - name: cargo test uses: actions-rs/cargo@v1 with: command: test - args: --all-features + args: --all-features --all-targets From 2de2235ad3803a978e150fca8d38182eb6ed7a9e Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:46:13 -0700 Subject: [PATCH 32/44] Merge another test workflow --- github/workflows/test.yml | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/github/workflows/test.yml b/github/workflows/test.yml index de5d3ea..b247ef6 100644 --- a/github/workflows/test.yml +++ b/github/workflows/test.yml @@ -5,24 +5,17 @@ on: name: cargo test jobs: test: - runs-on: ${{ matrix.os }} - name: ${{ matrix.os }} / ${{ matrix.toolchain }} + runs-on: ubuntu-latest + name: ubuntu / ${{ matrix.toolchain }} strategy: - fail-fast: false matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - toolchain: [stable] - include: - - os: ubuntu-latest - toolchain: beta - - os: ubuntu-latest - toolchain: nightly + toolchain: [stable, beta, nightly] steps: - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.toolchain }} - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: true - name: cargo test From 0f90a0b77958b3978b6be3997a09ea5cb9b1bd6b Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:47:38 -0700 Subject: [PATCH 33/44] Make everything use checkout@v3 --- github/workflows/asan.yml | 2 +- github/workflows/features.yml | 2 +- github/workflows/loom.yml | 2 +- github/workflows/lsan.yml | 2 +- github/workflows/minimal.yml | 2 +- github/workflows/miri.yml | 2 +- github/workflows/msrv.yml | 2 +- github/workflows/nostd.yml | 2 +- github/workflows/os-check.yml | 2 +- github/workflows/style.yml | 4 ++-- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/github/workflows/asan.yml b/github/workflows/asan.yml index 08afae9..5604b7e 100644 --- a/github/workflows/asan.yml +++ b/github/workflows/asan.yml @@ -12,7 +12,7 @@ jobs: profile: minimal toolchain: nightly override: true - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: cargo test -Zsanitizer=address uses: actions-rs/cargo@v1 with: diff --git a/github/workflows/features.yml b/github/workflows/features.yml index c2c3920..3e45d18 100644 --- a/github/workflows/features.yml +++ b/github/workflows/features.yml @@ -11,7 +11,7 @@ jobs: with: profile: minimal toolchain: stable - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: true - name: Install cargo-hack diff --git a/github/workflows/loom.yml b/github/workflows/loom.yml index 9246b40..8cfe45d 100644 --- a/github/workflows/loom.yml +++ b/github/workflows/loom.yml @@ -11,7 +11,7 @@ jobs: with: toolchain: stable profile: minimal - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: cargo test --test loom uses: actions-rs/cargo@v1 with: diff --git a/github/workflows/lsan.yml b/github/workflows/lsan.yml index 69ce0df..a966913 100644 --- a/github/workflows/lsan.yml +++ b/github/workflows/lsan.yml @@ -12,7 +12,7 @@ jobs: profile: minimal toolchain: nightly override: true - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: | # to get the symbolizer for debug symbol resolution sudo apt install llvm diff --git a/github/workflows/minimal.yml b/github/workflows/minimal.yml index b4cf571..f3ed6ac 100644 --- a/github/workflows/minimal.yml +++ b/github/workflows/minimal.yml @@ -15,7 +15,7 @@ jobs: with: profile: minimal toolchain: stable - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: true - name: cargo update -Zminimal-versions diff --git a/github/workflows/miri.yml b/github/workflows/miri.yml index e79ab42..ae9539a 100644 --- a/github/workflows/miri.yml +++ b/github/workflows/miri.yml @@ -15,7 +15,7 @@ jobs: toolchain: ${{ env.NIGHTLY }} override: true components: miri - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: cargo miri test uses: actions-rs/cargo@v1 with: diff --git a/github/workflows/msrv.yml b/github/workflows/msrv.yml index ac0dc41..9758e26 100644 --- a/github/workflows/msrv.yml +++ b/github/workflows/msrv.yml @@ -12,7 +12,7 @@ jobs: profile: minimal toolchain: 1.56.1 # 2021 edition requires 1.56 override: true - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: true - name: cargo +1.56.1 check diff --git a/github/workflows/nostd.yml b/github/workflows/nostd.yml index 433e11d..409ae73 100644 --- a/github/workflows/nostd.yml +++ b/github/workflows/nostd.yml @@ -16,7 +16,7 @@ jobs: profile: minimal toolchain: stable target: ${{ matrix.target }} - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: cargo check uses: actions-rs/cargo@v1 with: diff --git a/github/workflows/os-check.yml b/github/workflows/os-check.yml index 285499b..5fc3453 100644 --- a/github/workflows/os-check.yml +++ b/github/workflows/os-check.yml @@ -16,7 +16,7 @@ jobs: with: profile: minimal toolchain: stable - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: cargo test uses: actions-rs/cargo@v1 with: diff --git a/github/workflows/style.yml b/github/workflows/style.yml index 648b6a1..7a583f2 100644 --- a/github/workflows/style.yml +++ b/github/workflows/style.yml @@ -17,7 +17,7 @@ jobs: profile: minimal toolchain: ${{ matrix.toolchain }} components: rustfmt, clippy - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: true - name: cargo fmt --check @@ -37,7 +37,7 @@ jobs: with: profile: minimal toolchain: nightly - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: cargo doc uses: actions-rs/cargo@v1 with: From 99ddee84ab05f5d5f37ad30a31d18dd7c72050c9 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:47:57 -0700 Subject: [PATCH 34/44] Standardize on 'main' as branch name --- github/workflows/coverage.yml | 2 +- github/workflows/features.yml | 2 +- github/workflows/minimal.yml | 2 +- github/workflows/msrv.yml | 2 +- github/workflows/os-check.yml | 2 +- github/workflows/test.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/github/workflows/coverage.yml b/github/workflows/coverage.yml index 677ad58..375f7a3 100644 --- a/github/workflows/coverage.yml +++ b/github/workflows/coverage.yml @@ -1,6 +1,6 @@ on: push: - branches: [master] + branches: [main] pull_request: name: coverage jobs: diff --git a/github/workflows/features.yml b/github/workflows/features.yml index 3e45d18..ac5e18e 100644 --- a/github/workflows/features.yml +++ b/github/workflows/features.yml @@ -1,6 +1,6 @@ on: push: - branches: [master] + branches: [main] pull_request: name: cargo hack jobs: diff --git a/github/workflows/minimal.yml b/github/workflows/minimal.yml index f3ed6ac..0a558a9 100644 --- a/github/workflows/minimal.yml +++ b/github/workflows/minimal.yml @@ -1,6 +1,6 @@ on: push: - branches: [master] + branches: [main] pull_request: name: With dependencies at minimal versions jobs: diff --git a/github/workflows/msrv.yml b/github/workflows/msrv.yml index 9758e26..d6d9046 100644 --- a/github/workflows/msrv.yml +++ b/github/workflows/msrv.yml @@ -1,6 +1,6 @@ on: push: - branches: [master] + branches: [main] pull_request: name: Minimum Supported Rust Version jobs: diff --git a/github/workflows/os-check.yml b/github/workflows/os-check.yml index 5fc3453..c56b699 100644 --- a/github/workflows/os-check.yml +++ b/github/workflows/os-check.yml @@ -1,6 +1,6 @@ on: push: - branches: [master] + branches: [main] pull_request: name: os check jobs: diff --git a/github/workflows/test.yml b/github/workflows/test.yml index b247ef6..dfc1819 100644 --- a/github/workflows/test.yml +++ b/github/workflows/test.yml @@ -1,6 +1,6 @@ on: push: - branches: [master] + branches: [main] pull_request: name: cargo test jobs: From 87365663b1f49c88c2a3642fece0b2a932001355 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 16:19:55 -0700 Subject: [PATCH 35/44] Missed a submodule checkout --- github/workflows/os-check.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/github/workflows/os-check.yml b/github/workflows/os-check.yml index c56b699..db3590b 100644 --- a/github/workflows/os-check.yml +++ b/github/workflows/os-check.yml @@ -17,6 +17,8 @@ jobs: profile: minimal toolchain: stable - uses: actions/checkout@v3 + with: + submodules: true - name: cargo test uses: actions-rs/cargo@v1 with: From 4859c128823805015dc164d58316dc5b25a69264 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 18:16:21 -0700 Subject: [PATCH 36/44] Add TODOs from twitter thread --- github/workflows/locked.yml | 2 ++ github/workflows/scheduled-nightly.yml | 1 + 2 files changed, 3 insertions(+) create mode 100644 github/workflows/locked.yml create mode 100644 github/workflows/scheduled-nightly.yml diff --git a/github/workflows/locked.yml b/github/workflows/locked.yml new file mode 100644 index 0000000..c67a317 --- /dev/null +++ b/github/workflows/locked.yml @@ -0,0 +1,2 @@ +# TODO: https://twitter.com/jonhoo/status/1571290371124260865 +# Maybe also: https://twitter.com/alcuadrado/status/1571291687837732873 diff --git a/github/workflows/scheduled-nightly.yml b/github/workflows/scheduled-nightly.yml new file mode 100644 index 0000000..5a86cca --- /dev/null +++ b/github/workflows/scheduled-nightly.yml @@ -0,0 +1 @@ +# TODO: https://twitter.com/mycoliza/status/1571295690063753218 From afa25312c9c6cf8748629bd3a5c054a688785dfc Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sun, 18 Sep 2022 11:29:34 -0700 Subject: [PATCH 37/44] Practice what you preach --- github/workflows/check.yml | 107 +++++++++++++++++++++++++ github/workflows/coverage.yml | 26 ------ github/workflows/features.yml | 23 ------ github/workflows/locked.yml | 2 - github/workflows/minimal.yml | 31 ------- github/workflows/msrv.yml | 21 ----- github/workflows/os-check.yml | 26 ------ github/workflows/scheduled-nightly.yml | 1 - github/workflows/scheduled.yml | 61 ++++++++++++++ github/workflows/style.yml | 48 ----------- github/workflows/test.yml | 104 ++++++++++++++++++++++-- 11 files changed, 264 insertions(+), 186 deletions(-) create mode 100644 github/workflows/check.yml delete mode 100644 github/workflows/coverage.yml delete mode 100644 github/workflows/features.yml delete mode 100644 github/workflows/locked.yml delete mode 100644 github/workflows/minimal.yml delete mode 100644 github/workflows/msrv.yml delete mode 100644 github/workflows/os-check.yml delete mode 100644 github/workflows/scheduled-nightly.yml create mode 100644 github/workflows/scheduled.yml delete mode 100644 github/workflows/style.yml diff --git a/github/workflows/check.yml b/github/workflows/check.yml new file mode 100644 index 0000000..81c3a01 --- /dev/null +++ b/github/workflows/check.yml @@ -0,0 +1,107 @@ +on: + push: + branches: [main] + pull_request: +name: check +jobs: + fmt: + runs-on: ubuntu-latest + name: stable / fmt + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install stable + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + components: rustfmt + - name: cargo fmt --check + uses: actions-rs/cargo@v1 + with: + command: fmt + args: --check + clippy: + runs-on: ubuntu-latest + name: ${{ matrix.toolchain }} / clippy + strategy: + fail-fast: false + matrix: + toolchain: [stable, beta] + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install ${{ matrix.toolchain }} + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.toolchain }} + default: true + components: clippy + - name: cargo clippy + uses: actions-rs/clippy-check@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + doc: + runs-on: ubuntu-latest + name: nightly / doc + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install nightly + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + default: true + - name: cargo doc + uses: actions-rs/cargo@v1 + with: + command: doc + args: --no-deps --all-features + env: + RUSTDOCFLAGS: --cfg docsrs + hack: + runs-on: ubuntu-latest + name: ubuntu / stable / features + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install stable + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + - name: cargo install cargo-hack + uses: taiki-e/install-action@cargo-hack + - name: cargo hack + uses: actions-rs/cargo@v1 + with: + command: hack + args: --feature-powerset check --all-targets + msrv: + runs-on: ubuntu-latest + # we use a matrix here just because env can't be used in job names + # https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability + strategy: + matrix: + msrv: [1.56.1] # 2021 edition requires 1.56 + name: ubuntu / ${{ matrix.msrv }} + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install ${{ matrix.toolchain }} + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.msrv }} + default: true + - name: cargo +${{ matrix.msrv }} check + uses: actions-rs/cargo@v1 + with: + command: check diff --git a/github/workflows/coverage.yml b/github/workflows/coverage.yml deleted file mode 100644 index 375f7a3..0000000 --- a/github/workflows/coverage.yml +++ /dev/null @@ -1,26 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: coverage -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - submodules: true - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - components: llvm-tools-preview - - name: Install cargo-llvm-cov - uses: taiki-e/install-action@cargo-llvm-cov - - name: Generate code coverage - run: cargo llvm-cov --all-features --lcov --output-path lcov.info - - name: Upload to codecov.io - uses: codecov/codecov-action@v2 - with: - fail_ci_if_error: true diff --git a/github/workflows/features.yml b/github/workflows/features.yml deleted file mode 100644 index ac5e18e..0000000 --- a/github/workflows/features.yml +++ /dev/null @@ -1,23 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: cargo hack -jobs: - check: - runs-on: ubuntu-latest - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - - uses: actions/checkout@v3 - with: - submodules: true - - name: Install cargo-hack - uses: taiki-e/install-action@cargo-hack - - name: cargo hack - uses: actions-rs/cargo@v1 - with: - command: hack - args: --feature-powerset check --all-targets diff --git a/github/workflows/locked.yml b/github/workflows/locked.yml deleted file mode 100644 index c67a317..0000000 --- a/github/workflows/locked.yml +++ /dev/null @@ -1,2 +0,0 @@ -# TODO: https://twitter.com/jonhoo/status/1571290371124260865 -# Maybe also: https://twitter.com/alcuadrado/status/1571291687837732873 diff --git a/github/workflows/minimal.yml b/github/workflows/minimal.yml deleted file mode 100644 index 0a558a9..0000000 --- a/github/workflows/minimal.yml +++ /dev/null @@ -1,31 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: With dependencies at minimal versions -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: nightly - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - - uses: actions/checkout@v3 - with: - submodules: true - - name: cargo update -Zminimal-versions - uses: actions-rs/cargo@v1 - with: - command: update - toolchain: nightly - args: -Zminimal-versions - - name: cargo test - uses: actions-rs/cargo@v1 - with: - command: test - args: --all-features --all-targets diff --git a/github/workflows/msrv.yml b/github/workflows/msrv.yml deleted file mode 100644 index d6d9046..0000000 --- a/github/workflows/msrv.yml +++ /dev/null @@ -1,21 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: Minimum Supported Rust Version -jobs: - check: - runs-on: ubuntu-latest - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: 1.56.1 # 2021 edition requires 1.56 - override: true - - uses: actions/checkout@v3 - with: - submodules: true - - name: cargo +1.56.1 check - uses: actions-rs/cargo@v1 - with: - command: check diff --git a/github/workflows/os-check.yml b/github/workflows/os-check.yml deleted file mode 100644 index db3590b..0000000 --- a/github/workflows/os-check.yml +++ /dev/null @@ -1,26 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: os check -jobs: - os-check: - runs-on: ${{ matrix.os }} - name: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [macos-latest, windows-latest] - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - - uses: actions/checkout@v3 - with: - submodules: true - - name: cargo test - uses: actions-rs/cargo@v1 - with: - command: test - args: --all-features --all-targets diff --git a/github/workflows/scheduled-nightly.yml b/github/workflows/scheduled-nightly.yml deleted file mode 100644 index 5a86cca..0000000 --- a/github/workflows/scheduled-nightly.yml +++ /dev/null @@ -1 +0,0 @@ -# TODO: https://twitter.com/mycoliza/status/1571295690063753218 diff --git a/github/workflows/scheduled.yml b/github/workflows/scheduled.yml new file mode 100644 index 0000000..bb39a22 --- /dev/null +++ b/github/workflows/scheduled.yml @@ -0,0 +1,61 @@ +on: + push: + branches: [main] + pull_request: + schedule: + - cron: '7 7 * * *' +name: cargo test (rolling) +jobs: + # https://twitter.com/mycoliza/status/1571295690063753218 + nightly: + runs-on: ubuntu-latest + name: ubuntu / nightly + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install nightly + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + default: true + - name: cargo generate-lockfile + if: hashFiles('Cargo.lock') == '' + uses: actions-rs/cargo@v1 + with: + command: generate-lockfile + - name: cargo test --locked + uses: actions-rs/cargo@v1 + with: + command: test + args: --locked --all-features --all-targets + # https://twitter.com/alcuadrado/status/1571291687837732873 + update: + runs-on: ubuntu-latest + name: ubuntu / stable / updated + # There's no point running this if no Cargo.lock was checked in in the + # first place, since we'd just redo what happened in the regular test job. + # Unfortunately, hashFiles only works in if on steps, so we reepeat it. + # if: hashFiles('Cargo.lock') != '' + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install stable + if: hashFiles('Cargo.lock') != '' + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + - name: cargo update + if: hashFiles('Cargo.lock') != '' + uses: actions-rs/cargo@v1 + with: + command: update + - name: cargo test + if: hashFiles('Cargo.lock') != '' + uses: actions-rs/cargo@v1 + with: + command: test + args: --locked --all-features --all-targets diff --git a/github/workflows/style.yml b/github/workflows/style.yml deleted file mode 100644 index 7a583f2..0000000 --- a/github/workflows/style.yml +++ /dev/null @@ -1,48 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: lint -jobs: - style: - runs-on: ubuntu-latest - name: ${{ matrix.toolchain }} - strategy: - fail-fast: false - matrix: - toolchain: [stable, beta] - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.toolchain }} - components: rustfmt, clippy - - uses: actions/checkout@v3 - with: - submodules: true - - name: cargo fmt --check - uses: actions-rs/cargo@v1 - with: - command: fmt - args: --check - - name: cargo clippy - uses: actions-rs/clippy-check@v1 - if: always() - with: - token: ${{ secrets.GITHUB_TOKEN }} - doc: - runs-on: ubuntu-latest - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: nightly - - uses: actions/checkout@v3 - - name: cargo doc - uses: actions-rs/cargo@v1 - with: - toolchain: nightly - command: doc - args: --no-deps --all-features - env: - RUSTDOCFLAGS: --cfg docsrs diff --git a/github/workflows/test.yml b/github/workflows/test.yml index dfc1819..83645f8 100644 --- a/github/workflows/test.yml +++ b/github/workflows/test.yml @@ -2,24 +2,112 @@ on: push: branches: [main] pull_request: -name: cargo test +name: test jobs: - test: + required: runs-on: ubuntu-latest name: ubuntu / ${{ matrix.toolchain }} strategy: matrix: - toolchain: [stable, beta, nightly] + toolchain: [stable, beta] steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.toolchain }} - uses: actions/checkout@v3 with: submodules: true + - name: Install ${{ matrix.toolchain }} + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.toolchain }} + default: true + - name: cargo generate-lockfile + if: hashFiles('Cargo.lock') == '' + uses: actions-rs/cargo@v1 + with: + command: generate-lockfile + # https://twitter.com/jonhoo/status/1571290371124260865 + - name: cargo test --locked + uses: actions-rs/cargo@v1 + with: + command: test + args: --locked --all-features --all-targets + minimal: + runs-on: ubuntu-latest + name: ubuntu / stable / minimal-versions + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install stable + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + - name: Install nightly for -Zminimal-versions + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + - name: cargo update -Zminimal-versions + uses: actions-rs/cargo@v1 + with: + command: update + toolchain: nightly + args: -Zminimal-versions - name: cargo test uses: actions-rs/cargo@v1 with: command: test - args: --all-features --all-targets + args: --locked --all-features --all-targets + os-check: + runs-on: ${{ matrix.os }} + name: ${{ matrix.os }} / stable + strategy: + fail-fast: false + matrix: + os: [macos-latest, windows-latest] + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install stable + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + - name: cargo generate-lockfile + if: hashFiles('Cargo.lock') == '' + uses: actions-rs/cargo@v1 + with: + command: generate-lockfile + - name: cargo test + uses: actions-rs/cargo@v1 + with: + command: test + args: --locked --all-features --all-targets + coverage: + runs-on: ubuntu-latest + name: ubuntu / stable / coverage + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install stable + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + components: llvm-tools-preview + - name: cargo install cargo-llvm-cov + uses: taiki-e/install-action@cargo-llvm-cov + - name: cargo generate-lockfile + if: hashFiles('Cargo.lock') == '' + uses: actions-rs/cargo@v1 + with: + command: generate-lockfile + - name: cargo llvm-cov + run: cargo llvm-cov --locked --all-features --lcov --output-path lcov.info + - name: Upload to codecov.io + uses: codecov/codecov-action@v2 + with: + fail_ci_if_error: true From 71c2048cc0017a84a294be69d3b1629f55b1c8f0 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sun, 18 Sep 2022 11:44:55 -0700 Subject: [PATCH 38/44] mv github .github This should make it possible to have rust-ci-conf as a remote you merge from. --- {github => .github}/codecov.yml | 0 {github => .github}/workflows/asan.yml | 0 {github => .github}/workflows/check.yml | 0 {github => .github}/workflows/loom.yml | 0 {github => .github}/workflows/lsan.yml | 0 {github => .github}/workflows/miri.yml | 0 {github => .github}/workflows/nostd.yml | 0 {github => .github}/workflows/scheduled.yml | 0 {github => .github}/workflows/test.yml | 0 9 files changed, 0 insertions(+), 0 deletions(-) rename {github => .github}/codecov.yml (100%) rename {github => .github}/workflows/asan.yml (100%) rename {github => .github}/workflows/check.yml (100%) rename {github => .github}/workflows/loom.yml (100%) rename {github => .github}/workflows/lsan.yml (100%) rename {github => .github}/workflows/miri.yml (100%) rename {github => .github}/workflows/nostd.yml (100%) rename {github => .github}/workflows/scheduled.yml (100%) rename {github => .github}/workflows/test.yml (100%) diff --git a/github/codecov.yml b/.github/codecov.yml similarity index 100% rename from github/codecov.yml rename to .github/codecov.yml diff --git a/github/workflows/asan.yml b/.github/workflows/asan.yml similarity index 100% rename from github/workflows/asan.yml rename to .github/workflows/asan.yml diff --git a/github/workflows/check.yml b/.github/workflows/check.yml similarity index 100% rename from github/workflows/check.yml rename to .github/workflows/check.yml diff --git a/github/workflows/loom.yml b/.github/workflows/loom.yml similarity index 100% rename from github/workflows/loom.yml rename to .github/workflows/loom.yml diff --git a/github/workflows/lsan.yml b/.github/workflows/lsan.yml similarity index 100% rename from github/workflows/lsan.yml rename to .github/workflows/lsan.yml diff --git a/github/workflows/miri.yml b/.github/workflows/miri.yml similarity index 100% rename from github/workflows/miri.yml rename to .github/workflows/miri.yml diff --git a/github/workflows/nostd.yml b/.github/workflows/nostd.yml similarity index 100% rename from github/workflows/nostd.yml rename to .github/workflows/nostd.yml diff --git a/github/workflows/scheduled.yml b/.github/workflows/scheduled.yml similarity index 100% rename from github/workflows/scheduled.yml rename to .github/workflows/scheduled.yml diff --git a/github/workflows/test.yml b/.github/workflows/test.yml similarity index 100% rename from github/workflows/test.yml rename to .github/workflows/test.yml From 56d4398a24f8c7aae0ba4a74eefaf75d1c3db3a8 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sun, 18 Sep 2022 11:52:12 -0700 Subject: [PATCH 39/44] Merge safety workflows --- .github/workflows/asan.yml | 24 ---------- .github/workflows/loom.yml | 22 --------- .github/workflows/lsan.yml | 32 -------------- .github/workflows/miri.yml | 25 ----------- .github/workflows/safety.yml | 86 ++++++++++++++++++++++++++++++++++++ 5 files changed, 86 insertions(+), 103 deletions(-) delete mode 100644 .github/workflows/asan.yml delete mode 100644 .github/workflows/loom.yml delete mode 100644 .github/workflows/lsan.yml delete mode 100644 .github/workflows/miri.yml create mode 100644 .github/workflows/safety.yml diff --git a/.github/workflows/asan.yml b/.github/workflows/asan.yml deleted file mode 100644 index 5604b7e..0000000 --- a/.github/workflows/asan.yml +++ /dev/null @@ -1,24 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: Address sanitizer -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: nightly - override: true - - uses: actions/checkout@v3 - - name: cargo test -Zsanitizer=address - uses: actions-rs/cargo@v1 - with: - command: test - # only --lib --tests b/c of https://github.com/rust-lang/rust/issues/53945 - args: --lib --tests --all-features --target x86_64-unknown-linux-gnu - env: - ASAN_OPTIONS: "detect_odr_violation=0:detect_leaks=0" - RUSTFLAGS: "-Z sanitizer=address" diff --git a/.github/workflows/loom.yml b/.github/workflows/loom.yml deleted file mode 100644 index 8cfe45d..0000000 --- a/.github/workflows/loom.yml +++ /dev/null @@ -1,22 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: Loom -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - - uses: actions/checkout@v3 - - name: cargo test --test loom - uses: actions-rs/cargo@v1 - with: - command: test - args: --release --test loom - env: - LOOM_MAX_PREEMPTIONS: 2 - RUSTFLAGS: "--cfg loom" diff --git a/.github/workflows/lsan.yml b/.github/workflows/lsan.yml deleted file mode 100644 index a966913..0000000 --- a/.github/workflows/lsan.yml +++ /dev/null @@ -1,32 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: Leak sanitizer -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: nightly - override: true - - uses: actions/checkout@v3 - - run: | - # to get the symbolizer for debug symbol resolution - sudo apt install llvm - # to fix buggy leak analyzer: - # https://github.com/japaric/rust-san#unrealiable-leaksanitizer - sed -i '/\[features\]/i [profile.dev]' Cargo.toml - sed -i '/profile.dev/a opt-level = 1' Cargo.toml - cat Cargo.toml - name: Enable debug symbols - - name: cargo test -Zsanitizer=leak - uses: actions-rs/cargo@v1 - with: - command: test - args: --all-features --target x86_64-unknown-linux-gnu - env: - RUSTFLAGS: "-Z sanitizer=leak" - LSAN_OPTIONS: "suppressions=lsan-suppressions.txt" diff --git a/.github/workflows/miri.yml b/.github/workflows/miri.yml deleted file mode 100644 index ae9539a..0000000 --- a/.github/workflows/miri.yml +++ /dev/null @@ -1,25 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: Miri -jobs: - test: - runs-on: ubuntu-latest - steps: - - run: | - echo "NIGHTLY=nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/miri)" >> $GITHUB_ENV - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ env.NIGHTLY }} - override: true - components: miri - - uses: actions/checkout@v3 - - name: cargo miri test - uses: actions-rs/cargo@v1 - with: - command: miri - args: test - env: - MIRIFLAGS: "-Zmiri-tag-raw-pointers" diff --git a/.github/workflows/safety.yml b/.github/workflows/safety.yml new file mode 100644 index 0000000..86fc9ee --- /dev/null +++ b/.github/workflows/safety.yml @@ -0,0 +1,86 @@ +on: + push: + branches: [main] + pull_request: +name: safety +jobs: + sanitizers: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install nightly + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + default: true + - run: | + # to get the symbolizer for debug symbol resolution + sudo apt install llvm + # to fix buggy leak analyzer: + # https://github.com/japaric/rust-san#unrealiable-leaksanitizer + sed -i '/\[features\]/i [profile.dev]' Cargo.toml + sed -i '/profile.dev/a opt-level = 1' Cargo.toml + cat Cargo.toml + name: Enable debug symbols + - name: cargo test -Zsanitizer=address + uses: actions-rs/cargo@v1 + with: + command: test + # only --lib --tests b/c of https://github.com/rust-lang/rust/issues/53945 + args: --lib --tests --all-features --target x86_64-unknown-linux-gnu + env: + ASAN_OPTIONS: "detect_odr_violation=0:detect_leaks=0" + RUSTFLAGS: "-Z sanitizer=address" + - name: cargo test -Zsanitizer=leak + if: always() + uses: actions-rs/cargo@v1 + with: + command: test + args: --all-features --target x86_64-unknown-linux-gnu + env: + LSAN_OPTIONS: "suppressions=lsan-suppressions.txt" + RUSTFLAGS: "-Z sanitizer=leak" + miri: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - run: | + echo "NIGHTLY=nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/miri)" >> $GITHUB_ENV + - name: Install ${{ env.NIGHTLY }} + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ env.NIGHTLY }} + default: true + components: miri + - name: cargo miri test + uses: actions-rs/cargo@v1 + with: + command: miri + args: test + env: + MIRIFLAGS: "-Zmiri-tag-raw-pointers" + loom: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install stable + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + profile: minimal + - name: cargo test --test loom + uses: actions-rs/cargo@v1 + with: + command: test + args: --release --test loom + env: + LOOM_MAX_PREEMPTIONS: 2 + RUSTFLAGS: "--cfg loom" From 15c1fa2ffcc0f31fabcdcd90cde6a05b54baf8b5 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sun, 18 Sep 2022 12:10:58 -0700 Subject: [PATCH 40/44] Catch upcoming deprecations --- .github/workflows/scheduled.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index bb39a22..20229ba 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -33,7 +33,7 @@ jobs: # https://twitter.com/alcuadrado/status/1571291687837732873 update: runs-on: ubuntu-latest - name: ubuntu / stable / updated + name: ubuntu / beta / updated # There's no point running this if no Cargo.lock was checked in in the # first place, since we'd just redo what happened in the regular test job. # Unfortunately, hashFiles only works in if on steps, so we reepeat it. @@ -42,12 +42,13 @@ jobs: - uses: actions/checkout@v3 with: submodules: true - - name: Install stable + - name: Install beta if: hashFiles('Cargo.lock') != '' uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: stable + toolchain: beta + default: true - name: cargo update if: hashFiles('Cargo.lock') != '' uses: actions-rs/cargo@v1 @@ -59,3 +60,5 @@ jobs: with: command: test args: --locked --all-features --all-targets + env: + RUSTFLAGS: -D deprecated From fcf610389a8f3ebefe63b9c32ef8fccb75fee85b Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sun, 18 Sep 2022 12:49:10 -0700 Subject: [PATCH 41/44] Pre-merge rm --- .github/codecov.yml | 21 ----------- .github/workflows/coverage.yml | 34 ------------------ .github/workflows/features.yml | 23 ------------ .github/workflows/minimal.yml | 39 --------------------- .github/workflows/msrv.yml | 21 ----------- .github/workflows/os-check.yml | 24 ------------- .github/workflows/style.yml | 48 ------------------------- .github/workflows/test.yml | 64 ---------------------------------- 8 files changed, 274 deletions(-) delete mode 100644 .github/codecov.yml delete mode 100644 .github/workflows/coverage.yml delete mode 100644 .github/workflows/features.yml delete mode 100644 .github/workflows/minimal.yml delete mode 100644 .github/workflows/msrv.yml delete mode 100644 .github/workflows/os-check.yml delete mode 100644 .github/workflows/style.yml delete mode 100644 .github/workflows/test.yml diff --git a/.github/codecov.yml b/.github/codecov.yml deleted file mode 100644 index ff4f571..0000000 --- a/.github/codecov.yml +++ /dev/null @@ -1,21 +0,0 @@ -# ref: https://docs.codecov.com/docs/codecovyml-reference -coverage: - # Hold ourselves to a high bar - range: 85..100 - round: down - precision: 1 - status: - # ref: https://docs.codecov.com/docs/commit-status - project: - default: - # Avoid false negatives - threshold: 1% - -# Test files aren't important for coverage -ignore: - - "tests" - -# Make comments less noisy -comment: - layout: "files" - require_changes: yes diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml deleted file mode 100644 index e9a9358..0000000 --- a/.github/workflows/coverage.yml +++ /dev/null @@ -1,34 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: coverage -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - submodules: true - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - components: llvm-tools-preview - - name: Install cargo-llvm-cov - uses: taiki-e/install-action@cargo-llvm-cov - - name: Generate code coverage - run: cargo llvm-cov --features test-full-imap --lcov --output-path lcov.info - - name: Upload to codecov.io - uses: codecov/codecov-action@v2 - with: - fail_ci_if_error: true - services: - cyrus_imapd: - image: outoforder/cyrus-imapd-tester:latest - ports: - - 3025:25 - - 3143:143 - - 3465:465 - - 3993:993 diff --git a/.github/workflows/features.yml b/.github/workflows/features.yml deleted file mode 100644 index ac5e18e..0000000 --- a/.github/workflows/features.yml +++ /dev/null @@ -1,23 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: cargo hack -jobs: - check: - runs-on: ubuntu-latest - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - - uses: actions/checkout@v3 - with: - submodules: true - - name: Install cargo-hack - uses: taiki-e/install-action@cargo-hack - - name: cargo hack - uses: actions-rs/cargo@v1 - with: - command: hack - args: --feature-powerset check --all-targets diff --git a/.github/workflows/minimal.yml b/.github/workflows/minimal.yml deleted file mode 100644 index 9a3f187..0000000 --- a/.github/workflows/minimal.yml +++ /dev/null @@ -1,39 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: With dependencies at minimal versions -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: nightly - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - - uses: actions/checkout@v3 - with: - submodules: true - - name: cargo update -Zminimal-versions - uses: actions-rs/cargo@v1 - with: - command: update - toolchain: nightly - args: -Zminimal-versions - - name: cargo test - uses: actions-rs/cargo@v1 - with: - command: test - args: --features test-full-imap --all-targets - services: - cyrus_imapd: - image: outoforder/cyrus-imapd-tester:latest - ports: - - 3025:25 - - 3143:143 - - 3465:465 - - 3993:993 diff --git a/.github/workflows/msrv.yml b/.github/workflows/msrv.yml deleted file mode 100644 index d6d9046..0000000 --- a/.github/workflows/msrv.yml +++ /dev/null @@ -1,21 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: Minimum Supported Rust Version -jobs: - check: - runs-on: ubuntu-latest - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: 1.56.1 # 2021 edition requires 1.56 - override: true - - uses: actions/checkout@v3 - with: - submodules: true - - name: cargo +1.56.1 check - uses: actions-rs/cargo@v1 - with: - command: check diff --git a/.github/workflows/os-check.yml b/.github/workflows/os-check.yml deleted file mode 100644 index 1054489..0000000 --- a/.github/workflows/os-check.yml +++ /dev/null @@ -1,24 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: os check -jobs: - os-check: - runs-on: ${{ matrix.os }} - name: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [macos-latest, windows-latest] - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - - uses: actions/checkout@v3 - - name: cargo check - uses: actions-rs/cargo@v1 - with: - command: check - args: --all-features --all-targets diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml deleted file mode 100644 index 7a583f2..0000000 --- a/.github/workflows/style.yml +++ /dev/null @@ -1,48 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: lint -jobs: - style: - runs-on: ubuntu-latest - name: ${{ matrix.toolchain }} - strategy: - fail-fast: false - matrix: - toolchain: [stable, beta] - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.toolchain }} - components: rustfmt, clippy - - uses: actions/checkout@v3 - with: - submodules: true - - name: cargo fmt --check - uses: actions-rs/cargo@v1 - with: - command: fmt - args: --check - - name: cargo clippy - uses: actions-rs/clippy-check@v1 - if: always() - with: - token: ${{ secrets.GITHUB_TOKEN }} - doc: - runs-on: ubuntu-latest - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: nightly - - uses: actions/checkout@v3 - - name: cargo doc - uses: actions-rs/cargo@v1 - with: - toolchain: nightly - command: doc - args: --no-deps --all-features - env: - RUSTDOCFLAGS: --cfg docsrs diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 3821afd..0000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,64 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: cargo test -jobs: - test: - runs-on: ubuntu-latest - name: greenmail/${{ matrix.toolchain }} - strategy: - matrix: - toolchain: [stable, beta, nightly] - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.toolchain }} - - uses: actions/checkout@v3 - with: - submodules: true - - name: cargo test - uses: actions-rs/cargo@v1 - with: - command: test - args: --all-targets - services: - greenmail: - image: greenmail/standalone:1.6.8 - ports: - - 3025:3025 - - 3110:3110 - - 3143:3143 - - 3465:3465 - - 3993:3993 - - 3995:3995 - env: - GREENMAIL_OPTS: "-Dgreenmail.setup.test.all -Dgreenmail.hostname=0.0.0.0 -Dgreenmail.auth.disabled -Dgreenmail.verbose" - test_cyrus: - runs-on: ubuntu-latest - name: cyrus/${{ matrix.toolchain }} - strategy: - matrix: - toolchain: [stable, beta, nightly] - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.toolchain }} - - uses: actions/checkout@v3 - with: - submodules: true - - name: cargo test - uses: actions-rs/cargo@v1 - with: - command: test - args: --features test-full-imap --all-targets - services: - cyrus_imapd: - image: outoforder/cyrus-imapd-tester:latest - ports: - - 3025:25 - - 3143:143 - - 3465:465 - - 3993:993 From dbb6517a7d7e6d111739efd7ff50253f38c70ef8 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sun, 18 Sep 2022 12:49:28 -0700 Subject: [PATCH 42/44] Remove leftover codecov config --- codecov.yml | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 codecov.yml diff --git a/codecov.yml b/codecov.yml deleted file mode 100644 index 7b19db2..0000000 --- a/codecov.yml +++ /dev/null @@ -1,17 +0,0 @@ -coverage: - range: 70..100 - round: down - precision: 2 - status: - project: - default: - threshold: 2% - -# Tests aren't important for coverage -ignore: - - "tests" - -# Make less noisy comments -comment: - layout: "files" - require_changes: yes From d91e506e764f2c89108be7915196c85f2bde689d Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sun, 18 Sep 2022 12:54:53 -0700 Subject: [PATCH 43/44] Add back local ci modifications --- .github/workflows/nostd.yml | 24 --------- .github/workflows/safety.yml | 86 --------------------------------- .github/workflows/scheduled.yml | 20 +++++++- .github/workflows/test.yml | 77 ++++++++++++++++++++++++++--- 4 files changed, 88 insertions(+), 119 deletions(-) delete mode 100644 .github/workflows/nostd.yml delete mode 100644 .github/workflows/safety.yml diff --git a/.github/workflows/nostd.yml b/.github/workflows/nostd.yml deleted file mode 100644 index 409ae73..0000000 --- a/.github/workflows/nostd.yml +++ /dev/null @@ -1,24 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: no-std -jobs: - nostd: - runs-on: ubuntu-latest - name: ${{ matrix.target }} - strategy: - matrix: - target: [thumbv7m-none-eabi, aarch64-unknown-none] - steps: - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - target: ${{ matrix.target }} - - uses: actions/checkout@v3 - - name: cargo check - uses: actions-rs/cargo@v1 - with: - command: check - args: --target ${{ matrix.target }} --no-default-features diff --git a/.github/workflows/safety.yml b/.github/workflows/safety.yml deleted file mode 100644 index 86fc9ee..0000000 --- a/.github/workflows/safety.yml +++ /dev/null @@ -1,86 +0,0 @@ -on: - push: - branches: [main] - pull_request: -name: safety -jobs: - sanitizers: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - submodules: true - - name: Install nightly - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: nightly - default: true - - run: | - # to get the symbolizer for debug symbol resolution - sudo apt install llvm - # to fix buggy leak analyzer: - # https://github.com/japaric/rust-san#unrealiable-leaksanitizer - sed -i '/\[features\]/i [profile.dev]' Cargo.toml - sed -i '/profile.dev/a opt-level = 1' Cargo.toml - cat Cargo.toml - name: Enable debug symbols - - name: cargo test -Zsanitizer=address - uses: actions-rs/cargo@v1 - with: - command: test - # only --lib --tests b/c of https://github.com/rust-lang/rust/issues/53945 - args: --lib --tests --all-features --target x86_64-unknown-linux-gnu - env: - ASAN_OPTIONS: "detect_odr_violation=0:detect_leaks=0" - RUSTFLAGS: "-Z sanitizer=address" - - name: cargo test -Zsanitizer=leak - if: always() - uses: actions-rs/cargo@v1 - with: - command: test - args: --all-features --target x86_64-unknown-linux-gnu - env: - LSAN_OPTIONS: "suppressions=lsan-suppressions.txt" - RUSTFLAGS: "-Z sanitizer=leak" - miri: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - submodules: true - - run: | - echo "NIGHTLY=nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/miri)" >> $GITHUB_ENV - - name: Install ${{ env.NIGHTLY }} - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ env.NIGHTLY }} - default: true - components: miri - - name: cargo miri test - uses: actions-rs/cargo@v1 - with: - command: miri - args: test - env: - MIRIFLAGS: "-Zmiri-tag-raw-pointers" - loom: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - submodules: true - - name: Install stable - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - - name: cargo test --test loom - uses: actions-rs/cargo@v1 - with: - command: test - args: --release --test loom - env: - LOOM_MAX_PREEMPTIONS: 2 - RUSTFLAGS: "--cfg loom" diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 20229ba..3e3a9d3 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -29,7 +29,15 @@ jobs: uses: actions-rs/cargo@v1 with: command: test - args: --locked --all-features --all-targets + args: --locked --features test-full-imap --all-targets + services: + cyrus_imapd: + image: outoforder/cyrus-imapd-tester:latest + ports: + - 3025:25 + - 3143:143 + - 3465:465 + - 3993:993 # https://twitter.com/alcuadrado/status/1571291687837732873 update: runs-on: ubuntu-latest @@ -59,6 +67,14 @@ jobs: uses: actions-rs/cargo@v1 with: command: test - args: --locked --all-features --all-targets + args: --locked --features test-full-imap --all-targets env: RUSTFLAGS: -D deprecated + services: + cyrus_imapd: + image: outoforder/cyrus-imapd-tester:latest + ports: + - 3025:25 + - 3143:143 + - 3465:465 + - 3993:993 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 83645f8..0c9d53c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,9 +4,9 @@ on: pull_request: name: test jobs: - required: + greenmail: runs-on: ubuntu-latest - name: ubuntu / ${{ matrix.toolchain }} + name: ubuntu / ${{ matrix.toolchain }} / greenmail strategy: matrix: toolchain: [stable, beta] @@ -30,7 +30,54 @@ jobs: uses: actions-rs/cargo@v1 with: command: test - args: --locked --all-features --all-targets + args: --locked --all-targets + services: + greenmail: + image: greenmail/standalone:1.6.8 + ports: + - 3025:3025 + - 3110:3110 + - 3143:3143 + - 3465:3465 + - 3993:3993 + - 3995:3995 + env: + GREENMAIL_OPTS: "-Dgreenmail.setup.test.all -Dgreenmail.hostname=0.0.0.0 -Dgreenmail.auth.disabled -Dgreenmail.verbose" + cyrus: + runs-on: ubuntu-latest + name: ubuntu / ${{ matrix.toolchain }} / cyrus + strategy: + matrix: + toolchain: [stable, beta] + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install ${{ matrix.toolchain }} + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.toolchain }} + default: true + - name: cargo generate-lockfile + if: hashFiles('Cargo.lock') == '' + uses: actions-rs/cargo@v1 + with: + command: generate-lockfile + # https://twitter.com/jonhoo/status/1571290371124260865 + - name: cargo test --locked + uses: actions-rs/cargo@v1 + with: + command: test + args: --locked --features test-full-imap --all-targets + services: + cyrus_imapd: + image: outoforder/cyrus-imapd-tester:latest + ports: + - 3025:25 + - 3143:143 + - 3465:465 + - 3993:993 minimal: runs-on: ubuntu-latest name: ubuntu / stable / minimal-versions @@ -58,7 +105,15 @@ jobs: uses: actions-rs/cargo@v1 with: command: test - args: --locked --all-features --all-targets + args: --locked --features test-full-imap --all-targets + services: + cyrus_imapd: + image: outoforder/cyrus-imapd-tester:latest + ports: + - 3025:25 + - 3143:143 + - 3465:465 + - 3993:993 os-check: runs-on: ${{ matrix.os }} name: ${{ matrix.os }} / stable @@ -80,10 +135,10 @@ jobs: uses: actions-rs/cargo@v1 with: command: generate-lockfile - - name: cargo test + - name: cargo check uses: actions-rs/cargo@v1 with: - command: test + command: check args: --locked --all-features --all-targets coverage: runs-on: ubuntu-latest @@ -106,8 +161,16 @@ jobs: with: command: generate-lockfile - name: cargo llvm-cov - run: cargo llvm-cov --locked --all-features --lcov --output-path lcov.info + run: cargo llvm-cov --features test-full-imap --lcov --output-path lcov.info - name: Upload to codecov.io uses: codecov/codecov-action@v2 with: fail_ci_if_error: true + services: + cyrus_imapd: + image: outoforder/cyrus-imapd-tester:latest + ports: + - 3025:25 + - 3143:143 + - 3465:465 + - 3993:993 From e0d47b969beaaa1d1400927b1c94bff9c349e187 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sun, 18 Sep 2022 12:55:18 -0700 Subject: [PATCH 44/44] Check in lockfile https://twitter.com/jonhoo/status/1571290371124260865 --- .gitignore | 1 - Cargo.lock | 1156 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1156 insertions(+), 1 deletion(-) create mode 100644 Cargo.lock diff --git a/.gitignore b/.gitignore index a9d37c5..eb5a316 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ target -Cargo.lock diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..6186f02 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1156 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" + +[[package]] +name = "addr2line" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aho-corasick" +version = "0.7.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +dependencies = [ + "memchr", +] + +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bufstream" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8" + +[[package]] +name = "bumpalo" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "email-encoding" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34dd14c63662e0206599796cd5e1ad0268ab2b9d19b868d6050d688eba2bbf98" +dependencies = [ + "base64", + "memchr", +] + +[[package]] +name = "email_address" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1b32a7a2580c4473f10f66b512c34bdd7d33c5e3473227ca833abdb5afe4809" + +[[package]] +name = "encoding" +version = "0.2.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" +dependencies = [ + "encoding-index-japanese", + "encoding-index-korean", + "encoding-index-simpchinese", + "encoding-index-singlebyte", + "encoding-index-tradchinese", +] + +[[package]] +name = "encoding-index-japanese" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-korean" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-simpchinese" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-singlebyte" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-tradchinese" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding_index_tests" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" + +[[package]] +name = "failure" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +dependencies = [ + "backtrace", + "failure_derive", +] + +[[package]] +name = "failure_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "futures-core" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" + +[[package]] +name = "futures-io" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" + +[[package]] +name = "futures-task" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" + +[[package]] +name = "futures-util" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" +dependencies = [ + "futures-core", + "futures-io", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "gimli" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", +] + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "imap" +version = "3.0.0-alpha.9" +dependencies = [ + "base64", + "bufstream", + "chrono", + "encoding", + "failure", + "imap-proto", + "lazy_static", + "lettre", + "mime", + "native-tls", + "nom", + "ouroboros", + "regex", + "rustls-connector", + "structopt", +] + +[[package]] +name = "imap-proto" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f256a8086d5a408348cddb97d8a07e7d10f861067c497e850e67c9aeda014fda" +dependencies = [ + "nom", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "js-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lettre" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eabca5e0b4d0e98e7f2243fb5b7520b6af2b65d8f87bcc86f2c75185a6ff243" +dependencies = [ + "base64", + "email-encoding", + "email_address", + "fastrand", + "futures-util", + "hostname", + "httpdate", + "idna", + "mime", + "native-tls", + "nom", + "once_cell", + "quoted_printable", + "socket2", +] + +[[package]] +name = "libc" +version = "0.2.132" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +dependencies = [ + "adler", +] + +[[package]] +name = "native-tls" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "nom" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "object" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0" + +[[package]] +name = "openssl" +version = "0.10.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "618febf65336490dfcf20b73f885f5651a0c89c64c2d4a8c3662585a70bf5bd0" +dependencies = [ + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5f9bd0c2710541a3cda73d6f9ac4f1b240de4ae261065d309dbe73d9dceb42f" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "ouroboros" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbb50b356159620db6ac971c6d5c9ab788c9cc38a6f49619fca2a27acb062ca" +dependencies = [ + "aliasable", + "ouroboros_macro", +] + +[[package]] +name = "ouroboros_macro" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a0d9d1a6191c4f391f87219d1ea42b23f09ee84d64763cd05ee6ea88d9f384d" +dependencies = [ + "Inflector", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "quoted_printable" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fee2dce59f7a43418e3382c766554c614e06a552d53a8f07ef499ea4b332c0f" + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regex" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" + +[[package]] +name = "rustls" +version = "0.20.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" +dependencies = [ + "log", + "ring", + "sct", + "webpki", +] + +[[package]] +name = "rustls-connector" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c6a18f8d10f71bce9bca6eaeb80429460e652f3bcf0381f0c5f8954abf7b3b8" +dependencies = [ + "log", + "rustls", + "rustls-native-certs", + "webpki", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" +dependencies = [ + "base64", +] + +[[package]] +name = "schannel" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +dependencies = [ + "lazy_static", + "windows-sys", +] + +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "security-framework" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "slab" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] + +[[package]] +name = "socket2" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "structopt" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +dependencies = [ + "clap", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "syn" +version = "1.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "unicode-xid", +] + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "unicode-bidi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + +[[package]] +name = "unicode-ident" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasm-bindgen" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" + +[[package]] +name = "web-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"