Skip to content

vndr init produces wrong vendor.conf for versioned packages #88

@AkihiroSuda

Description

@AkihiroSuda
$ cat foo.go
package foo

import (
        "github.com/containerd/cgroups/v2"
)

func Foo(a, b string) (*v2.Manager, error) {
        return v2.LoadManager(a, b)
}
$ vndr init

Result:

github.com/containerd/cgroups/v2 3f83850c48d225466698517ad34f4848d2ddaeeb
github.com/containerd/cgroups/stats/v1 3f83850c48d225466698517ad34f4848d2ddaeeb
github.com/coreos/go-systemd d657f9650837651364841f00795b417b1ca43c1f
github.com/docker/go-units 519db1ee28dcc9fd2474ae59fca29a810482bfb1
github.com/godbus/dbus/v5 43c7e6d0673024b2dcdf97cb4d766efec9da7e9b
github.com/opencontainers/runtime-spec e09c7c488e298f2147734e657eba72fc9fa10ca9
github.com/pkg/errors 49f8f617296114c890ae0b7ac18c5953d2b1ca0f
golang.org/x/sys 548cf772de5052aa878ccb47cdeb7d262b75c8ec
github.com/coreos/go-systemd d657f9650837651364841f00795b417b1ca43c1f

Expected result:

github.com/containerd/cgroups 3f83850c48d225466698517ad34f4848d2ddaeeb
github.com/coreos/go-systemd/v22 d657f9650837651364841f00795b417b1ca43c1f
...

Note:

  • github.com/containerd/cgroups in vendor.conf MUST NOT contain /v2 suffix because v2 is a git subdirectory, not a version string in go.mod
  • github.com/coreos/go-systemd/v22 MUST contain /v22 suffix because v22 is a version string in go.mod, not a git subdirectory

I'm not sure how we can support this without parsing go.mod.

vndr version 0.1.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions