From f3df70693c867b97ad7c46d51f3c28890df82219 Mon Sep 17 00:00:00 2001 From: Kai Ren <tyranron@gmail.com> Date: Fri, 21 Oct 2022 19:07:17 +0300 Subject: [PATCH] Improve CI (#1113) - switch to `dtolnay/rust-toolchain` GitHub action - restore release Git tag format and correct `cargo-release` integration - enable MSRV check - integrate `cargo-careful` --- .github/workflows/ci.yml | 189 +++++++++++++++++------------ Makefile | 16 ++- juniper/Cargo.toml | 18 ++- juniper/README.md | 1 + juniper/release.toml | 12 +- juniper_actix/Cargo.toml | 25 ++-- juniper_actix/README.md | 1 + juniper_actix/release.toml | 7 +- juniper_codegen/Cargo.toml | 8 +- juniper_codegen/README.md | 1 + juniper_codegen/release.toml | 7 +- juniper_graphql_ws/Cargo.toml | 4 +- juniper_graphql_ws/README.md | 1 + juniper_graphql_ws/release.toml | 7 +- juniper_hyper/Cargo.toml | 8 +- juniper_hyper/README.md | 1 + juniper_hyper/release.toml | 7 +- juniper_iron/Cargo.toml | 2 +- juniper_iron/README.md | 1 + juniper_iron/release.toml | 7 +- juniper_rocket/Cargo.toml | 9 +- juniper_rocket/README.md | 1 + juniper_rocket/release.toml | 7 +- juniper_subscriptions/Cargo.toml | 2 +- juniper_subscriptions/README.md | 1 + juniper_subscriptions/release.toml | 7 +- juniper_warp/Cargo.toml | 14 ++- juniper_warp/README.md | 1 + juniper_warp/release.toml | 7 +- release.toml | 2 +- 30 files changed, 233 insertions(+), 141 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2da7b27c..a0f5114e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,7 +3,7 @@ name: CI on: push: branches: ["master"] - tags: ["juniper*@*"] + tags: ["juniper*"] pull_request: branches: ["master"] @@ -27,6 +27,7 @@ jobs: - clippy - example - feature + - msrv - release-check - rustfmt - test @@ -47,9 +48,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 + - uses: dtolnay/rust-toolchain@v1 with: - profile: minimal toolchain: stable components: clippy @@ -59,9 +59,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 + - uses: dtolnay/rust-toolchain@v1 with: - profile: minimal toolchain: nightly components: rustfmt @@ -78,11 +77,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 + - uses: dtolnay/rust-toolchain@v1 with: - profile: minimal toolchain: stable - override: true - run: cargo clippy -p juniper_benchmarks --benches -- -D warnings - run: cargo bench -p juniper_benchmarks @@ -107,11 +104,10 @@ jobs: runs-on: ${{ matrix.os }}-latest steps: - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 + - uses: dtolnay/rust-toolchain@v1 with: - profile: minimal toolchain: ${{ matrix.toolchain }} - override: true + - run: rustup default ${{ matrix.toolchain }} - run: cargo check -p example_${{ matrix.example }} @@ -141,14 +137,14 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 + - uses: dtolnay/rust-toolchain@v1 with: - profile: minimal toolchain: stable - override: true + - uses: dtolnay/rust-toolchain@v1 + with: + toolchain: nightly - # TODO: Enable once MSRV is supported. - #- run: cargo +nightly update -Z minimal-versions + - run: cargo +nightly update -Z minimal-versions - run: cargo check -p ${{ matrix.crate }} --no-default-features ${{ matrix.feature != '<none>' @@ -157,23 +153,58 @@ jobs: env: RUSTFLAGS: -D warnings + msrv: + name: MSRV + strategy: + fail-fast: false + matrix: + msrv: ["1.62.0"] + crate: + - juniper_codegen + - juniper + - juniper_subscriptions + - juniper_graphql_ws + - juniper_actix + - juniper_hyper + #- juniper_iron + - juniper_rocket + - juniper_warp + os: + - ubuntu + - macOS + - windows + runs-on: ${{ matrix.os }}-latest + steps: + - uses: actions/checkout@v3 + - uses: dtolnay/rust-toolchain@v1 + with: + toolchain: ${{ matrix.msrv }} + - run: rustup default ${{ matrix.msrv }} + - uses: dtolnay/rust-toolchain@v1 + with: + toolchain: nightly + + - run: cargo +nightly update -Z minimal-versions + + - run: make test.cargo crate=${{ matrix.crate }} + package: if: ${{ startsWith(github.ref, 'refs/tags/juniper') }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 + - uses: dtolnay/rust-toolchain@v1 with: - profile: minimal toolchain: stable - - name: Parse crate name - id: crate - run: echo ::set-output - name=NAME::$(printf "$GITHUB_REF" | cut -d '/' -f3 - | cut -d '@' -f1) + - name: Parse crate name and version from Git tag + id: tag + uses: actions-ecosystem/action-regex-match@v2 + with: + text: ${{ github.ref }} + regex: '^refs/tags/(([a-z_]+)-v([0-9]+\.[0-9]+\.[0-9]+(-.+)?))$' - - run: cargo package -p ${{ steps.crate.outputs.NAME }} + - run: cargo package -p ${{ steps.tag.outputs.group2 }} test: strategy: @@ -211,13 +242,18 @@ jobs: runs-on: ${{ matrix.os }}-latest steps: - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 + - uses: dtolnay/rust-toolchain@v1 with: - profile: minimal toolchain: ${{ matrix.toolchain }} - override: true + components: rust-src + - run: rustup default ${{ matrix.toolchain }} + + - run: cargo install cargo-careful + if: ${{ matrix.toolchain == 'nightly' }} - run: make test.cargo crate=${{ matrix.crate }} + careful=${{ (matrix.toolchain == 'nightly' && 'yes') + || 'no' }} test-book: name: test Book @@ -237,11 +273,10 @@ jobs: runs-on: ${{ matrix.os }}-latest steps: - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 + - uses: dtolnay/rust-toolchain@v1 with: - profile: minimal toolchain: ${{ matrix.toolchain }} - override: true + - run: rustup default ${{ matrix.toolchain }} - run: cargo install mdbook @@ -261,12 +296,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 + - uses: dtolnay/rust-toolchain@v1 with: - profile: minimal toolchain: ${{ matrix.toolchain }} target: wasm32-unknown-unknown - override: true + - run: rustup default ${{ matrix.toolchain }} - run: cargo check --target wasm32-unknown-unknown -p ${{ matrix.crate }} @@ -278,7 +312,7 @@ jobs: ############# release-check: - name: Check release automation + name: check release if: ${{ !startsWith(github.ref, 'refs/tags/juniper') }} strategy: fail-fast: false @@ -296,9 +330,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 + - uses: dtolnay/rust-toolchain@v1 with: - profile: minimal toolchain: stable - run: cargo install cargo-release @@ -306,13 +339,36 @@ jobs: - run: make cargo.release crate=${{ matrix.crate }} ver=minor exec=no install=no + release-crate: + name: release on crates.io + needs: ["release-github"] + if: ${{ startsWith(github.ref, 'refs/tags/juniper') }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: dtolnay/rust-toolchain@v1 + with: + toolchain: stable + + - name: Parse crate name and version from Git tag + id: tag + uses: actions-ecosystem/action-regex-match@v2 + with: + text: ${{ github.ref }} + regex: '^refs/tags/(([a-z_]+)-v([0-9]+\.[0-9]+\.[0-9]+(-.+)?))$' + + - name: Publish `${{ steps.tag.outputs.group2 }}` crate + run: cargo publish -p ${{ steps.tag.outputs.group2 }} + --token ${{ secrets.CRATESIO_TOKEN }} + release-github: - name: Release on GitHub + name: release on GitHub needs: - bench - clippy - example - feature + - msrv - package - rustfmt - test @@ -323,56 +379,31 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Parse crate name - id: crate - run: echo ::set-output - name=NAME::$(printf "$GITHUB_REF" | cut -d '/' -f3 - | cut -d '@' -f1) - - name: Parse release version - id: release - run: echo ::set-output - name=VERSION::$(printf "$GITHUB_REF" | cut -d '@' -f2) - + - name: Parse crate name and version from Git tag + id: tag + uses: actions-ecosystem/action-regex-match@v2 + with: + text: ${{ github.ref }} + regex: '^refs/tags/(([a-z_]+)-v([0-9]+\.[0-9]+\.[0-9]+(-.+)?))$' - name: Verify release version matches crate's Cargo manifest - run: >- - test "${{ steps.release.outputs.VERSION }}" \ - == "$(grep -m1 'version = "' ${{ steps.crate.outputs.NAME }}/Cargo.toml | cut -d '"' -f2)" + run: | + test "${{ steps.tag.outputs.group3 }}" \ + == "$(grep -m1 'version = "' \ + ${{ steps.tag.outputs.group2 }}/Cargo.toml \ + | cut -d '"' -f2)" + - name: Parse CHANGELOG link id: changelog run: echo ::set-output - name=LINK::${{ github.server_url }}/${{ github.repository }}/blob/${{ steps.crate.outputs.NAME }}%40${{ steps.release.outputs.VERSION }}//${{ steps.crate.outputs.NAME }}/CHANGELOG.md#$(sed -n '/^## \[${{ steps.release.outputs.VERSION }}\]/{s/^## \[\(.*\)\][^0-9]*\([0-9].*\)/\1--\2/;s/[^0-9a-z-]*//g;p;}' ${{ steps.crate.outputs.NAME }}/CHANGELOG.md) + name=link::${{ github.server_url }}/${{ github.repository }}/blob/${{ steps.tag.outputs.group1 }}/${{ steps.tag.outputs.group2 }}/CHANGELOG.md#$(sed -n '/^## \[${{ steps.tag.outputs.group3 }}\]/{s/^## \[\(.*\)\][^0-9]*\([0-9].*\)/\1--\2/;s/[^0-9a-z-]*//g;p;}' ${{ steps.tag.outputs.group2 }}/CHANGELOG.md) - uses: softprops/action-gh-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - name: ${{ steps.crate.outputs.NAME }} ${{ steps.release.outputs.VERSION }} + name: ${{ steps.tag.outputs.group2 }} ${{ steps.tag.outputs.group3 }} body: | - [API docs](https://docs.rs/${{ steps.crate.outputs.NAME }}/${{ steps.release.outputs.VERSION }}) - [Changelog](${{ steps.changelog.outputs.LINK }}) - prerelease: ${{ contains(steps.release.outputs.VERSION, '-') }} - - release-crate: - name: Release on crates.io - needs: ["release-github"] - if: ${{ startsWith(github.ref, 'refs/tags/juniper') }} - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - - - name: Parse crate name - id: crate - run: echo ::set-output - name=NAME::$(printf "$GITHUB_REF" | cut -d '/' -f3 - | cut -d '@' -f1) - - - name: Publish crate - run: cargo publish -p ${{ steps.crate.outputs.NAME }} - --token ${{ secrets.CRATESIO_TOKEN }} + [API docs](https://docs.rs/${{ steps.tag.outputs.group2 }}/${{ steps.tag.outputs.group3 }}) + [Changelog](${{ steps.changelog.outputs.link }}) + prerelease: ${{ contains(steps.tag.outputs.group3, '-') }} diff --git a/Makefile b/Makefile index 7f5755be..833a61e8 100644 --- a/Makefile +++ b/Makefile @@ -100,11 +100,21 @@ endif # Run Rust tests of project crates. # # Usage: -# make test.cargo [crate=<crate-name>] +# make test.cargo [crate=<crate-name>] [careful=(no|yes)] test.cargo: - cargo $(if $(call eq,$(crate),juniper_codegen_tests),+nightly,) test \ - $(if $(call eq,$(crate),),--workspace,-p $(crate)) --all-features +ifeq ($(careful),yes) +ifeq ($(shell cargo install --list | grep cargo-careful),) + cargo install cargo-careful +endif +ifeq ($(shell rustup component list --toolchain=nightly \ + | grep 'rust-src (installed)'),) + rustup component add --toolchain=nightly rust-src +endif +endif + cargo $(if $(call eq,$(careful),yes),+nightly careful,\ + $(if $(call eq,$(crate),juniper_codegen_tests),+nightly,)) \ + test $(if $(call eq,$(crate),),--workspace,-p $(crate)) --all-features diff --git a/juniper/Cargo.toml b/juniper/Cargo.toml index 93f9c787..3a80a5ec 100644 --- a/juniper/Cargo.toml +++ b/juniper/Cargo.toml @@ -32,11 +32,13 @@ default = [ "uuid", ] chrono-clock = ["chrono", "chrono/clock"] +chrono-tz = ["dep:chrono-tz", "dep:regex"] expose-test-schema = ["anyhow", "serde_json"] +graphql-parser = ["dep:graphql-parser", "dep:void"] schema-language = ["graphql-parser"] [dependencies] -anyhow = { version = "1.0.32", default-features = false, optional = true } +anyhow = { version = "1.0.47", default-features = false, optional = true } async-trait = "0.1.39" bigdecimal = { version = "0.3", optional = true } bson = { version = "2.4", features = ["chrono-0_4"], optional = true } @@ -48,15 +50,21 @@ futures-enum = { version = "0.1.12", default-features = false } graphql-parser = { version = "0.4", optional = true } indexmap = { version = "1.0", features = ["serde-1"] } juniper_codegen = { version = "0.16.0-dev", path = "../juniper_codegen" } -rust_decimal = { version = "1.0", default-features = false, optional = true } -serde = { version = "1.0.8", features = ["derive"] } -serde_json = { version = "1.0.2", default-features = false, optional = true } +rust_decimal = { version = "1.20", default-features = false, optional = true } +serde = { version = "1.0.122", features = ["derive"] } +serde_json = { version = "1.0.18", default-features = false, optional = true } smartstring = "1.0" static_assertions = "1.1" time = { version = "0.3", features = ["formatting", "macros", "parsing"], optional = true } url = { version = "2.0", optional = true } uuid = { version = "1.0", default-features = false, optional = true } +# Fixes for MSRV check. +# TODO: Try remove on upgrade of `chrono-tz` crate. +regex = { version = "1.6", default-features = false, optional = true } +# TODO: Remove on upgrade to 4.0.1 version of `graphql-parser`. +void = { version = "1.0.2", optional = true } + [target.'cfg(target_arch = "wasm32")'.dependencies] getrandom = { version = "0.2", features = ["js"] } @@ -64,7 +72,7 @@ getrandom = { version = "0.2", features = ["js"] } bencher = "0.1.2" chrono = { version = "0.4.20", features = ["alloc"], default-features = false } pretty_assertions = "1.0.0" -serde_json = "1.0.2" +serde_json = "1.0.18" tokio = { version = "1.0", features = ["macros", "time", "rt-multi-thread"] } [[bench]] diff --git a/juniper/README.md b/juniper/README.md index feb17329..39fb2dbe 100644 --- a/juniper/README.md +++ b/juniper/README.md @@ -4,6 +4,7 @@ Juniper (GraphQL server library for Rust) [](https://crates.io/crates/juniper) [](https://docs.rs/juniper) [](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster) +[](https://blog.rust-lang.org/2022/06/30/Rust-1.62.0.html) - [Juniper Book] ([current][Juniper Book] | [edge][Juniper Book edge]) - [Changelog](https://github.com/graphql-rust/juniper/blob/master/juniper/CHANGELOG.md) diff --git a/juniper/release.toml b/juniper/release.toml index a8cc1d5f..f490007e 100644 --- a/juniper/release.toml +++ b/juniper/release.toml @@ -78,17 +78,19 @@ replace = "juniper = { version = \"{{version}}\"" [[pre-release-replacements]] file = "CHANGELOG.md" -exactly = 1 +max = 1 +min = 0 search = "## master" -replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}%40{{version}}/{{crate_name}}" +replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}-v{{version}}/{{crate_name}}" [[pre-release-replacements]] file = "CHANGELOG.md" -exactly = 1 +max = 1 +min = 0 search = "...master\\)" -replace = "...{{crate_name}}%40{{version}})" +replace = "...{{crate_name}}-v{{version}})" [[pre-release-replacements]] file = "README.md" exactly = 2 search = "graphql-rust/juniper/blob/[^/]+/" -replace = "graphql-rust/juniper/blob/{{crate_name}}%40{{version}}/" +replace = "graphql-rust/juniper/blob/{{crate_name}}-v{{version}}/" diff --git a/juniper_actix/Cargo.toml b/juniper_actix/Cargo.toml index 0bcb8d4c..ccce57a9 100644 --- a/juniper_actix/Cargo.toml +++ b/juniper_actix/Cargo.toml @@ -19,23 +19,32 @@ all-features = true rustdoc-args = ["--cfg", "docsrs"] [features] -subscriptions = ["juniper_graphql_ws", "tokio"] +subscriptions = [ + "dep:actix", + "dep:actix-web-actors", + "dep:juniper_graphql_ws", + "dep:tokio", +] [dependencies] -actix = "0.13" -actix-http = "3.0" -actix-web = "4.0" -actix-web-actors = "4.1.0" -anyhow = "1.0" +actix = { version = ">=0.12,<=0.13", optional = true } +actix-http = "3.2" +actix-web = "4.2.1" +actix-web-actors = { version = "4.1", optional = true } +anyhow = "1.0.47" futures = "0.3.22" juniper = { version = "0.16.0-dev", path = "../juniper", default-features = false } juniper_graphql_ws = { version = "0.4.0-dev", path = "../juniper_graphql_ws", optional = true } http = "0.2.4" -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" +serde = { version = "1.0.122", features = ["derive"] } +serde_json = "1.0.18" thiserror = "1.0" tokio = { version = "1.0", features = ["sync"], optional = true } +# Fixes for MSRV check. +# TODO: Try remove on upgrade to 4.3 version of `actix-web` crate. +derive_more = { version = "0.99.8", default-features = false } + [dev-dependencies] actix-cors = "0.6" actix-identity = "0.5" diff --git a/juniper_actix/README.md b/juniper_actix/README.md index 833685d0..4769c57d 100644 --- a/juniper_actix/README.md +++ b/juniper_actix/README.md @@ -4,6 +4,7 @@ [](https://crates.io/crates/juniper_actix) [](https://docs.rs/juniper_actix) [](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster) +[](https://blog.rust-lang.org/2022/06/30/Rust-1.62.0.html) - [Changelog](https://github.com/graphql-rust/juniper/blob/master/juniper_actix/CHANGELOG.md) diff --git a/juniper_actix/release.toml b/juniper_actix/release.toml index 4806c63e..0c899826 100644 --- a/juniper_actix/release.toml +++ b/juniper_actix/release.toml @@ -1,11 +1,12 @@ [[pre-release-replacements]] file = "CHANGELOG.md" -exactly = 1 +max = 1 +min = 0 search = "## master" -replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}%40{{version}}/{{crate_name}}" +replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}-v{{version}}/{{crate_name}}" [[pre-release-replacements]] file = "README.md" exactly = 3 search = "graphql-rust/juniper/blob/[^/]+/" -replace = "graphql-rust/juniper/blob/{{crate_name}}%40{{version}}/" +replace = "graphql-rust/juniper/blob/{{crate_name}}-v{{version}}/" diff --git a/juniper_codegen/Cargo.toml b/juniper_codegen/Cargo.toml index b2291658..ee4c022c 100644 --- a/juniper_codegen/Cargo.toml +++ b/juniper_codegen/Cargo.toml @@ -23,13 +23,13 @@ proc-macro = true [dependencies] proc-macro-error = "1.0.2" -proc-macro2 = "1.0.1" -quote = "1.0.3" +proc-macro2 = "1.0.4" +quote = "1.0.9" syn = { version = "1.0.90", features = ["extra-traits", "full", "parsing", "visit", "visit-mut"], default-features = false } url = "2.0" [dev-dependencies] -derive_more = "0.99.7" +derive_more = "0.99.8" futures = "0.3.22" juniper = { path = "../juniper" } -serde = "1.0" +serde = "1.0.122" diff --git a/juniper_codegen/README.md b/juniper_codegen/README.md index 9ccfd60a..5cf8861f 100644 --- a/juniper_codegen/README.md +++ b/juniper_codegen/README.md @@ -4,6 +4,7 @@ [](https://crates.io/crates/juniper_codegen) [](https://docs.rs/juniper_codegen) [](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster) +[](https://blog.rust-lang.org/2022/06/30/Rust-1.62.0.html) - [Changelog](https://github.com/graphql-rust/juniper/blob/master/juniper_codegen/CHANGELOG.md) diff --git a/juniper_codegen/release.toml b/juniper_codegen/release.toml index b8548dbf..9c1b275b 100644 --- a/juniper_codegen/release.toml +++ b/juniper_codegen/release.toml @@ -6,12 +6,13 @@ replace = "{{crate_name}} = { version = \"{{version}}\"" [[pre-release-replacements]] file = "CHANGELOG.md" -exactly = 1 +max = 1 +min = 0 search = "## master" -replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}%40{{version}}/{{crate_name}}" +replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}-v{{version}}/{{crate_name}}" [[pre-release-replacements]] file = "README.md" exactly = 2 search = "graphql-rust/juniper/blob/[^/]+/" -replace = "graphql-rust/juniper/blob/{{crate_name}}%40{{version}}/" +replace = "graphql-rust/juniper/blob/{{crate_name}}-v{{version}}/" diff --git a/juniper_graphql_ws/Cargo.toml b/juniper_graphql_ws/Cargo.toml index c8b68806..38da4352 100644 --- a/juniper_graphql_ws/Cargo.toml +++ b/juniper_graphql_ws/Cargo.toml @@ -17,8 +17,8 @@ exclude = ["/release.toml"] [dependencies] juniper = { version = "0.16.0-dev", path = "../juniper", default-features = false } juniper_subscriptions = { version = "0.17.0-dev", path = "../juniper_subscriptions" } -serde = { version = "1.0.8", features = ["derive"], default-features = false } +serde = { version = "1.0.122", features = ["derive"], default-features = false } tokio = { version = "1.0", features = ["macros", "rt", "time"], default-features = false } [dev-dependencies] -serde_json = "1.0" +serde_json = "1.0.18" diff --git a/juniper_graphql_ws/README.md b/juniper_graphql_ws/README.md index b3f18e1c..0f981e89 100644 --- a/juniper_graphql_ws/README.md +++ b/juniper_graphql_ws/README.md @@ -4,6 +4,7 @@ [](https://crates.io/crates/juniper_graphql_ws) [](https://docs.rs/juniper_graphql_ws) [](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster) +[](https://blog.rust-lang.org/2022/06/30/Rust-1.62.0.html) - [Changelog](https://github.com/graphql-rust/juniper/blob/master/juniper_graphql_ws/CHANGELOG.md) diff --git a/juniper_graphql_ws/release.toml b/juniper_graphql_ws/release.toml index 8c424022..5fa8d586 100644 --- a/juniper_graphql_ws/release.toml +++ b/juniper_graphql_ws/release.toml @@ -12,12 +12,13 @@ replace = "juniper_graphql_ws = { version = \"{{version}}\"" [[pre-release-replacements]] file = "CHANGELOG.md" -exactly = 1 +max = 1 +min = 0 search = "## master" -replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}%40{{version}}/{{crate_name}}" +replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}-v{{version}}/{{crate_name}}" [[pre-release-replacements]] file = "README.md" exactly = 2 search = "graphql-rust/juniper/blob/[^/]+/" -replace = "graphql-rust/juniper/blob/{{crate_name}}%40{{version}}/" +replace = "graphql-rust/juniper/blob/{{crate_name}}-v{{version}}/" diff --git a/juniper_hyper/Cargo.toml b/juniper_hyper/Cargo.toml index 59f1c8a1..a67c6985 100644 --- a/juniper_hyper/Cargo.toml +++ b/juniper_hyper/Cargo.toml @@ -16,12 +16,16 @@ exclude = ["/examples/", "/release.toml"] [dependencies] futures = "0.3.22" -hyper = { version = "0.14", features = ["server", "runtime"] } +hyper = { version = "0.14.7", features = ["server", "runtime"] } juniper = { version = "0.16.0-dev", path = "../juniper", default-features = false } -serde_json = "1.0" +serde_json = "1.0.18" tokio = "1.0" url = "2.0" +# Fixes for MSRV check. +# TODO: Try remove on upgrade of `hyper` crate. +http-body = "0.4.5" + [dev-dependencies] juniper = { version = "0.16.0-dev", path = "../juniper", features = ["expose-test-schema"] } pretty_env_logger = "0.4" diff --git a/juniper_hyper/README.md b/juniper_hyper/README.md index 3d9d5d10..a8b43a35 100644 --- a/juniper_hyper/README.md +++ b/juniper_hyper/README.md @@ -4,6 +4,7 @@ [](https://crates.io/crates/juniper_hyper) [](https://docs.rs/juniper_hyper) [](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster) +[](https://blog.rust-lang.org/2022/06/30/Rust-1.62.0.html) - [Changelog](https://github.com/graphql-rust/juniper/blob/master/juniper_hyper/CHANGELOG.md) diff --git a/juniper_hyper/release.toml b/juniper_hyper/release.toml index 4818936d..7a20c9f7 100644 --- a/juniper_hyper/release.toml +++ b/juniper_hyper/release.toml @@ -6,12 +6,13 @@ replace = "juniper_hyper = \"{{version}}\"" [[pre-release-replacements]] file = "CHANGELOG.md" -exactly = 1 +max = 1 +min = 0 search = "## master" -replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}%40{{version}}/{{crate_name}}" +replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}-v{{version}}/{{crate_name}}" [[pre-release-replacements]] file = "README.md" exactly = 3 search = "graphql-rust/juniper/blob/[^/]+/" -replace = "graphql-rust/juniper/blob/{{crate_name}}%40{{version}}/" +replace = "graphql-rust/juniper/blob/{{crate_name}}-v{{version}}/" diff --git a/juniper_iron/Cargo.toml b/juniper_iron/Cargo.toml index 7eef05d3..726aa651 100644 --- a/juniper_iron/Cargo.toml +++ b/juniper_iron/Cargo.toml @@ -21,7 +21,7 @@ exclude = ["/examples/", "/release.toml"] futures = "0.3.22" iron = ">= 0.5, < 0.7" juniper = { version = "0.16.0-dev", path = "../juniper", default-features = false } -serde_json = "1.0.2" +serde_json = "1.0.18" urlencoded = ">= 0.5, < 0.7" [dev-dependencies] diff --git a/juniper_iron/README.md b/juniper_iron/README.md index a1eaeae0..4654ef0e 100644 --- a/juniper_iron/README.md +++ b/juniper_iron/README.md @@ -4,6 +4,7 @@ [](https://crates.io/crates/juniper_iron) [](https://docs.rs/juniper_iron) [](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster) +[](https://blog.rust-lang.org/2022/06/30/Rust-1.62.0.html) - [Changelog](https://github.com/graphql-rust/juniper/blob/master/juniper_iron/CHANGELOG.md) diff --git a/juniper_iron/release.toml b/juniper_iron/release.toml index bbbf30d6..b965a783 100644 --- a/juniper_iron/release.toml +++ b/juniper_iron/release.toml @@ -6,12 +6,13 @@ replace = "juniper_iron = \"{{version}}\"" [[pre-release-replacements]] file = "CHANGELOG.md" -exactly = 1 +max = 1 +min = 0 search = "## master" -replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}%40{{version}}/{{crate_name}}" +replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}-v{{version}}/{{crate_name}}" [[pre-release-replacements]] file = "README.md" exactly = 3 search = "graphql-rust/juniper/blob/[^/]+/" -replace = "graphql-rust/juniper/blob/{{crate_name}}%40{{version}}/" +replace = "graphql-rust/juniper/blob/{{crate_name}}-v{{version}}/" diff --git a/juniper_rocket/Cargo.toml b/juniper_rocket/Cargo.toml index e715609e..1473b2d6 100644 --- a/juniper_rocket/Cargo.toml +++ b/juniper_rocket/Cargo.toml @@ -21,7 +21,14 @@ exclude = ["/examples/", "/tests/", "/release.toml"] futures = "0.3.22" juniper = { version = "0.16.0-dev", path = "../juniper", default-features = false } rocket = { version = "=0.5.0-rc.2", default-features = false } -serde_json = "1.0.2" +serde_json = "1.0.18" + +# Fixes for MSRV check. +# TODO: Try remove on upgrade of `rocket` crate. +either = "1.8" +inlinable_string = "0.1.15" +proc-macro2-diagnostics = "0.9.1" +tempfile = "3.3" [dev-dependencies] juniper = { version = "0.16.0-dev", path = "../juniper", features = ["expose-test-schema"] } diff --git a/juniper_rocket/README.md b/juniper_rocket/README.md index 651e3a5d..4d0362ce 100644 --- a/juniper_rocket/README.md +++ b/juniper_rocket/README.md @@ -4,6 +4,7 @@ [](https://crates.io/crates/juniper_rocket) [](https://docs.rs/juniper_rocket) [](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster) +[](https://blog.rust-lang.org/2022/06/30/Rust-1.62.0.html) - [Changelog](https://github.com/graphql-rust/juniper/blob/master/juniper_rocket/CHANGELOG.md) diff --git a/juniper_rocket/release.toml b/juniper_rocket/release.toml index 4b548081..1a54940d 100644 --- a/juniper_rocket/release.toml +++ b/juniper_rocket/release.toml @@ -6,12 +6,13 @@ replace = "juniper_rocket = \"{{version}}\"" [[pre-release-replacements]] file = "CHANGELOG.md" -exactly = 1 +max = 1 +min = 0 search = "## master" -replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}%40{{version}}/{{crate_name}}" +replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}-v{{version}}/{{crate_name}}" [[pre-release-replacements]] file = "README.md" exactly = 3 search = "graphql-rust/juniper/blob/[^/]+/" -replace = "graphql-rust/juniper/blob/{{crate_name}}%40{{version}}/" +replace = "graphql-rust/juniper/blob/{{crate_name}}-v{{version}}/" diff --git a/juniper_subscriptions/Cargo.toml b/juniper_subscriptions/Cargo.toml index 8c6a14a5..5c054205 100644 --- a/juniper_subscriptions/Cargo.toml +++ b/juniper_subscriptions/Cargo.toml @@ -19,5 +19,5 @@ futures = "0.3.22" juniper = { version = "0.16.0-dev", path = "../juniper", default-features = false } [dev-dependencies] -serde_json = "1.0" +serde_json = "1.0.18" tokio = { version = "1.0", features = ["macros", "rt"] } diff --git a/juniper_subscriptions/README.md b/juniper_subscriptions/README.md index e04493a0..272903b9 100644 --- a/juniper_subscriptions/README.md +++ b/juniper_subscriptions/README.md @@ -4,6 +4,7 @@ [](https://crates.io/crates/juniper_subscriptions) [](https://docs.rs/juniper_subscriptions) [](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster) +[](https://blog.rust-lang.org/2022/06/30/Rust-1.62.0.html) - [Changelog](https://github.com/graphql-rust/juniper/blob/master/juniper_subscriptions/CHANGELOG.md) diff --git a/juniper_subscriptions/release.toml b/juniper_subscriptions/release.toml index 837f61ae..a12a9065 100644 --- a/juniper_subscriptions/release.toml +++ b/juniper_subscriptions/release.toml @@ -12,12 +12,13 @@ replace = "juniper_subscriptions = { version = \"{{version}}\"" [[pre-release-replacements]] file = "CHANGELOG.md" -exactly = 1 +max = 1 +min = 0 search = "## master" -replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}%40{{version}}/{{crate_name}}" +replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}-v{{version}}/{{crate_name}}" [[pre-release-replacements]] file = "README.md" exactly = 3 search = "graphql-rust/juniper/blob/[^/]+/" -replace = "graphql-rust/juniper/blob/{{crate_name}}%40{{version}}/" +replace = "graphql-rust/juniper/blob/{{crate_name}}-v{{version}}/" diff --git a/juniper_warp/Cargo.toml b/juniper_warp/Cargo.toml index 361b00f5..719ece8e 100644 --- a/juniper_warp/Cargo.toml +++ b/juniper_warp/Cargo.toml @@ -19,18 +19,22 @@ all-features = true rustdoc-args = ["--cfg", "docsrs"] [features] -subscriptions = ["juniper_graphql_ws"] +subscriptions = ["dep:juniper_graphql_ws", "warp/websocket"] [dependencies] -anyhow = "1.0" +anyhow = "1.0.47" futures = "0.3.22" juniper = { version = "0.16.0-dev", path = "../juniper", default-features = false } juniper_graphql_ws = { version = "0.4.0-dev", path = "../juniper_graphql_ws", optional = true } -serde = { version = "1.0.75", features = ["derive"] } -serde_json = "1.0.24" +serde = { version = "1.0.122", features = ["derive"] } +serde_json = "1.0.18" thiserror = "1.0" tokio = { version = "1.0", features = ["rt-multi-thread"] } -warp = "0.3" +warp = { version = "0.3.2", default-features = false } + +# Fixes for MSRV check. +# TODO: Try remove on upgrade of `warp` crate. +headers = "0.3.8" [dev-dependencies] env_logger = "0.9" diff --git a/juniper_warp/README.md b/juniper_warp/README.md index 4148f484..2d7b2440 100644 --- a/juniper_warp/README.md +++ b/juniper_warp/README.md @@ -4,6 +4,7 @@ [](https://crates.io/crates/juniper_warp) [](https://docs.rs/juniper_warp) [](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster) +[](https://blog.rust-lang.org/2022/06/30/Rust-1.62.0.html) - [Changelog](https://github.com/graphql-rust/juniper/blob/master/juniper_warp/CHANGELOG.md) diff --git a/juniper_warp/release.toml b/juniper_warp/release.toml index 283666df..e747c48b 100644 --- a/juniper_warp/release.toml +++ b/juniper_warp/release.toml @@ -6,12 +6,13 @@ replace = "juniper_warp = \"{{version}}\"" [[pre-release-replacements]] file = "CHANGELOG.md" -exactly = 1 +max = 1 +min = 0 search = "## master" -replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}%40{{version}}/{{crate_name}}" +replace = "## [{{version}}] · {{date}}\n[{{version}}]: /../../tree/{{crate_name}}-v{{version}}/{{crate_name}}" [[pre-release-replacements]] file = "README.md" exactly = 3 search = "graphql-rust/juniper/blob/[^/]+/" -replace = "graphql-rust/juniper/blob/{{crate_name}}%40{{version}}/" +replace = "graphql-rust/juniper/blob/{{crate_name}}-v{{version}}/" diff --git a/release.toml b/release.toml index 09c0beb4..983c0bf1 100644 --- a/release.toml +++ b/release.toml @@ -1,4 +1,4 @@ allow-branch = ["*"] pre-release-commit-message = "Prepare {{version}} release of `{{crate_name}}` crate" tag-message = "{{version}} version of `{{crate_name}}` crate" -tag-name = "{{crate_name}}@{{version}}" +tag-name = "{{crate_name}}-v{{version}}"