Skip to content

chore: allow syn v1 and v2 to coexist peacefully#2401

Merged
hawkw merged 1 commit intomainfrom
eliza/allow-syn2
Apr 25, 2023
Merged

chore: allow syn v1 and v2 to coexist peacefully#2401
hawkw merged 1 commit intomainfrom
eliza/allow-syn2

Conversation

@hawkw
Copy link
Contributor

@hawkw hawkw commented Apr 25, 2023

The proc-macro ecosystem is in the middle of a migration from syn v1 to syn v2. Some crates (such as tokio-macros, async-trait, tracing-attributes, etc) have been updated to v2, while others haven't yet. This means that cargo deny will not currently permit us to update some of those crates to versions that depend on syn v2, because they will create a duplicate dependency.

Since syn is used by proc-macros (executed at compile time), duplicate versions won't have an impact on the final binary size. Therefore, it's fine to allow both v1 and v2 to coexist while the ecosystem is still being gradually migrated to the new version.

The proc-macro ecosystem is in the middle of a migration from `syn` v1
to `syn` v2. Some crates (such as `tokio-macros`, `async-trait`,
`tracing-attributes`, etc) have been updated to v2, while others haven't
yet. This means that `cargo deny` will not currently permit us to update
some of those crates to versions that depend on `syn` v2, because they
will create a duplicate dependency.

Since `syn` is used by proc-macros (executed at compile time), duplicate
versions won't have an impact on the final binary size. Therefore, it's
fine to allow both v1 and v2 to coexist while the ecosystem is still
being gradually migrated to the new version.
@hawkw hawkw requested a review from a team as a code owner April 25, 2023 18:01
@hawkw hawkw merged commit 717fd22 into main Apr 25, 2023
@hawkw hawkw deleted the eliza/allow-syn2 branch April 25, 2023 19:42
hawkw added a commit to linkerd/linkerd2 that referenced this pull request Apr 25, 2023
This proxy release fixes an issue where outbound proxies would attempt
protocol detection on ports that are marked as opaque. It also adds
support for ranges (such as `10-20`) in the
`LINKERD2_PROXY_INBOUND_PORTS_DISABLE_PROTOCOL_DETECTION` and
`LINKERD2_PROXY_INBOUND_PORTS` environment variables. Finally, it
changes the proxy to synthesize default client policies when the policy
controller returns an `Unimplemented` gRPC status code, allowing 2.13
proxies to coexist with 2.12 control planes in downgrade scenarios.

---

