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
>>>>>
>>>>

Reply via email to