gofed / go-macros

Rpm mechanics for Go packaging
4 stars 7 forks source link

golist --to-install should list glide.*, Godeps.json and other snapshot files #36

Open ingvagabund opened 6 years ago

ingvagabund commented 6 years ago

Currently, there is only a limited number of projects that provide a snapshot with all their dependencies (and commits). We should enforce in the guidelines that each devel subpackage must ship either available snapshot file or generate one if not provided by upstream (and ship it).

I have an experimental implementation of gofed approx-deps that approximate glide.lock file for a specific project and its commit. It generates the snapshot of all dependencies one would get if he/she run go get at the date corresponding to the commit. So far I was able to build archives from all defined packages based on the generated glide.lock and glide.yaml files.

It's essential to provide such a file since if the tooling can assume the snapshot file is available and corresponding project can be built from the enumerated dependencies, the tooling can run various advanced analysis such as API backward incompatibility detection.

This will require collaboration with all packagers (and maybe upstream) and testing. The expected benefit is automatical detection of incompatible API changes before a Go package is even updated and/or pushed into stable.