Closed cpuschma closed 7 months ago
Agreed; we went down this path when modules were new, and I was having trouble figuring out the right way to version.
Anyone familiar with versioning in go modules (and ideally with legacy versioning experience too) would be welcome to propose a path forward here.
The oldest supported version is Go 1.14, which already had Go Module integration
According to below, Go supports only two newer versions, so we can reduce the support versions, I think.
Each major Go release is supported until there are two newer major releases. For example, Go 1.5 was supported until the Go 1.7 release, and Go 1.6 was supported until the Go 1.8 release.
I agree with stopping code mirroring since it also is a maintenance cost to developers.
I'm not familiar with the migration of Go Modules, what about Major branch approach? This current repository takes Major subdirectory now.
Just for reference, it seems that https://github.com/caarlos0/env takes Major branch approach.
The oldest supported version is Go 1.14, which already had Go Module integration
According to below, Go supports only two newer versions, so we can reduce the support versions, I think.
Each major Go release is supported until there are two newer major releases. For example, Go 1.5 was supported until the Go 1.7 release, and Go 1.6 was supported until the Go 1.8 release. https://go.dev/doc/devel/release
There's currently no need to drop support for two additional versions, as there are no breaking changes like in #367 which require us to remove them.
Discussion moved to #503
Implementing fuzzing got things moving and #466 surfaced some problems regarding the v3 directory:
Since #367, we can't support older versions anyways as they're missing the necessary struct fields, meaning all versions used afterwards have Go modules integrated, which in turn means that there should be little to no breaking changes when dropping/stop mirroring the v3 directory. But, this would mean that programs >Go 1.14 which have the v3 directory imported need to be updated.
I want to start an open discussion about stopping mirroring the code. Any opinions are welcome.