Skip to content

Minimum Go version for library consumers #195

@ldez

Description

@ldez

Environment details

  • Programming language: Go
  • OS: Linux
  • Language runtime version: go1.25
  • Package version: v0.3.16

Steps to reproduce

  1. go get github.com/googleapis/enterprise-certificate-proxy@v0.3.16

Since go1.21, the Go version used inside the go.mod is the minimum Go version, and it's a hard requirement.

googleapis/enterprise-certificate-proxy is used as a library, each time you update the minimum Go version, you are forcing all the library consumers to update their minimum Go version.

This update of the min Go version is problematic because it also forces googleapis/google-api-go-client to update its min Go version.

This impact all the modules that depends on googleapis/enterprise-certificate-proxy or googleapis/google-api-go-client.

This will force the propagation of this min Go version.

A library should avoid doing that.

The minimum Go version defines the version of the language used to write the code.

The Go version inside toolchain defines the Go version used to compile a binary or run the tests, and doesn't affect lib consumers.

The Go team maintains the 2 latest minor versions: currently go1.25 and go1.26.

As a library, updating the min version doesn't fix any CVE related to Go.

Could you downgrade the minimum Go version to at least go1.25.0?

Related to #193
Related to googleapis/google-api-go-client#3605

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: p2Moderately-important priority. Fix may not be included in next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions