dotnet / dotnet/dotnet-buildtools-prereqs-docker

Define a repo policy for referencing specific software versions

Open
#1,265 0 comments 0 reactions 0 assignees View on GitHub
area-documentation
Dominant language
Dockerfile
Stars
87
Forks
118
Avg merge
10h 26m
Merged PRs (30d)
4

Description

As described in https://github.com/dotnet/dotnet-buildtools-prereqs-docker/issues/1264, there is a maintenance burden when referencing specific software versions from within the Dockerfiles of this repo. A policy should be documented that describes the patterns and practices that should be used to mitigate that burden.

Ideas:
* When possible, prefer to install via package manager without specifying a version.
* For semantically versioned software, prefer to get the latest minor/patch of a specific major version.
* Use consistent versions across all Dockerfiles where appropriate.
* Use dynamic logic within the Dockerfile to determine the latest version ([example](https://github.com/dotnet/dotnet-buildtools-prereqs-docker/blob/260d729f91984aed7997917f54f3161892ee639b/src/windowsservercore/ltsc2022/helix/webassembly/amd64/Dockerfile#L32-L34)). This may be mitigated by https://github.com/dotnet/dotnet-buildtools-prereqs-docker/issues/1267 if that version was to be injected into the Dockerfile or passed as an arg.
* What is the process for upgrading the major version? Need to account for breaking changes when updating versions. Which assets do we install that are the most likely to be affected by this? How do consuming repos validate upgraded versions ahead of time?
* Should a tool like [Renovate](https://github.com/renovatebot/renovate) be used, when possible, to keep versions updated?
* How do we keep track of whether a particular software product is EOL? We keep track of that, at a team level, for operating systems, but not things like frameworks and tools that are installed in these Dockerfiles. We really just rely on vulnerability reports. Is that sufficient? Should versions be upgraded proactively? Using https://endoflife.date may be helpful here. This is also related to https://github.com/dotnet/dotnet-buildtools-prereqs-docker/issues/1267.
* What systems can be put in place, either by patterns or infra, to prevent version reference "violations" from occurring in newly added Dockerfiles?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.