google / google/oss-fuzz

make it possible to specify the Go version

Open
#10,642 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
12.7k
Forks
2.9k
Avg merge
2d 2h
Merged PRs (30d)
62

Description

My quic-go build recently started failing, since I updated quic-go to require Go 1.20 (https://github.com/quic-go/quic-go/pull/3936).

It looks like oss-fuzz currently still uses Go 1.19 (released in August 2022, almost one year ago): https://github.com/google/oss-fuzz/blob/cd48a6e2415fc52bf8d8cc155ed61f4b7711e160/infra/base-images/base-builder/install_go.sh#L21

It would be nice if oss-fuzz would use the most recent Go version, as most projects quickly update their compiler (updating the Go version is usually pretty frictionless due to Go's backwards-compatibility guarantee).

An even better resolution of this issue would be to include multiple Go version in the base image. go would then reference the most recent Go version, and other Go versions could (for example) be symlinked / aliased as go1.19 etc. This would be relevant projects that use version-dependent code paths (as quic-go does for its crypto/tls fork still needed for Go 1.20, but obsolete in Go 1.21).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading infra/base-images/base-builder/install_go.sh, especially the currently pinned Go 1.19 installation. Determine how version selection or multiple installed versions should be exposed, then verify that the base image supports the Go-version-dependent use case described for quic-go and older Go versions.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, shell
Domain
build-system, infrastructure
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.