* outbound: determine protocol based on `OutboundPolicy` (linkerd/linkerd2-proxy#2397)
* set default `trust_dns` log level to `ERROR` (linkerd/linkerd2-proxy#2393)
* outbound: test load balancer behavior with failure accrual (linkerd/linkerd2-proxy#2375)
* outbound: add missing `meta` field in test policy (linkerd/linkerd2-proxy#2400)
* inbound: determine default policies using the opaque ports env var (linkerd/linkerd2-proxy#2395)
* outbound: synthesize client policies on `Unimplemented` (linkerd/linkerd2-proxy#2396)
* build(deps): bump io-lifetimes from 1.0.4 to 1.0.10 (linkerd/linkerd2-proxy#2379)
* chore: allow `syn` v1 and v2 to coexist peacefully (linkerd/linkerd2-proxy#2401)
* build(deps): bump futures from 0.3.26 to 0.3.28 (linkerd/linkerd2-proxy#2370)
* build(deps): bump async-trait from 0.1.66 to 0.1.68 (linkerd/linkerd2-proxy#2368)

Signed-off-by: Eliza Weisman <eliza@buoyant.io>
hawkw added a commit to linkerd/linkerd2 that referenced this pull request Apr 26, 2023
This proxy release fixes an issue where outbound proxies would attempt
protocol detection on ports that are marked as opaque. It also adds
support for ranges (such as `10-20`) in the
`LINKERD2_PROXY_INBOUND_PORTS_DISABLE_PROTOCOL_DETECTION` and
`LINKERD2_PROXY_INBOUND_PORTS` environment variables. Finally, it
changes the proxy to synthesize default client policies when the policy
controller returns an `Unimplemented` gRPC status code, allowing 2.13
proxies to coexist with 2.12 control planes in downgrade scenarios.

---

* outbound: determine protocol based on `OutboundPolicy` (linkerd/linkerd2-proxy#2397)
* set default `trust_dns` log level to `ERROR` (linkerd/linkerd2-proxy#2393)
* outbound: test load balancer behavior with failure accrual (linkerd/linkerd2-proxy#2375)
* outbound: add missing `meta` field in test policy (linkerd/linkerd2-proxy#2400)
* inbound: determine default policies using the opaque ports env var (linkerd/linkerd2-proxy#2395)
* outbound: synthesize client policies on `Unimplemented` (linkerd/linkerd2-proxy#2396)
* build(deps): bump io-lifetimes from 1.0.4 to 1.0.10 (linkerd/linkerd2-proxy#2379)
* chore: allow `syn` v1 and v2 to coexist peacefully (linkerd/linkerd2-proxy#2401)
* build(deps): bump futures from 0.3.26 to 0.3.28 (linkerd/linkerd2-proxy#2370)
* build(deps): bump async-trait from 0.1.66 to 0.1.68 (linkerd/linkerd2-proxy#2368)

Signed-off-by: Eliza Weisman <eliza@buoyant.io>
risingspiral pushed a commit to linkerd/linkerd2 that referenced this pull request May 4, 2023
This proxy release fixes an issue where outbound proxies would attempt
protocol detection on ports that are marked as opaque. It also adds
support for ranges (such as `10-20`) in the
`LINKERD2_PROXY_INBOUND_PORTS_DISABLE_PROTOCOL_DETECTION` and
`LINKERD2_PROXY_INBOUND_PORTS` environment variables. Finally, it
changes the proxy to synthesize default client policies when the policy
controller returns an `Unimplemented` gRPC status code, allowing 2.13
proxies to coexist with 2.12 control planes in downgrade scenarios.

---

* outbound: determine protocol based on `OutboundPolicy` (linkerd/linkerd2-proxy#2397)
* set default `trust_dns` log level to `ERROR` (linkerd/linkerd2-proxy#2393)
* outbound: test load balancer behavior with failure accrual (linkerd/linkerd2-proxy#2375)
* outbound: add missing `meta` field in test policy (linkerd/linkerd2-proxy#2400)
* inbound: determine default policies using the opaque ports env var (linkerd/linkerd2-proxy#2395)
* outbound: synthesize client policies on `Unimplemented` (linkerd/linkerd2-proxy#2396)
* build(deps): bump io-lifetimes from 1.0.4 to 1.0.10 (linkerd/linkerd2-proxy#2379)
* chore: allow `syn` v1 and v2 to coexist peacefully (linkerd/linkerd2-proxy#2401)
* build(deps): bump futures from 0.3.26 to 0.3.28 (linkerd/linkerd2-proxy#2370)
* build(deps): bump async-trait from 0.1.66 to 0.1.68 (linkerd/linkerd2-proxy#2368)

Signed-off-by: Eliza Weisman <eliza@buoyant.io>
risingspiral pushed a commit to linkerd/linkerd2 that referenced this pull request May 5, 2023
This proxy release fixes an issue where outbound proxies would attempt
protocol detection on ports that are marked as opaque. It also adds
support for ranges (such as `10-20`) in the
`LINKERD2_PROXY_INBOUND_PORTS_DISABLE_PROTOCOL_DETECTION` and
`LINKERD2_PROXY_INBOUND_PORTS` environment variables. Finally, it
changes the proxy to synthesize default client policies when the policy
controller returns an `Unimplemented` gRPC status code, allowing 2.13
proxies to coexist with 2.12 control planes in downgrade scenarios.

---

* outbound: determine protocol based on `OutboundPolicy` (linkerd/linkerd2-proxy#2397)
* set default `trust_dns` log level to `ERROR` (linkerd/linkerd2-proxy#2393)
* outbound: test load balancer behavior with failure accrual (linkerd/linkerd2-proxy#2375)
* outbound: add missing `meta` field in test policy (linkerd/linkerd2-proxy#2400)
* inbound: determine default policies using the opaque ports env var (linkerd/linkerd2-proxy#2395)
* outbound: synthesize client policies on `Unimplemented` (linkerd/linkerd2-proxy#2396)
* build(deps): bump io-lifetimes from 1.0.4 to 1.0.10 (linkerd/linkerd2-proxy#2379)
* chore: allow `syn` v1 and v2 to coexist peacefully (linkerd/linkerd2-proxy#2401)
* build(deps): bump futures from 0.3.26 to 0.3.28 (linkerd/linkerd2-proxy#2370)
* build(deps): bump async-trait from 0.1.66 to 0.1.68 (linkerd/linkerd2-proxy#2368)

Signed-off-by: Eliza Weisman <eliza@buoyant.io>
Signed-off-by: Eric Anderson <eric@buoyant.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants