From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leo Famulari Subject: Re: Go & bundling Date: Tue, 2 Aug 2016 16:50:03 -0400 Message-ID: <20160802205003.GE4061@jasmine> References: <20160711213621.GA22573@jasmine> <87mvl68yhn.fsf@gnu.org> <20160725195006.GA532@jasmine> <87k2g9cr1j.fsf_-_@gnu.org> <1469505974.2463655.676750633.7062B3FE@webmail.messagingengine.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:34473) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUgdo-0003x9-7b for guix-devel@gnu.org; Tue, 02 Aug 2016 16:50:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bUgdi-00042E-3b for guix-devel@gnu.org; Tue, 02 Aug 2016 16:50:19 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:52364) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUgdg-0003xN-TK for guix-devel@gnu.org; Tue, 02 Aug 2016 16:50:14 -0400 Content-Disposition: inline In-Reply-To: <1469505974.2463655.676750633.7062B3FE@webmail.messagingengine.com> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Alex Griffin Cc: guix-devel@gnu.org On Mon, Jul 25, 2016 at 11:06:14PM -0500, Alex Griffin wrote: > Leo Famulari wrote: > > If that manifest is a standard thing, we could make a go-importer that > > used it to create new packages. > > The manifest is not standardized, or rather, there are too many > competing standards. Indeed. I looked into some other Go programs, and I found a variety of manifest formats. > If we are going to unbundle packages, I think it would be best if our > code ignored any manifest files entirely. Versioning is a mess in the Go > ecosystem, and usually the version specified in them only reflects the > most recent commit that the developers had on their machine when they > ran the vendor command. Rarely is it an actual tagged, stable release. Right, it seems that dependencies are referred to by Git commits and URLs (is it ever not Git?). So, we could end up with *a lot* of different versions of each library in the package tree. > BTW, the following command will probably be useful. It lists the > dependencies of the current package (whose source is in the current > directory), minus the stdlib. > > go list -f '{{join .Deps "\n"}}' | xargs go list -f '{{if not > .Standard}}{{.ImportPath}}{{end}}' Thank you! I will play with this.