Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
212 commits
Select commit Hold shift + click to select a range
b81050d
[maven-release-plugin] prepare for next development iteration
netty-project-bot Oct 14, 2025
46bb270
Re-enable reflective field accesses in native images (#15774)
zakkak Oct 21, 2025
fdf619e
Update JDK versions to latest release (#15789) (#15791)
normanmaurer Oct 27, 2025
57ec332
Handle invalid content length in continue request (#15794)
yawkat Oct 27, 2025
9dea622
Add a zero-delay option to AbstractReferenceCountedByteBufBenchmark (…
chrisvest Oct 28, 2025
2afb0ff
Correct HTTP/2 padding length check (#15793) (#15795)
normanmaurer Oct 28, 2025
dfbaa9c
Bump BlockHound version to 1.0.15.RELEASE (#15802)
violetagg Oct 28, 2025
220a5b1
Add 32k and 64k size classes to adaptive allocator (#15799) (#15800)
normanmaurer Oct 28, 2025
8711660
IndexOutOfBoundsException when running mqtt tests on java 25 #15804 (…
normanmaurer Nov 3, 2025
5dc8bcc
Fix reentrancy bug in ByteToMessageDecoder (#15834)
chrisvest Nov 12, 2025
cbfe223
Fix SizeClasses comment (#15841)
chrisvest Nov 13, 2025
3d0a713
Make big endian ASCII hashcode consistent with little endian (#15846)
chrisvest Nov 13, 2025
07c892d
Upgrade all macOS Intel workflow runners to macOS 15 (#15840)
chrisvest Nov 13, 2025
0bd93a2
chore: Update javadoc of CompositeByteBuf#releaes method (#15864)
He-Pin Nov 17, 2025
d01673a
Use real, instead of synthetic, HTTP/2 stream id (#15842)
chrisvest Nov 18, 2025
f97a55c
Fix flaky tests in codec-http module (#15862) (#15892)
normanmaurer Nov 19, 2025
416540a
Fix ZstdEncoder not producing data when source is smaller than block …
normanmaurer Nov 19, 2025
4647500
Fix Zstd compression for large data (#15861) (#15900)
normanmaurer Nov 19, 2025
c9306ab
Mark AbstractEpollStreamChannel.spliceTo(...) methods as deprecated (…
normanmaurer Nov 21, 2025
b5431a0
Use ServerBootstrap to bootstrap EpollServerSocketChannel (#15912) (#…
normanmaurer Nov 21, 2025
737a60e
Fix race condition in NonStickyEventExecutorGroup causing incorrect i…
danfaer Nov 26, 2025
ca6647a
Update lz4-java dependency with new group ID (#15940) (#15943)
normanmaurer Nov 29, 2025
73620cb
LocalChannel: Don't fire exception throught pipeline on connect failu…
normanmaurer Dec 2, 2025
1307e76
Socket: Fix handling of abstract namespaces on linux when creating th…
normanmaurer Dec 3, 2025
0d215df
SctpServerChannelConfig must support ChannelOption.SO_BACKLOG (#15965)
normanmaurer Dec 3, 2025
11346d6
Discard the following HttpContent for preflight request (#15941) (#15…
normanmaurer Dec 3, 2025
ad85492
Close Channel and fail bootstrap when setting a ChannelOption causes …
normanmaurer Dec 4, 2025
1f4ba6b
Pcap: Fix possible buffer leak when initializion fails (#15977)
normanmaurer Dec 4, 2025
cf6965b
Use exact length when allocating the acceptedAddress byte[] (#15973) …
normanmaurer Dec 8, 2025
42d458a
Update lz4-java version to 1.10.1 (#15978) (#15981)
normanmaurer Dec 8, 2025
9896970
Fix Socket reading of abstract unix domain addresses (#16010) (#16012)
normanmaurer Dec 11, 2025
77e81f1
Merge commit from fork
chrisvest Dec 11, 2025
c4a6d19
Fix tests to compile with older JDK versions
normanmaurer Dec 11, 2025
1729bf3
[maven-release-plugin] prepare release netty-4.1.129.Final
netty-project-bot Dec 11, 2025
f9d2cc6
[maven-release-plugin] prepare for next development iteration
netty-project-bot Dec 11, 2025
157f34f
Build fixes to allow using the epoll native transport on Android (#16…
normanmaurer Dec 12, 2025
66ec8d6
Fix MpscIntQueue bug (#16023) (#16027)
normanmaurer Dec 13, 2025
d3aa24b
LocalChannel: Reduce GC by re-using same Runnable (#16014) (#16028)
normanmaurer Dec 13, 2025
56328f9
Fix HTTP startline validation (#16022) (#16024)
normanmaurer Dec 13, 2025
54ba03e
Optimize HTTP startline validation (#16030) (#16042)
normanmaurer Dec 15, 2025
41ff1eb
[maven-release-plugin] prepare release netty-4.1.130.Final
netty-project-bot Dec 15, 2025
61572d5
[maven-release-plugin] prepare for next development iteration
netty-project-bot Dec 15, 2025
b24873c
NioDatagramChannel.block(...) does not early return on failure (#1604…
normanmaurer Dec 16, 2025
a08fecf
ChannelPipeline: Add tests for using ChannelHandlerContext and trigge…
normanmaurer Dec 18, 2025
0bb5674
Improve exception message generated by `EnhancingX509ExtendedTrustMan…
idelpivnitskiy Jan 7, 2026
2cdc7b1
Support for AWS Libcrypto (AWS-LC) netty-tcnative build (#15430) (#16…
geedo0 Jan 8, 2026
0cbc8fb
feat(netty-codec-http): more standard http content types (#16036) (#1…
normanmaurer Jan 9, 2026
e0aa2ab
codec-dns: Decompress MX RDATA exchange domain names during DNS recor…
normanmaurer Jan 12, 2026
9a98153
Buddy allocation for large buffers in adaptive allocator (#16053) (#1…
chrisvest Jan 13, 2026
f905908
Bump BlockHound version to 1.0.16.RELEASE (#16134) (#16136)
normanmaurer Jan 15, 2026
f80b70c
Await termination of SslHandler executor (#16138) (#16140)
normanmaurer Jan 15, 2026
169f636
SslHandler: Only resume on EventLoop if EventLoop is not shutting dow…
normanmaurer Jan 17, 2026
2dee9b6
Fix leak in OpenSslPrivateKeyMethodTest (#16145) (#16147)
normanmaurer Jan 17, 2026
496f55c
Wrap ECONNREFUSED in PortUnreachableException for UDP (#16131) (#16150)
normanmaurer Jan 18, 2026
0ff9677
Improve exception message when first HTTP2SettingsFrame has the ack f…
normanmaurer Jan 20, 2026
c6feb18
Bump com.ning:compress-lzf (4.1) (#16159)
yawkat Jan 22, 2026
073d736
SSL: Ensure used cipher in test can be used by any Java version (#161…
normanmaurer Jan 27, 2026
dd6c9c5
Update JDK versions to latest patch releases (#16184) (#16189)
normanmaurer Jan 28, 2026
3889433
Fix adaptive allocator bug from not noticing failed allocation (#1620…
chrisvest Jan 30, 2026
0676782
Avoid loosing original read exception (#16199) (#16204)
chrisvest Jan 31, 2026
5ddf9a1
Update some dependencies (#16198)
chrisvest Feb 2, 2026
ec24754
Backport multiple adaptive allocator changes (#16219)
chrisvest Feb 3, 2026
7195382
Update to netty-tcnative 2.0.75.Final (#16228)
normanmaurer Feb 4, 2026
615fbdb
[maven-release-plugin] prepare release netty-4.1.131.Final
netty-project-bot Feb 5, 2026
99c7f52
[maven-release-plugin] prepare for next development iteration
netty-project-bot Feb 5, 2026
d22b216
Fix Incorrect nanos-to-millis conversion in epoll_wait EINTR retry lo…
normanmaurer Feb 10, 2026
3e627ea
Make RefCntOpenSslContext.deallocate more robust (#16253) (#16257)
normanmaurer Feb 11, 2026
c999342
Update to gcc for arm 10.3-2021.07 (#16255) (#16263)
normanmaurer Feb 12, 2026
2387f32
HTTP2: Correctly account for padding when decompress (#16265)
normanmaurer Feb 13, 2026
2f79500
Update JDK versions to latest patch releases (#16254) (#16267)
normanmaurer Feb 13, 2026
a80f333
Backport 4.1: Automatic backporting workflow from 4.1 to 4.2 (#16274)
github-actions[bot] Feb 13, 2026
b80ae68
Backport 4.1: Backport PRs must be created with personal access token…
chrisvest Feb 16, 2026
7555645
Backport 4.1: Add more porting workflows (#16284)
netty-project-bot Feb 17, 2026
1e25fdc
Backport 4.1: Some polishing of the porting workflows (#16292)
netty-project-bot Feb 18, 2026
1e22fc4
Backport 4.1: Fix high-order bit aliasing in HttpUtil.validateToken (…
netty-project-bot Feb 19, 2026
8051d03
Auto-port 4.1: Support more branch freedom for auto-porting (#16310)
netty-project-bot Feb 20, 2026
78c6bf3
fix: the precedence of + is higher than >> (#16312) (#16316)
chrisvest Feb 21, 2026
27a66a4
AdaptiveByteBufAllocator: make sure byteBuf.capacity() not greater th…
chrisvest Feb 21, 2026
a66d7d3
Auto-port 4.1: Fix flaky PooledByteBufAllocatorTest (#16324)
netty-project-bot Feb 21, 2026
34edc9b
Auto-port 4.1: Fix pooled arena accounting tests (#16326)
netty-project-bot Feb 21, 2026
224a3e0
Auto-port 4.1: Fix RunInFastThreadLocalThreadExtension (#16328)
netty-project-bot Feb 21, 2026
da36b8d
Auto-port 4.1: AdaptivePoolingAllocator: call `unreserveMatchingBuddy…
netty-project-bot Feb 21, 2026
2c2e9b7
Auto-port 4.1: Mark LoggingHandlerTest with @Isolated to fix flaky bu…
netty-project-bot Feb 23, 2026
590aef2
Auto-port 4.1: Fix flaky HTTP/2 test (#16348)
netty-project-bot Feb 25, 2026
5ab66cb
Auto-port 4.1: Fix flaky RenegotiateTest (#16355)
netty-project-bot Feb 25, 2026
eda631f
Auto-port 4.1: Fix HTTP/2 push frame test (#16353)
netty-project-bot Feb 25, 2026
4d1a24a
SSL test: Don't depend on property value in test (#16346) (#16362)
normanmaurer Feb 26, 2026
ccf03c4
Auto-port 4.1: Don't assume CertificateFactory is thread-safe (#16364)
netty-project-bot Feb 26, 2026
4f46db0
AdaptivePoolingAllocator: assign a more explicit value to BuddyChunk.…
chrisvest Feb 26, 2026
d1dde14
Auto-port 4.1: Add more diagnostic points to PooledByteBufAllocatorTe…
netty-project-bot Feb 26, 2026
5c45828
Fix leak in SniHandlerTest (#16367) (#16377)
normanmaurer Feb 26, 2026
b1e08c5
Auto-port 4.1: Stabilize AbstractByteBufTest.testBytesInArrayMultiple…
netty-project-bot Feb 26, 2026
ebb66f9
Remove reference counting from size classed chunks (#16306) (#16379)
chrisvest Feb 26, 2026
09bf976
Auto-port 4.1: Stabilize AbstractByteBufTest.testToStringMultipleThre…
netty-project-bot Feb 27, 2026
442a8cf
Fix HttpObjectAggregator leaving connection stuck after 413 with AUTO…
samlandfried Mar 3, 2026
91e3dfd
Auto-port 4.1: Fix autoport fetching into the existing branch - again…
netty-project-bot Mar 5, 2026
0e416db
Auto-port 4.1: Capture why threads get stuck in testCopyMultipleThrea…
netty-project-bot Mar 6, 2026
99ea264
Auto-port 4.1: Remove unnecessary array access in DefaultAttributeMap…
netty-project-bot Mar 6, 2026
37656b2
Auto-port 4.1: Whitelist JMH annotation processing in microbench modu…
netty-project-bot Mar 9, 2026
41209d3
Auto-port 4.1: HTTP2: Ensure preface is flushed in all cases (#16432)
netty-project-bot Mar 11, 2026
2c096a0
Auto-port 4.1: Fix UnsupportedOperationException in readTrailingHeade…
netty-project-bot Mar 12, 2026
3c6be7e
Auto-port 4.1: Fix client_max_window_bits parameter handling in perme…
netty-project-bot Mar 12, 2026
7df743f
Auto-port 4.1: Native transports: Fix possible fd leak when fcntl fai…
netty-project-bot Mar 13, 2026
2fd4d28
Auto-port 4.1: Kqueue: Fix undefined behaviour when GetStringUTFChars…
netty-project-bot Mar 13, 2026
7d187ae
Auto-port 4.1: Kqueue: Possible overflow when using netty_kqueue_bsds…
netty-project-bot Mar 13, 2026
cbd7bb4
Auto-port 4.1: Native transports: Fix undefined behaviour when GetStr…
netty-project-bot Mar 13, 2026
19935c3
Auto-port 4.1: Epoll: Add null checks for safety reasons (#16463)
netty-project-bot Mar 13, 2026
56d84e1
Auto-port 4.1: DnsNameResolver: Skip test if we can not bind TCP and …
netty-project-bot Mar 14, 2026
779fce7
Auto-port 4.1: Epoll: Use correct value to initialize mmsghdr.msg_nam…
netty-project-bot Mar 16, 2026
5a0072b
Auto-port 4.1: Epoll: Fix support for IP_RECVORIGDSTADDR (#16468)
netty-project-bot Mar 16, 2026
3ac3f37
Auto-port 4.1: AdaptivePoolingAllocator: remove `ensureAccessible()` …
netty-project-bot Mar 16, 2026
692ec87
Auto-port 4.1: AdaptivePoolingAllocator: Fix assertion for size class…
netty-project-bot Mar 17, 2026
df65997
Epoll: setTcpMg5Sig(...) might overflow (#16511) (#16520)
normanmaurer Mar 18, 2026
10c1603
Auto-port 4.1: JdkZlibDecoder: accumulate decompressed output before …
netty-project-bot Mar 24, 2026
9f47a7b
Limit the number of Continuation frames per HTTP2 Headers (#13969)
normanmaurer Mar 24, 2026
60e53c9
Stricter HTTP/1.1 chunk extension parsing (#16537)
chrisvest Mar 24, 2026
ec119d4
[maven-release-plugin] prepare release netty-4.1.132.Final
netty-project-bot Mar 24, 2026
5fa9acb
[maven-release-plugin] prepare for next development iteration
netty-project-bot Mar 24, 2026
6f6ac4b
Fix IndexOutOfBoundsException in StompSubframeDecoder on heartbeat (#…
daguimu Mar 25, 2026
ff23761
Auto-port 4.1: Fix implementation of strerror_r_xsi for GNU (#16561)
netty-project-bot Mar 26, 2026
cab4efd
Auto-port 4.1: Replace usage of strerror with thread-safe alternative…
netty-project-bot Mar 26, 2026
d4fb9e5
Auto-port 4.1: Kqueue: sendfile EINTR doesn't advance offset — data d…
netty-project-bot Mar 26, 2026
8eef9c8
Auto-port 4.1: Avoid leak in PemReader on OutOfDirectMemoryError (#16…
netty-project-bot Mar 30, 2026
7eb496a
Auto-port 4.1: Native DNS resolver: Guard against malloc failures (#1…
netty-project-bot Mar 31, 2026
c355278
Auto-port 4.1: Include user properties and subscription IDs in MqttPr…
netty-project-bot Apr 1, 2026
0841072
Auto-port 4.1: Fix parsing HTTP chunks with multiple extensions (#16588)
netty-project-bot Apr 3, 2026
1fd6b91
Auto-port 4.1: Stabilize read-only toStringMultipleThreads1 (#16610)
netty-project-bot Apr 7, 2026
9afacfe
Auto-port 4.1: Epoll: Cleanup code to always return negative value on…
netty-project-bot Apr 8, 2026
81d9666
Auto-port 4.1: Stabilize more AbstractByteBufTests (#16613)
netty-project-bot Apr 8, 2026
7c02257
Auto-port 4.1: Stabilize testSessionInvalidate for Conscrypt (#16616)
netty-project-bot Apr 9, 2026
d9c0c10
Auto-port 4.1: Native transports: Correctly create pipe when pipe2 is…
netty-project-bot Apr 9, 2026
d8dd805
Use stream error for maxContentLength exceeded in InboundHttp2ToHttpA…
daguimu Apr 10, 2026
7ffc4f0
Fix `shutdownInput` bug in kqueue for empty recv buffer (#16630) (#16…
normanmaurer Apr 14, 2026
266ba3c
Auto-port 4.1: Kqueue: Fix usage of LOCAL_PEERPID (#16646)
netty-project-bot Apr 14, 2026
60c1c9f
Auto-port 4.1: HTTP2: Ensure HTTP2 preface is always send as first me…
netty-project-bot Apr 14, 2026
2b912e5
Auto-port 4.1: Propagate exceptions from inner threads in buffer test…
netty-project-bot Apr 15, 2026
56f6d91
Auto-port 4.1: Add maxFrameLength support to ProtobufVarint32FrameDec…
netty-project-bot Apr 17, 2026
dd3f4e3
Auto-port 4.1: Bump up netty-tcnative to 2.0.76.Final (#16672)
netty-project-bot Apr 21, 2026
503e720
HTTP2: Ensure HTTP2 preface is always send as first message (also on …
chrisvest Apr 21, 2026
053d084
Improve flaky NioSocketChannelTest (#16679) (#16681)
normanmaurer Apr 23, 2026
3d688f2
Deprecate ObjectCleaner and remove usage (#16685) (#16694)
chrisvest Apr 23, 2026
f8a251f
Auto-port 4.1: Update to netty-tcnative 2.0.77.Final (#16695)
netty-project-bot Apr 24, 2026
4a2a757
Avoid NPE in JdkSslServerContext when TrustManagerFactory returns nul…
daguimu Apr 24, 2026
a96f448
Avoid NPE in JdkSslClientContext when TrustManagerFactory returns nul…
daguimu Apr 24, 2026
a169ebb
Auto-port 4.1: Avoid TCPFastOpen in KQueueCompositeBufferGatheringWri…
netty-project-bot Apr 24, 2026
fef9135
Auto-port 4.1: SCTP: Correctly handle SO_BACKLOG (#16715)
netty-project-bot Apr 28, 2026
b55fabc
Fix DiscardClient hang under -Dssl by using a client SSL context (#16…
daguimu Apr 29, 2026
64fb275
Auto-port 4.1: Consolidate fake exceptions in HTTP/2 tests into Http2…
netty-project-bot Apr 29, 2026
32bf05e
Auto-port 4.1: Activate noPrintGC by default (#16735)
netty-project-bot May 1, 2026
137e3fa
Merge commit from fork (#16742)
normanmaurer May 4, 2026
56fe0d5
Merge commit from fork
chrisvest May 4, 2026
fe702a9
Merge commit from fork
chrisvest May 4, 2026
21b8493
Fix DataCompressionHttp2Tests after merge from fork
chrisvest May 4, 2026
6eea1bc
Merge commit from fork
chrisvest May 4, 2026
d247564
Merge commit from fork
chrisvest May 4, 2026
756840b
Merge commit from fork
chrisvest May 4, 2026
485f11d
Merge commit from fork
normanmaurer May 4, 2026
5d60b87
Fix checkstyle in HttpObjectDecoder
chrisvest May 4, 2026
3c091ab
Merge commit from fork
normanmaurer May 4, 2026
417ebaa
Fix codec-dns tests
chrisvest May 4, 2026
387bbd0
Merge commit from fork
normanmaurer May 4, 2026
bf78040
Fix BrotliDecoder not forwarding all decompressed chunks
chrisvest May 4, 2026
6f69dc9
Merge commit from fork
chrisvest May 4, 2026
1986c38
Merge commit from fork
chrisvest May 4, 2026
815f71a
Fix compilation after multiple backports
chrisvest May 4, 2026
fb13125
[maven-release-plugin] prepare release netty-4.1.133.Final
netty-project-bot May 4, 2026
70fadf3
[maven-release-plugin] prepare for next development iteration
netty-project-bot May 4, 2026
8485588
Auto-port 4.1: HTTP: Re-add constructor to HttpProxyHandler that was …
netty-project-bot May 5, 2026
dd1a9f6
Auto-port 4.1: Marshalling: Explicit document security requirements (…
netty-project-bot May 5, 2026
cf4657d
Pin HTTP/RTSP version + method normalization to Locale.US (#16765) (#…
normanmaurer May 8, 2026
7fc2dcb
Adaptive: Fix concurrency issue in adaptive allocator (#16767) (#16778)
chrisvest May 9, 2026
c4232c2
Pin multipart Content-Type / Content-Transfer-Encoding case folding t…
normanmaurer May 11, 2026
1e28f3c
Auto-port 4.1: Remove dead native declarations (#16785)
netty-project-bot May 11, 2026
25db4bb
Avoid re-parsing openssl key material with non-cached provider (#1675…
chrisvest May 11, 2026
2ea1c34
Isolate tests that modify available Security providers (#16793) (#16805)
chrisvest May 12, 2026
4bacea2
Auto-port 4.1: Remove test annotations from a method that isn't a tes…
netty-project-bot May 14, 2026
4f6cc7a
Auto-port 4.1: IpFilter: Fix ClassCastException caused by IpSubnetFil…
netty-project-bot May 18, 2026
bb458bd
Resolve all localhost addresses without querying DNS servers (#16749)…
normanmaurer May 19, 2026
f89176a
Auto-port 4.1: HTTP2: Use 100 as default max concurrent streams setti…
netty-project-bot May 19, 2026
4c1cb1d
Auto-port 4.1: Route synchronous onLookupComplete exceptions via fire…
netty-project-bot May 19, 2026
30f8f28
Auto-port 4.1: Fix MQTT decoder size check after variable header repl…
netty-project-bot May 20, 2026
970b248
[maven-release-plugin] prepare release netty-4.1.134.Final
netty-project-bot May 20, 2026
5d284f8
[maven-release-plugin] prepare for next development iteration
netty-project-bot May 20, 2026
4b7b834
Auto-port 4.1: MQTT: Allow MQTT 5 CONNECT with password only (#16834)
netty-project-bot May 21, 2026
22d1be6
ChannelInitializer: correct misleading comment on exceptionCaught rou…
daguimu May 28, 2026
a220e65
HTTP/2: Parse request-target path like Vert.x (4.1 backport) (#16856)
yawkat Jun 1, 2026
aa0cae5
HttpObjectDecoder skips arbitrary initial control characters when onl…
normanmaurer Jun 1, 2026
53c089f
IpSubnetFilter: Correctly handle ipv6 (#16860)
normanmaurer Jun 1, 2026
e51c64c
Configurable bound on RedisArrayAggregator (#16858)
normanmaurer Jun 1, 2026
bff98ee
Redis: Limit decoded length (#16859)
normanmaurer Jun 1, 2026
06eb73d
DNS: Ensure query id is not predictible (#16870)
normanmaurer Jun 1, 2026
09e72c4
Wrapping plain trust manager silently disables hostname verification …
normanmaurer Jun 1, 2026
d89cf88
MQTT: Reject malformed no-payload packets with non-zero Remaining Len…
daguimu Jun 1, 2026
00b31f2
Fix revapi warnings (#16885) (#16892)
chrisvest Jun 2, 2026
c4623e8
HAProxy: Reject HAProxyMessages with malformated TLV and not leak mem…
normanmaurer Jun 2, 2026
829c885
SSL: Use sane defaults as limits for the client hello length and time…
normanmaurer Jun 2, 2026
5749d78
DNS: Only cache CNAME if part of the queried domain (#16873)
normanmaurer Jun 2, 2026
f5da73e
HTTP/2: Enforce max concurrent streams for misbehaving clients (#16876)
normanmaurer Jun 2, 2026
6f19adf
Dns: Insufficient Bailiwick Validation for NS Records (#16877)
normanmaurer Jun 2, 2026
db6138b
HTTP2: DelegatingDecompressorFrameListener must release memory in all…
normanmaurer Jun 2, 2026
51260aa
Pass maxAllocation to Brotli and Zstd decoders (#16844) (#16886)
chrisvest Jun 2, 2026
b831454
HTTP/2: Treat clients MAX_HEADER_LIST_SIZE as advisory (#16883)
normanmaurer Jun 2, 2026
d7f9069
Auto-port 4.1: Add maxWindowLog parameter to ZstdDecoder to bound mem…
netty-project-bot Jun 2, 2026
bd6214f
HAProxy: Fix ByteBuf leak when parsing nested SSL TLVs (#16881)
normanmaurer Jun 2, 2026
652663c
Epoll / Kqueue: Correctly handle receive of FD (#16872)
normanmaurer Jun 2, 2026
cef5395
SCTP: Limit the number of inflight incomplete SCTP messages and the n…
normanmaurer Jun 2, 2026
ced30ad
Redis: Correctly release incomplete message on removal when using Red…
normanmaurer Jun 2, 2026
728c98b
Redis: Limit the maximum number of nested arrays (#16882)
normanmaurer Jun 2, 2026
f05f765
[maven-release-plugin] prepare release netty-4.1.135.Final
netty-project-bot Jun 2, 2026
6a5a03b
DSP-25065 Adds build GitHub Action
tiagomlalves Apr 6, 2026
aa7c0cc
DSP-25065 Adds Bob skill to automate upstream merge
tiagomlalves Jun 29, 2026
4f5f5d4
Merge tag 'netty-4.1.135.Final' into dse-netty-4.1.135
tiagomlalves Jun 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
180 changes: 180 additions & 0 deletions .bob/skills/merge-upstream-tag/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
---
name: merge-upstream-tag
description: Use when the user wants to merge an upstream version tag into the current branch-specific fork branch (e.g. "merge netty-4.1.133.Final into dse-netty-4.1.133"), preserving existing branch-specific changes.
---

# Merge Upstream Version Tag into Fork Branch

This skill forward-ports a DSE netty fork branch to a new upstream release
tag. It fetches all tags from the upstream remote, then merges the target
version tag into the current branch while preserving all branch-specific
commits.

## Prerequisites

Confirm with the user before starting:
1. The **upstream remote name** — check with `git remote -v`. In this repo
it is `upstream` (pointing to `github.com/netty/netty`).
2. The **version tag** to merge in (e.g. `netty-4.1.133.Final`).
3. The **current branch** name — use `git branch --show-current`.

## Steps

### 1. Verify the current state

```bash
git status
git branch --show-current
git remote -v
```

Make sure the working tree is clean (no uncommitted changes). If it is not,
ask the user to stash or commit before continuing.

### 2. Fetch all tags from the upstream remote

```bash
git fetch upstream --tags
```

This pulls every tag from the upstream remote (e.g. `github.com/netty/netty`)
without modifying any local branches.

### 3. Confirm the tag exists

```bash
git tag -l "<TAG>"
```

Replace `<TAG>` with the target tag (e.g. `netty-4.1.133.Final`). If it is
not listed, the fetch in step 2 may have failed or the tag name is wrong —
verify and retry.

### 4. Merge the tag into the current branch

```bash
git merge "<TAG>" --no-ff -m "Merge tag '<TAG>' into <BRANCH>

This forward-ports the DSE netty fork to the <TAG> release of netty.

[maven-release-plugin] copy for tag <TAG>"
```

- `<TAG>` — the upstream version tag (e.g. `netty-4.1.133.Final`).
- `<BRANCH>` — the current branch name (e.g. `dse-netty-4.1.133`).
- `--no-ff` preserves the merge commit so the upstream history remains
traceable.

The commit message format must follow the established convention used in
previous merges on this repository (e.g. commit `f22f5ae6aa` for
`netty-4.1.132.Final`).

**Expect the merge to stop with conflicts every time.** This is normal — every
merge of a new upstream tag into a DSE fork branch will produce conflicts
because of DSE-specific patches and version numbers. Proceed directly to
step 5.

### 5. Resolve all conflicts

Run the following to see every conflicting file:

```bash
git diff --name-only --diff-filter=U
```

Work through each file. Do **not** ask the user — resolve them autonomously
using the rules below.

#### 5a. `pom.xml` conflicts — always keep the DSE version

Every `pom.xml` file will conflict on the `<version>` element because upstream
uses a plain `.Final` version while the DSE branch uses the `.1.dse` suffix.

**Rule:** In every `pom.xml` conflict, always accept the **HEAD (DSE) side**
for the `<version>` element. The resolved value must be the DSE version string
(e.g. `4.1.133.1.dse`), **never** the bare upstream value (e.g. `4.1.133.Final`).

For all other content in the same `pom.xml` (dependency versions, plugin
config, etc.) apply the general rules from §5b below.

After resolving each `pom.xml`, stage it:

```bash
git add <path/to/pom.xml>
```

#### 5b. Code file conflicts — always preserve DSE changes

For every non-`pom.xml` conflict:

1. **Read the conflicting file** using `read_file` to understand both sides
(`<<<<<<< HEAD` = local/DSE side, `>>>>>>> <TAG>` = upstream side).
2. Apply the following priority rules in order:
- **Keep the DSE (HEAD) change** whenever the conflict region contains code
that was introduced or modified by a DSE-specific patch (i.e. it does not
exist in the upstream tag at all, or it is a deliberate override of
upstream behaviour). DSE changes must never be silently dropped.
- **Keep the upstream change** only when the local side is byte-for-byte
identical to the previous upstream base and carries no DSE-specific intent
(e.g. an import that was moved, a purely mechanical refactor, or a
whitespace-only difference that the DSE branch never intentionally touched).
- **Merge both sides** when the upstream adds new logic _and_ the local side
also adds independent logic to the same region — integrate them carefully
so neither is lost.
3. After resolving, write the file back with `apply_diff` or `write_file` so
it contains no conflict markers, then stage it:

```bash
git add <resolved-file>
```

#### 5c. Complete the merge

Once every conflicting file has been staged, finalize the merge commit:

```bash
git merge --continue
```

If `git merge --continue` opens an editor, the pre-filled message is already
correct (it was passed in step 4); just accept it as-is.

### 6. Verify pom.xml versions are consistent

After the merge commit is created, double-check that all `pom.xml` files carry
the correct DSE version and not the upstream version:

```bash
grep -r "<version>" --include="pom.xml" . | grep -v "\.1\.dse" | grep -v "target/"
```

If any `pom.xml` still contains the bare upstream version (e.g. `4.1.133.Final`
instead of `4.1.133.1.dse`), amend them and stage + commit the fix:

```bash
# Fix remaining pom.xml files that slipped through conflict resolution
mvn versions:set -DnewVersion=<DSE_VERSION> -DgenerateBackupPoms=false
git add -u
git commit -m "Update version to <DSE_VERSION>"
```

- `<DSE_VERSION>` — the full DSE version string, e.g. `4.1.133.1.dse`.
- `-DgenerateBackupPoms=false` avoids leaving `pom.xml.versionsBackup` files
behind.

### 7. Verify the result

```bash
git log --oneline --graph -10
```

Confirm the merge commit is at the HEAD and that both parent lines of the
merge are visible.

### 8. Push

```bash
git push origin <BRANCH>
```

Ask the user for confirmation before pushing.
Loading
Loading