Upgrade actix-ws crate from 0.2 to 0.3 version (#1267)

- bump up MSRV to 1.75 in `juniper_actix` crate

Additionally:
- remove redundant `InterruptableStream` definitions in `juniper_graphql_ws` crate

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kai Ren <tyranron@gmail.com>
This commit is contained in:
dependabot[bot] 2024-07-23 14:43:02 +02:00 committed by GitHub
parent a4974e179b
commit caa9495f01
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 21 additions and 42 deletions

View file

@ -150,7 +150,7 @@ jobs:
- juniper - juniper
- juniper_subscriptions - juniper_subscriptions
- juniper_graphql_ws - juniper_graphql_ws
- juniper_actix #- juniper_actix
- juniper_axum - juniper_axum
- juniper_hyper - juniper_hyper
- juniper_rocket - juniper_rocket
@ -159,6 +159,10 @@ jobs:
- ubuntu - ubuntu
- macOS - macOS
- windows - windows
include:
- { msrv: "1.75.0", crate: "juniper_actix", os: "ubuntu" }
- { msrv: "1.75.0", crate: "juniper_actix", os: "macOS" }
- { msrv: "1.75.0", crate: "juniper_actix", os: "windows" }
runs-on: ${{ matrix.os }}-latest runs-on: ${{ matrix.os }}-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -172,10 +176,6 @@ jobs:
- run: cargo +nightly update -Z minimal-versions - run: cargo +nightly update -Z minimal-versions
- run: make test.cargo crate=${{ matrix.crate }} - run: make test.cargo crate=${{ matrix.crate }}
if: ${{ matrix.crate != 'juniper_actix' }}
# TODO: Remove once MSRV bumps up >=1.75.
- run: cargo check -p ${{ matrix.crate }} --all-features
if: ${{ matrix.crate == 'juniper_actix' }}
package: package:
name: check (package) name: check (package)

View file

@ -6,6 +6,18 @@ All user visible changes to `juniper_actix` crate will be documented in this fil
## master
### BC Breaks
- Switched to 0.3 version of [`actix-ws` crate]. ([#1267])
- Bumped up [MSRV] to 1.75 due to [`actix-ws` crate] requirements. ([#1267])
[#1267]: /../../pull/1267
## [0.5.0] · 2024-03-20 ## [0.5.0] · 2024-03-20
[0.5.0]: /../../tree/juniper_actix-v0.5.0/juniper_actix [0.5.0]: /../../tree/juniper_actix-v0.5.0/juniper_actix
@ -49,4 +61,5 @@ See [old CHANGELOG](/../../blob/juniper_actix-v0.4.0/juniper_actix/CHANGELOG.md)
[`juniper_graphql_ws` crate]: https://docs.rs/juniper_graphql_ws [`juniper_graphql_ws` crate]: https://docs.rs/juniper_graphql_ws
[Semantic Versioning 2.0.0]: https://semver.org [Semantic Versioning 2.0.0]: https://semver.org
[graphql-transport-ws]: https://github.com/enisdenjo/graphql-ws/blob/v5.14.0/PROTOCOL.md [graphql-transport-ws]: https://github.com/enisdenjo/graphql-ws/blob/v5.14.0/PROTOCOL.md
[graphql-ws]: https://github.com/apollographql/subscriptions-transport-ws/blob/v0.11.0/PROTOCOL.md [graphql-ws]: https://github.com/apollographql/subscriptions-transport-ws/blob/v0.11.0/PROTOCOL.md
[MSRV]: https://doc.rust-lang.org/cargo/reference/manifest.html#the-rust-version-field

View file

@ -2,7 +2,7 @@
name = "juniper_actix" name = "juniper_actix"
version = "0.5.0" version = "0.5.0"
edition = "2021" edition = "2021"
rust-version = "1.73" rust-version = "1.75"
description = "`juniper` GraphQL integration with `actix-web`." description = "`juniper` GraphQL integration with `actix-web`."
license = "BSD-2-Clause" license = "BSD-2-Clause"
authors = [ authors = [
@ -27,7 +27,7 @@ subscriptions = ["dep:actix-ws", "dep:juniper_graphql_ws"]
[dependencies] [dependencies]
actix-http = "3.2" actix-http = "3.2"
actix-web = "4.4" actix-web = "4.4"
actix-ws = { version = "0.2", optional = true } actix-ws = { version = "0.3", optional = true }
anyhow = "1.0.47" anyhow = "1.0.47"
futures = "0.3.22" futures = "0.3.22"
juniper = { version = "0.16", path = "../juniper", default-features = false } juniper = { version = "0.16", path = "../juniper", default-features = false }

View file

@ -290,23 +290,6 @@ impl<S: Schema, I: Init<S::ScalarValue, S::Context>> ConnectionState<S, I> {
} }
} }
struct InterruptableStream<S> {
stream: S,
rx: oneshot::Receiver<()>,
}
impl<S: Stream + Unpin> Stream for InterruptableStream<S> {
type Item = S::Item;
fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context) -> Poll<Option<Self::Item>> {
match Pin::new(&mut self.rx).poll(cx) {
Poll::Ready(_) => return Poll::Ready(None),
Poll::Pending => {}
}
Pin::new(&mut self.stream).poll_next(cx)
}
}
/// SubscriptionStartState is the state for a subscription operation. /// SubscriptionStartState is the state for a subscription operation.
enum SubscriptionStartState<S: Schema> { enum SubscriptionStartState<S: Schema> {
/// Init is the start before being polled for the first time. /// Init is the start before being polled for the first time.

View file

@ -260,23 +260,6 @@ impl<S: Schema, I: Init<S::ScalarValue, S::Context>> ConnectionState<S, I> {
} }
} }
struct InterruptableStream<S> {
stream: S,
rx: oneshot::Receiver<()>,
}
impl<S: Stream + Unpin> Stream for InterruptableStream<S> {
type Item = S::Item;
fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context) -> Poll<Option<Self::Item>> {
match Pin::new(&mut self.rx).poll(cx) {
Poll::Ready(_) => return Poll::Ready(None),
Poll::Pending => {}
}
Pin::new(&mut self.stream).poll_next(cx)
}
}
/// SubscriptionStartState is the state for a subscription operation. /// SubscriptionStartState is the state for a subscription operation.
enum SubscriptionStartState<S: Schema> { enum SubscriptionStartState<S: Schema> {
/// Init is the start before being polled for the first time. /// Init is the start before being polled for the first time.