Repository navigation
release: 0.17.339 - #339
Merged
Merged
Conversation
All eleven published packages share one version; the bump is only their Version elements, and IoxideRuntime.Version is generated from ioxide.csproj. ioxide.redis.stackexchange is bumped too, though CI does not pack it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
All eleven published packages share one version, as always. The bump is only their
Versionelements;IoxideRuntime.Versionis generated fromioxide.csproj.ioxide.redis.stackexchangeis bumped too, so a manual pack matches, but CI does not pack it.The minor goes to 17 for the breaks listed below:
ioxide.redisis gone, and one core signature changed.Carries everything since 0.16.281:
OnFault's doc says it runs before the teardown, which is when it does.TCP_NODELAYfrom the listener instead of a setsockopt per accept.Streamreader as an error, not a clean end.Completefrom another thread encrypts on the reactor, and a pipe flush allocates nothing (tls: a flush from a thread other than the reactor runs SSL_write concurrently with the decrypt pump's SSL_read and breaks the session #249).COMPRESSION_ERROR.CONTINUATIONoutside one, is aPROTOCOL_ERROR.WINDOW_UPDATEpast 2^31-1 is aFLOW_CONTROL_ERROR, not a window that wraps negative.DATAon stream 0 is aPROTOCOL_ERROR.MaxRequestBytesis reset withENHANCE_YOUR_CALMinstead of reaching the handler.Nghttp2Request.BodyReader, credited as the handler reads.IsCompletedonce the connection is gone.MaxReceiveBytesfails the connection, and its length can no longer wrap.CommandTimeoutMsinstead of waiting forever.ioxide.redis.stackexchange, StackExchange.Redis with its connections on the reactor's ring. It is experimental and not published.ioxide.redisis dropped.bench/redis-matrix.shruns it against StackExchange.Redis's own sockets.Breaking
ioxide.redishas no 0.17 version; its last is 0.16.281 (redis: drop ioxide.redis #337). StackExchange.Redis over ioxide (ioxide.redis.stackexchange, redis.stackexchange: StackExchange.Redis with its connections on the reactor's ring (experimental) #335) takes its place, unpublished for now.RingSocket.CreateTcp(IRingHost)is nowCreateTcp(IRingHost, AddressFamily family = AddressFamily.InterNetwork)(httpclient: requests by URL, names and IPv6, TLS by host, connect, idle and lifetime limits, and a pool that waits on the reactor #300). Calls still compile; code built against 0.16.281 has to be recompiled.Package validation against the 0.16.281 packages on NuGet (
EnablePackageValidation, baseline 0.16.281) reports theCreateTcpchange as the only API break in the eleven packages.Native
libioxide_nghttp2: rebuilt for nghttp2: request bodies can stream through Nghttp2Request.BodyReader, credited as the handler reads #330 withscripts/build-nghttp2-native.sh:ih2_server_newtakes amanual_flowflag, andih2_consumeis new. The package ships the library; consumers rebuild nothing.On this branch's tree (main at b647653, plus the bump), all eight suites pass with none skipped: E2E 285, Unit 78, Http 83, Tls 174, Chaos 79, File 5, Pg 18 and Redis 6. The
tlsmodule was loaded, so the kTLS tests ran.Some tests stay pending. Each one pins a known gap and fails the run once the gap is fixed: E2E 6, Unit 1, Http 4, Tls 8, Chaos 1, and Redis 1 (#336).