Skip to content

benbuzbee/module_example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

This is an example of the problem with strict Minimum Version Selection

This repo contains two modules, uses_old and uses_new

uses_old has a package which is a library that has one function which returns a static string. However that module also depends on runc version 1.0.0-93 which it just uses nominally, to print the result of a default struct called Device.

uses_new has a main package which includes uses_old and prints the result of its static function. However uses_old also includes runc version 1.0.2 which it just uses nominally.

Runc 1.0.2 has breaking changes, it deletes the struct called device.

uses_new cannot compile

$ go build .
# github.com/benbuzbee/module_example/uses_old
../../go/pkg/mod/github.com/benbuzbee/module_example/[email protected]/main.go:9:14: undefined: configs.Device

This is because go belows 1.0.2 MUST be compatible with 1.0.0-93 and forces uses_old to compile with the new version. However it is very often the case that minor version changes include breaking changes, even if we wish it were not.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages