Skip to content

Latest commit

 

History

History
355 lines (260 loc) · 17.9 KB

version_history.rst

File metadata and controls

355 lines (260 loc) · 17.9 KB

Version history

Pending Release

Breaking changes:

  • ios/android: remove addH2RawDomains method. (:issue: #2590 <2590>)
  • build: building on macOS now requires Xcode 14.1. (:issue:`#2664 <2664>`)
  • iOS: remove experimental option to force all connections to use IPv6.
  • kotlin: always use getaddrinfo DNS resolver. Remove addDNSFallbackNameservers, enableDNSFilterUnroutableFamilies, and enableDNSUseSystemResolver methods from the Kotlin engine builder. (:issue:`#2618 <2618>`)
  • Envoy Mobile's release builds compile without admin support by default. (--define=admin_functionality=disabled) (:issue`#2693 <2693>`)

Bugfixes:

  • android: fix engine startup crash for when admin interface is enabled. (:issue:`#2520 <2520>`)
  • android: respect system security policy when determining whether clear text requests are allowed. (:issue:`#2528 <2528>`)

Features:

  • api: add option to support platform provided certificates validation interfaces on iOS and Android. (:issue #2144 <2144>)
  • api: Add a setPerTryIdleTimeoutSeconds() method to C++ EngineBuilder.
  • kotlin: add a way to tell Envoy Mobile to respect system proxy settings by calling an enableProxying(true) method on the engine builder. (:issue:`#2416 <2416>`)
  • kotlin: add a enableSkipDNSLookupForProxiedRequests(true) knob for controlling whether Envoy waits on DNS response in the dynamic forward proxy filter for proxied requests. (:issue:`#2602 <2602>`)
  • api: Add various methods to C++ EngineBuilder to bring it to parity with the Java and Obj-C builders. (:issue:`#2498 <2498>`)
  • api: Add support for String Accessors to the C++ EngineBuilder. (:issue:`#2498 <2498>`)
  • api: Add support for Native Filters and Platform Filters to the C++ EngineBuilder. (:issue:`#2498 <2498>`)
  • api: added upstream protocol to final stream intel. (:issue:`#2613 <2613>`)

0.5.0 (September 2, 2022)

Breaking changes:

  • api: replace the drainConnections() method with a broader resetConnectivityState(). (:issue:`#2225 <2225>`).
  • api: disallow setting 'host' header directly (:issue:`#2275 <2275>`)
  • android: respect Android's NetworkSecurityPolicy isCleartextTrafficPermitted APIs.
  • net: enable happy eyeballs by default (:issue:`#2272 <2272>`)
  • iOS: remove support for installing via CocoaPods, which had not worked since 2020 (:issue:`#2215 <2215>`)
  • iOS: enable usage of NWPathMonitor by default (:issue:`#2329 <2329>`)
  • iOS: replace enableNetworkPathMonitor with a new setNetworkMonitoringMode API to allow disabling monitoring (:issue:`#2345 <2345>`)
  • iOS: release artifacts no longer embed bitcode
  • api: engines are no longer a singleton, you may need to update your code to only create engines once and hold on to them. You also cannot assume that an envoy_engine_t value of 1 will return the default engine. Support for using multiple engines concurrently is coming later. (:issue:`#2129 <2129>`)

Bugfixes:

Features:

  • Android, iOS, & C++: add support for registering a platform KV store (:issue: #2134 <2134>, :issue: #2335 <2335>, :issue: #2430 <2430>)
  • api: add option to extend the keepalive timeout when any frame is received on the owning HTTP/2 connection. (:issue:`#2229 <2229>`)
  • api: add option to control whether Envoy should drain connections after a soft DNS refresh completes. (:issue:`#2225 <2225>`, :issue:`#2242 <2242>`)
  • api: add option to disable the gzip decompressor. (:issue: #2321 <2321>) (:issue: #2349 <2349>)
  • api: add option to enable the brotli decompressor. (:issue #2342 <2342>) (:issue: #2349 <2349>)
  • api: add option to enable socket tagging. (:issue #1512 <1521>)
  • configuration: enable h2 ping by default. (:issue: #2270 <2270>)
  • android: enable the filtering of unroutable families by default. (:issues: #2267 <2267>)
  • instrumentation: add timers and warnings to platform-provided callbacks (:issue: #2300 <2300>)
  • iOS: add support for integrating Envoy Mobile via the Swift Package Manager
  • android: create simple persistent SharedPreferencesStore (:issue: #2319 <2319>)
  • iOS: A documentation archive is now included in the GitHub release artifact (:issue: #2335 <2335>)
  • api: improved C++ APIs compatibility with Java / Kotlin / Swift (:issue #2362 <2362>)
  • Android: default to use a getaddrinfo-based system DNS resolver instead of c-ares (:issue: #2419 <2419>)
  • iOS: add KeyValueStore protocol conformance to UserDefaults (:issue: #2452 <2452>)
  • iOS: add experimental option to force all connections to use IPv6. (:issue: #2396 <2396>)
  • android: force the use of IPv6 addresses for all connections. (:issue: #2510 <2510>)

0.4.6 (April 26, 2022)

Breaking changes:

Bugfixes:

Features:

0.4.5 (January 13, 2022)

Based off Envoy v1.21.0

Bugfixes:

Features:

  • HTTP: any negotiated ALPN now passed up as x-envoy-upstream-alpn header (:issue: #1965 <1965>)

0.4.4 (December 30, 2021)

Bugfixes:

Features:

0.4.3 (October 20, 2021)

Bugfixes:

Features:

0.4.2 (July 27, 2021)

Bugfixes:

Features:

0.4.1 (May 28, 2021)

Bugfixes:

  • Fixes platform-bridged filters crash when resumed asynchronously after stream termination.
  • Disables route timeout by default.

Features:

  • Connection classes will open minimum of 2 under most circumstances to a given endpoint and distribute requests between them (previously, only 1).
  • Adds Pulse support for stats tags.
  • Enables configuration of stream idle timeout.
  • Introduces a Python interface compatible with the popular Requests library.
  • Adds experimental QUIC integration test.
  • Adds pure JVM support.

0.4.0 (March 23, 2021)

This is a large release. Moving forward the team will aim to release smaller version updates. The following is a very high-level overview of the larger changes going into this release.

Richer Platform-level Feature Set:

Additional Language Bindings:

  • Alpha version of python APIs via C++ bindings
  • Alpha version exposing cronet compatible APIs

Continued Bug fixes uncovered by additional testing:

  • Fixes several memory management corner-cases
  • Fixes several issues that have led to production crashes

Additional hardening of the codebase via extensive testing:

  • Adds end-to-end testing that covers roundtrip code execution from the platform layer to the core layer.
  • Adds coverage CI runs for core C++ core

0.3.1 (July 23, 2020)

In the last few months the team has continued to harden Envoy Mobile with production exposure.

Stability and Production Hardening:

Observability:

Extensibility:

Lastly, and perhaps most importantly, we have adopted a formal inclusive language policy (:issue:`#948 <948>`) and updated all necessary locations (:issue:`#944 <944>`, :issue:`#945 <945>`, :issue:`#946 <946>`)

0.3.0 (Mar 26, 2020)

This is the first release of Envoy Mobile Lyft is using in a production application! 🎉

Since early November, when the team tagged v0.2.0, we have been hard at work to stabilize the library, and harden it via experiments with Lyft's Alpha and Beta releases. We have released Lyft's production binaries with Envoy Mobile for a couple weeks now, and are starting to expose a percentage of our production clients to Envoy Mobile with this release.

Since v0.2.3 we have largely focused on observability:

Additional changes:

0.2.3 (Feb 21, 2020)

This release provides stabilization fixes as follow-up changes to 0.2.2:

Additional changes:

0.2.2 (Feb 3, 2020)

Envoy Mobile v0.2.2 changes how network requests are performed to no longer use Envoy's AsyncClient and to instead consume the ApiListener directly (:issue:`#616 <616>`).

Additional changes:

0.2.1 (Jan 6, 2020)

This release of Envoy Mobile contains some small improvements:

  • Maven release script for Android builds
  • Streams are now limited to a single "terminal" callback
  • Keepalive settings are now in place to better support connection switching and long-lived streams
  • Properly support IPv6 networks by using updated DNS settings

0.2.0 (Nov 4, 2019)

Envoy Mobile v0.2 is a fundamental shift in how mobile clients use Envoy. Envoy Mobile now provides native Swift/Kotlin APIs that call through to Envoy directly (rather than using Envoy as a proxy), which apps use to create and interact with network streams.

This release includes a variety of new functionality: - HTTP request and streaming support - gRPC streaming support through a built-in codec - Automatic retries using Envoy's retry policies - Programmatic, typed configuration for launching the Envoy network library

0.1.1 (Sep 11, 2019)

This release is identical to v0.1.0, but packages the license and support for additional architectures.

0.1.0 (Jun 18, 2019)

Initial open source release.