Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

go build

Slide 6

Slide 6 text

// v0, v1: No suffix required import "github.com/user/pkg" // v2+: Major version in path goimport "github.com/user/pkg/v2"

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

+incompatible require oldpackage v3.0.1+incompatible import "oldpackage" // Not "oldpackage/v3"

Slide 9

Slide 9 text

github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOveCGc... github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46...

Slide 10

Slide 10 text

github.com/old/dep v1.0.0 h1:abc... # No longer used github.com/old/dep v2.0.0 h1:def... # Currently used go mod verify

Slide 11

Slide 11 text

my-repo/ ├── go.mod # Root module ├── foo/ │ └── go.mod # Sub-module └── bar/ └── go.mod # Another sub-module

Slide 12

Slide 12 text

go test ./... git tag foo/v1.0.0

Slide 13

Slide 13 text

# Create go.work file go work init . ./foo ./bar go work use ./additional-module test-all: cd . && go test ./... cd foo && go test ./... cd bar && go test ./...

Slide 14

Slide 14 text

project/ ├── go.mod ├── docs/ │ └── go.mod # Empty go.mod = exclude this directory ├── examples/ │ └── go.mod # Empty go.mod = exclude this too └── testdata/

Slide 15

Slide 15 text

// go.mod module example.com/mymodule retract v1.0.1 // Critical security vulnerability retract [v1.2.0, v1.2.5] // Range retraction $ go list -m -versions example.com/mymodule example.com/mymodule v1.0.0 v1.0.2 v1.1.0 # v1.0.1 is skipped

Slide 16

Slide 16 text

go get

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

go build

Slide 24

Slide 24 text

// v0, v1: サ ッ import "github.com/user/pkg" // v2+: パ ョ import "github.com/user/pkg/v2"

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

+incompatible require oldpackage v3.0.1+incompatible import "oldpackage" // "oldpackage/v3"

Slide 27

Slide 27 text

github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOveCGc... github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46...

Slide 28

Slide 28 text

github.com/old/dep v1.0.0 h1:abc... # dzƷܞǔǗǛƵ github.com/old/dep v2.0.0 h1:def... # ڛܞǔǗǼ go mod verify

Slide 29

Slide 29 text

my-repo/ ├── go.mod # ɏüȬɆȜɉüɏ ├── foo/ │ └── go.mod # șȺɆȜɉüɏ └── bar/ └── go.mod # ತǟșȺɆȜɉüɏ

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

# go.work go work init . ./foo ./bar go work use ./additional-module test-all: cd . && go test ./... cd foo && go test ./... cd bar && go test ./...

Slide 32

Slide 32 text

project/ ├── go.mod ├── docs/ │ └── go.mod # յǟgo.mod = DŽǟȫȇɐȓȬɎȃࠎЖ ├── examples/ │ └── go.mod # յǟgo.mod = DŽǽdzࠎЖ └── testdata/

Slide 33

Slide 33 text

// go.mod module example.com/mymodule retract v1.0.1 // retract [v1.2.0, v1.2.5] // $ go list -m -versions example.com/mymodule example.com/mymodule v1.0.0 v1.0.2 v1.1.0 # v1.0.1 ッ

Slide 34

Slide 34 text

go get

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

No content