Actually, only Java is remaining non-compliance while all other implementations are 16:
=== 8< === fishy@perch:~/work/thrift/lib$ git grep -w 17 | grep -i uuid java/src/main/java/org/apache/thrift/protocol/TType.java: public static final byte UUID = 17; java/src/test/java/org/apache/thrift/protocol/ProtocolTestBase.java: new StructFieldTestCase(TType.UUID, (short) 17) { fishy@perch:~/work/thrift/lib$ git grep -w 16 | grep -i uuid delphi/src/Thrift.Protocol.Compact.pas: Types.UUID // Uuid = 16 delphi/src/Thrift.Protocol.Compact.pas: ASSERT( SizeOf(uuid) = 16); delphi/src/Thrift.Protocol.pas: Uuid = 16 delphi/src/Thrift.Protocol.pas: ASSERT( SizeOf(uuid) = 16); go/thrift/compact_protocol.go:// Write a Tuuid to the wire as 16 bytes. go/thrift/compact_protocol.go:// Read fixed 16 bytes as UUID. go/thrift/type.go: UUID = 16 go/thrift/uuid.go:type Tuuid [16]byte go/thrift/uuid.go: 14, 16, haxe/src/org/apache/thrift/protocol/TBinaryProtocol.hx: case TType.UUID: return 16; // uuid bytes haxe/src/org/apache/thrift/protocol/TCompactProtocol.hx: case TType.UUID: return 16; // uuid bytes haxe/src/org/apache/thrift/protocol/TType.hx: public static inline var UUID : Int = 16; netstd/Thrift/Protocol/Entities/TType.cs: Uuid = 16 netstd/Thrift/Protocol/TBinaryProtocol.cs: Transport.CheckReadBytesAvailable(16); // = sizeof(uuid) netstd/Thrift/Protocol/TBinaryProtocol.cs: case TType.Uuid: return 16; // uuid bytes netstd/Thrift/Protocol/TCompactProtocol.cs: Transport.CheckReadBytesAvailable(16); // = sizeof(uuid) netstd/Thrift/Protocol/TCompactProtocol.cs: case TType.Uuid: return 16; // uuid bytes swift/Sources/TProtocol.swift: case uuid = 16 === >8 === I don't see rust showing up in either 16 or 17 though. Anyone familiar with rust code can help check whether it's compliant? On Thu, Aug 10, 2023 at 8:15 AM Yuxuan Wang <yuxuan.w...@reddit.com> wrote: > Sorry I'm changing my vote to -1. > > I just realized that we still have > https://issues.apache.org/jira/browse/THRIFT-5653 unfixed. Basically we > shipped 0.18.0 and 0.18.1 with java, kotlin, rust, and swift with the > non-compliant UUID implementation. That probably didn't cause much problem > because the usage/adoption is not high, but one of the reason the other > Apache project cited when they say they need to add back JDK8 support is > that they want to use the UUID feature but the 0.18.* was shipped with > minimal JDK version of 11. So I would assume that if we ship the same bug > with 0.19.0 with JDK8 support, they would adopt it, with the non-compliance > implementation, and the situation will be more dire (the serialized data > will be broken once they upgraded to a fixed version of thrift, or when > they read from a compliance language implementation). > > On Tue, Aug 8, 2023 at 10:36 AM Yuxuan Wang <yuxuan.w...@reddit.com> > wrote: > >> lol of course go 1.21 is finally out of RC one day after I said I won't >> wait for it any longer. >> >> regarding thrift 0.19, I'm fine either way ("release thrift 0.19 with >> support to go 1.19 and go 1.20" or "do another RC to change supported go >> version to go 1.20 and go 1.21"). >> >> On Mon, Aug 7, 2023 at 10:19 AM Yuxuan Wang <yuxuan.w...@reddit.com> >> wrote: >> >>> +1. >>> >>> We tested the go compiler/lib but didn't finish the python test in time >>> but don't want to hold this forever. >>> >>> Also there's a new RC for go1.21 so I don't want that to hold this >>> release forever as well. >>> >>> Sorry for the late vote. >>> >>> On Tue, Jul 18, 2023 at 4:14 PM Yuxuan Wang <yuxuan.w...@reddit.com> >>> wrote: >>> >>>> Thanks for the work, Jens! >>>> >>>> We already tested the RC version on a go service in our environment. We >>>> also have another team to try to test the RC version on a python service, >>>> but that's more challenging (especially for an unreleased version that >>>> there's no pre-built python packages) so it might take a few more days. >>>> >>>> Another thing that's not really a release blocker but I would prefer to >>>> wait for a little bit is https://github.com/apache/thrift/pull/2821, >>>> which depends on the release of Go 1.21. There was go 1.21-rc2 from June 21 >>>> and -rc3 from July 14, so I would expect the actual release will happen >>>> very soon, and it would be great to wait a bit and align our releases >>>> (since we both have similar release cadence of twice a year). >>>> >>>> On Sat, Jul 15, 2023 at 3:20 AM Jens Geyer <je...@apache.org> wrote: >>>> >>>>> All, >>>>> >>>>> I propose that we accept the following release candidate as the >>>>> official >>>>> Apache Thrift 0.19.0 release: >>>>> >>>>> >>>>> https://protect.checkpoint.com/v2/___https://dist.apache.org/repos/dist/dev/thrift/0.19.0-rc0/thrift-0.19.0.tar.gz___.YzJ1OnJlZGRpdDpjOmc6ZWI5MWFkNzI2OWQxMWVlMTZiNWYzODUyMThmYjk4YWQ6NjoyZTU4OmQ0Yzk5YTQzZTViOTk2Njc5YjA3NzcwZTA2ZmNhZjFjZjM0ODdjMmM3MWJhYWI0ZjA1ZjI0ZjAwZWJhNTBkNzE6cDpU >>>>> >>>>> The release candidate was created from the release/0.19.0 branch and >>>>> can >>>>> be cloned using: >>>>> >>>>> git clone -b release/0.19.0 >>>>> https://protect.checkpoint.com/v2/___https://github.com/apache/thrift.git___.YzJ1OnJlZGRpdDpjOmc6ZWI5MWFkNzI2OWQxMWVlMTZiNWYzODUyMThmYjk4YWQ6NjowZDM0OjI3YmY2NzVjZjhjNjhjMTVjNTllYjQ4NzNlYmU4MDM4NzkxOTBjZDMxZTFkMDUwNTc1YjM5MmIzYzJjMDQzMDI6cDpU >>>>> >>>>> The release candidates GPG signature can be found at: >>>>> >>>>> https://protect.checkpoint.com/v2/___https://dist.apache.org/repos/dist/dev/thrift/0.19.0-rc0/thrift-0.19.0.tar.gz.asc___.YzJ1OnJlZGRpdDpjOmc6ZWI5MWFkNzI2OWQxMWVlMTZiNWYzODUyMThmYjk4YWQ6NjplZGMzOmI0YWM4OGI1MGU0MTFkNTJkZjlkMGVlYzk5ZmNlNGRiN2RmODMyZmIwNzcxMWI2YjFhMzIwMjcwOWI1ZjcwNjY6cDpU >>>>> >>>>> The release candidates checksums are: >>>>> md5: d1f7f19a23e1830f83052c050156cebc >>>>> sha1: f06f3a281bb41eed789d0e88d8a1b35405c664a8 >>>>> sha256: >>>>> c5a6ac0aca3bf1fd8a2f6afffc24bdf247cd8188480222c89f14a7900f7d6a51 >>>>> >>>>> >>>>> A prebuilt statically-linked Windows compiler is available at: >>>>> >>>>> https://protect.checkpoint.com/v2/___https://dist.apache.org/repos/dist/dev/thrift/0.19.0-rc0/thrift-0.19.0.exe___.YzJ1OnJlZGRpdDpjOmc6ZWI5MWFkNzI2OWQxMWVlMTZiNWYzODUyMThmYjk4YWQ6Njo5NDIzOjUxNTRlM2IxMDlmY2VjOWY5OWM4NjVjNzQzNmM2NTE1NTJmNzdmMmRlMGMyOTNlOGEzOTQ1MTk2MjJhZDFlMWI6cDpU >>>>> >>>>> Prebuilt statically-linked Windows compiler GPG signature: >>>>> >>>>> https://protect.checkpoint.com/v2/___https://dist.apache.org/repos/dist/dev/thrift/0.19.0-rc0/thrift-0.19.0.exe.asc___.YzJ1OnJlZGRpdDpjOmc6ZWI5MWFkNzI2OWQxMWVlMTZiNWYzODUyMThmYjk4YWQ6Njo5YWQ3OjFhNjNmZGZjNmJiM2YxODY2ODAxNmY4NGFjYWYzYjdkNmNjMWNjNTA5OWJhYzVmZjdhZWExYTI1ZDQ4ZDExMzA6cDpU >>>>> >>>>> Prebuilt statically-linked Windows compiler checksums are: >>>>> md5: cf4a7d003893c4503fc7105aef0259ca >>>>> sha1: d0e67bb8c89ee557614fd9e1e0f3086ff67164c9 >>>>> sha256: >>>>> 1f1ce1658df1226a35dc6a6318da6d534328e24f3c99da4dee847eb57654401d >>>>> >>>>> >>>>> The CHANGES list for this release is available at: >>>>> >>>>> https://protect.checkpoint.com/v2/___https://github.com/apache/thrift/blob/0.19.0/CHANGES.md___.YzJ1OnJlZGRpdDpjOmc6ZWI5MWFkNzI2OWQxMWVlMTZiNWYzODUyMThmYjk4YWQ6NjoyZjVkOjkxMDkwNjY1YjU4MDQ1NWRjNmFhM2ZiM2Q1MGY1NzhlOGFhZDU3MDEwY2Q1ODAwMzNlYzMwZjIwYmI3ZTRmOWI6cDpU >>>>> >>>>> >>>>> Please download, verify sig/sum, install and test the libraries and >>>>> languages of your choice. >>>>> >>>>> This vote will close in 109 hours on 2023-07-20 00:00 UTC >>>>> >>>>> https://protect.checkpoint.com/v2/___https://www.timeanddate.com/countdown/generic?iso=20230720T0000&p0=1440___.YzJ1OnJlZGRpdDpjOmc6ZWI5MWFkNzI2OWQxMWVlMTZiNWYzODUyMThmYjk4YWQ6NjpkOGMzOjNiOTY1ZTZkNjcwNzVlOGU0OTc2N2EyOTcxNzYwNDI0ZDUwN2E5M2M2ODEwMzFmZTM2NWNiNGZmNjMwNjY5NDg6cDpU >>>>> >>>>> [ ] +1 Release this as Apache Thrift 0.19.0 >>>>> [ ] +0 >>>>> [ ] -1 Do not release this as Apache Thrift 0.19.0 because... >>>>> >>>>> >>>>> Have fun, >>>>> JensG >>>>> >>>>