[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Dealing with circular dependencies



Hi,

I'm trying to see if I can package two packages that depend on each other.

1. github.com/dsoprea/go-utility - This one declares #2 in go.mod
https://github.com/dsoprea/go-utility/blob/master/go.mod
	github.com/dsoprea/go-exif/v2 v2.0.0-20200321225314-640175a69fe4


2. github.com/dsoprea/go-exif - This one doesn't declare #1 in go.mod, but its v3 package imports it
https://github.com/dsoprea/go-exif/blob/master/v3/data_layer.go
	"github.com/dsoprea/go-utility/v2/filesystem"


They're from the same author, and locally it seems they use a local version of #1 in #2.
// replace github.com/dsoprea/go-utility/v2 => ../../go-utility/v2

I considered:
a. build tags to remove either affected go files, but they're not removable
b. MUT and put both in the same package? both have overlapping filenames (go.mod, v2, etc..)

How can this be dealt with? Any ideas welcome?

--
Regards,
Ahmad


Reply to: