Skip to content

go mod vendor fails on MacOS due to case-sensitivity and the package name #177

Open
@blairdrummond

Description

@blairdrummond

Scenario & Reproduction Steps

tl;dr, I think renaming this package from github.com/1password/onepassword-sdk-go to github.com/1Password/onepassword-sdk-go (uppercase P) would make this package work with go mod vendor; it currently does not.

This package and github.com/1Password/connect-sdk-go cannot be used together with go mod vendor due to case sensitivity issues.

This repo shows two pull requests, one where I ran go mod vendor on linux and the other on MacOS. The difference is that MacOS's filesystem is not case-sensitive (☹), and so on Mac v.s. linux you get different vendor folders

# MacOS
vendor/
  github.com/
    1Password/
      connect-sdk-go v1.5.3
      onepassword-sdk-go v0.1.7
# Linux
vendor/
  github.com/
    1Password/
      connect-sdk-go v1.5.3
    1password/
      onepassword-sdk-go v0.1.7

If you go to run the MacOS generated vendor folder on linux (e.g. in a github action), this fails with an error like this:

Error: main.go:10:2: cannot find module providing package github.com/1password/onepassword-sdk-go: import lookup disabled by -mod=vendor
	(Go version in go.mod is at least 1.14 and vendor directory exists.)
Error: Process completed with exit code 1.

I have tried a range of go mod replace operations but to no avail.

Actual Behavior

Cannot use 1Password/connect-sdk-go and 1password/onepassword-sdk-go together with go mod vendor on MacOS, getting errors about finding packages.

Expected Behavior

Expect go mod vendor to work. (Also expected MacOS to have a case-sensitive FS, but there's less I can do about that one)

SDK version

v0.1.7

Additional information

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions