quickfixgo / quickfix

The Go FIX Protocol Library :rocket:
https://www.quickfixgo.org/
Other
723 stars 282 forks source link

Why is Go 1.21 required as the minimum version? #610

Open varunbpatil opened 6 months ago

varunbpatil commented 6 months ago

If nothing in the module uses the features provided by Go 1.21, there is no need to require a minimum version of Go 1.21. This just made quickfix-go unusable as a dependency in a project that is using Go 1.20 (for example), for no reason as far as I can tell. Libraries like quickfix-go, in general, should strive to support the earliest version of Go that is possible which allows it to be used by a larger number of projects.

Ofcourse, this is no big deal since I can fork the project and reduce the minimum go version required, but wanted to understand the rationale behind this requirement.

cedws commented 5 months ago

I have seen misconceptions about this number where people believe it needs to be bumped to get the performance/security benefits of the newest compiler version. In reality it is just an indicator of the minimum Go version the code will compile under.

ackleymi commented 2 months ago

@varunbpatil worth considering, though most of the most popular open source projects seem to target at least 1.20, and even if we don't utilize the most recent language features, I'd prefer to keep the possibility open that we at least could in the near future. i.e some of the generics stuff seems like it could be quite applicable here. I'd also prefer to narrow down the go versions of users to make debugging potential issues at least in theory easier. Another bit i'm curious about is why wouldn't you just upgrade your go version rather than downgrade the quickfix minimum - are you tied to a specific go version for some reason?