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`
This commit is contained in:
Kai Ren 2022-10-21 19:07:17 +03:00 committed by GitHub
parent 3a2254b854
commit f3df70693c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 233 additions and 141 deletions

View file

@ -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, '-') }}

View file

@ -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

View file

@ -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]]

View file

@ -4,6 +4,7 @@ Juniper (GraphQL server library for Rust)
[![Crates.io](https://img.shields.io/crates/v/juniper.svg?maxAge=2592000)](https://crates.io/crates/juniper)
[![Documentation](https://docs.rs/juniper/badge.svg)](https://docs.rs/juniper)
[![CI](https://github.com/graphql-rust/juniper/workflows/CI/badge.svg?branch=master "CI")](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster)
[![Rust 1.62+](https://img.shields.io/badge/rustc-1.62+-lightgray.svg "Rust 1.62+")](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)

View file

@ -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}}/"

View file

@ -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"

View file

@ -4,6 +4,7 @@
[![Crates.io](https://img.shields.io/crates/v/juniper_actix.svg?maxAge=2592000)](https://crates.io/crates/juniper_actix)
[![Documentation](https://docs.rs/juniper_actix/badge.svg)](https://docs.rs/juniper_actix)
[![CI](https://github.com/graphql-rust/juniper/workflows/CI/badge.svg?branch=master "CI")](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster)
[![Rust 1.62+](https://img.shields.io/badge/rustc-1.62+-lightgray.svg "Rust 1.62+")](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)

View file

@ -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}}/"

View file

@ -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"

View file

@ -4,6 +4,7 @@
[![Crates.io](https://img.shields.io/crates/v/juniper_codegen.svg?maxAge=2592000)](https://crates.io/crates/juniper_codegen)
[![Documentation](https://docs.rs/juniper_codegen/badge.svg)](https://docs.rs/juniper_codegen)
[![CI](https://github.com/graphql-rust/juniper/workflows/CI/badge.svg?branch=master "CI")](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster)
[![Rust 1.62+](https://img.shields.io/badge/rustc-1.62+-lightgray.svg "Rust 1.62+")](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)

View file

@ -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}}/"

View file

@ -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"

View file

@ -4,6 +4,7 @@
[![Crates.io](https://img.shields.io/crates/v/juniper_graphql_ws.svg?maxAge=2592000)](https://crates.io/crates/juniper_graphql_ws)
[![Documentation](https://docs.rs/juniper_graphql_ws/badge.svg)](https://docs.rs/juniper_graphql_ws)
[![CI](https://github.com/graphql-rust/juniper/workflows/CI/badge.svg?branch=master "CI")](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster)
[![Rust 1.62+](https://img.shields.io/badge/rustc-1.62+-lightgray.svg "Rust 1.62+")](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)

View file

@ -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}}/"

View file

@ -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"

View file

@ -4,6 +4,7 @@
[![Crates.io](https://img.shields.io/crates/v/juniper_hyper.svg?maxAge=2592000)](https://crates.io/crates/juniper_hyper)
[![Documentation](https://docs.rs/juniper_hyper/badge.svg)](https://docs.rs/juniper_hyper)
[![CI](https://github.com/graphql-rust/juniper/workflows/CI/badge.svg?branch=master "CI")](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster)
[![Rust 1.62+](https://img.shields.io/badge/rustc-1.62+-lightgray.svg "Rust 1.62+")](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)

View file

@ -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}}/"

View file

@ -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]

View file

@ -4,6 +4,7 @@
[![Crates.io](https://img.shields.io/crates/v/juniper_iron.svg?maxAge=2592000)](https://crates.io/crates/juniper_iron)
[![Documentation](https://docs.rs/juniper_iron/badge.svg)](https://docs.rs/juniper_iron)
[![CI](https://github.com/graphql-rust/juniper/workflows/CI/badge.svg?branch=master "CI")](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster)
[![Rust 1.62+](https://img.shields.io/badge/rustc-1.62+-lightgray.svg "Rust 1.62+")](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)

View file

@ -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}}/"

View file

@ -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"] }

View file

@ -4,6 +4,7 @@
[![Crates.io](https://img.shields.io/crates/v/juniper_rocket.svg?maxAge=2592000)](https://crates.io/crates/juniper_rocket)
[![Documentation](https://docs.rs/juniper_rocket/badge.svg)](https://docs.rs/juniper_rocket)
[![CI](https://github.com/graphql-rust/juniper/workflows/CI/badge.svg?branch=master "CI")](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster)
[![Rust 1.62+](https://img.shields.io/badge/rustc-1.62+-lightgray.svg "Rust 1.62+")](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)

View file

@ -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}}/"

View file

@ -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"] }

View file

@ -4,6 +4,7 @@
[![Crates.io](https://img.shields.io/crates/v/juniper_subscriptions.svg?maxAge=2592000)](https://crates.io/crates/juniper_subscriptions)
[![Documentation](https://docs.rs/juniper_subscriptions/badge.svg)](https://docs.rs/juniper_subscriptions)
[![CI](https://github.com/graphql-rust/juniper/workflows/CI/badge.svg?branch=master "CI")](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster)
[![Rust 1.62+](https://img.shields.io/badge/rustc-1.62+-lightgray.svg "Rust 1.62+")](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)

View file

@ -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}}/"

View file

@ -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"

View file

@ -4,6 +4,7 @@
[![Crates.io](https://img.shields.io/crates/v/juniper_warp.svg?maxAge=2592000)](https://crates.io/crates/juniper_warp)
[![Documentation](https://docs.rs/juniper_warp/badge.svg)](https://docs.rs/juniper_warp)
[![CI](https://github.com/graphql-rust/juniper/workflows/CI/badge.svg?branch=master "CI")](https://github.com/graphql-rust/juniper/actions?query=workflow%3ACI+branch%3Amaster)
[![Rust 1.62+](https://img.shields.io/badge/rustc-1.62+-lightgray.svg "Rust 1.62+")](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)

View file

@ -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}}/"

View file

@ -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}}"