Text file src/cmd/go/testdata/script/mod_retract_replace.txt

     1  # If the latest unretracted version of a module is replaced, 'go list' should
     2  # obtain retractions from the replacement.
     3  
     4  # Populate go.sum.
     5  go get
     6  
     7  # The latest version, v1.9.0, is not available on the proxy.
     8  go list -m -retracted example.com/retract/missingmod
     9  stdout '^example.com/retract/missingmod v1.0.0$'
    10  exists $GOPATH/pkg/mod/cache/download/example.com/retract/missingmod/@v/v1.9.0.info
    11  ! exists $GOPATH/pkg/mod/cache/download/example.com/retract/missingmod/@v/v1.9.0.mod
    12  
    13  # If we replace that version, we should see retractions.
    14  go mod edit -replace=example.com/retract/missingmod@v1.9.0=./missingmod-v1.9.0
    15  go list -m -retracted -f '{{range .Retracted}}{{.}}{{end}}' example.com/retract/missingmod
    16  stdout '^bad version$'
    17  
    18  # If we replace the retracted version, we should not see a retraction.
    19  go mod edit -replace=example.com/retract/missingmod=./missingmod-v1.9.0
    20  go list -m -retracted -f '{{if not .Retracted}}good version{{end}}' example.com/retract/missingmod
    21  stdout '^good version$'
    22  
    23  
    24  # If a replacement version is retracted, we should see a retraction.
    25  # It should appear in both the replaced module and the replacement, as other
    26  # fields like GoMod do.
    27  go list -m -retracted -f '{{range .Retracted}}{{.}}{{end}}' example.com/retract
    28  ! stdout .
    29  go list -m -retracted -f '{{if .Replace}}replaced{{end}}' example.com/retract
    30  ! stdout .
    31  go mod edit -replace example.com/retract@v1.0.0-good=example.com/retract@v1.0.0-bad
    32  go list -m -mod=mod -retracted -f '{{range .Retracted}}{{.}}{{end}}' example.com/retract
    33  stdout '^bad$'
    34  go list -m -mod=mod -retracted -f '{{with .Replace}}{{range .Retracted}}{{.}}{{end}}{{end}}' example.com/retract
    35  stdout '^bad$'
    36  
    37  -- go.mod --
    38  module m
    39  
    40  go 1.14
    41  
    42  require (
    43  	example.com/retract v1.0.0-good
    44  	example.com/retract/missingmod v1.0.0
    45  )
    46  -- use.go --
    47  package use
    48  
    49  import (
    50  	_ "example.com/retract"
    51  	_ "example.com/retract/missingmod"
    52  )
    53  -- missingmod-v1.0.0/go.mod --
    54  module example.com/retract/missingmod
    55  
    56  go 1.14
    57  -- missingmod-v1.9.0/go.mod --
    58  module example.com/retract/missingmod
    59  
    60  go 1.14
    61  
    62  // bad version
    63  retract v1.0.0
    64  

View as plain text