From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Griffin Subject: Re: Go & bundling Date: Tue, 26 Jul 2016 07:07:08 -0500 Message-ID: <1469534828.2560228.677060121.2F110BB3@webmail.messagingengine.com> 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 Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:55104) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bS18t-0002nQ-Er for guix-devel@gnu.org; Tue, 26 Jul 2016 08:07:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bS18q-0008MZ-7k for guix-devel@gnu.org; Tue, 26 Jul 2016 08:07:23 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:60380) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bS18n-0008KB-SE for guix-devel@gnu.org; Tue, 26 Jul 2016 08:07:20 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 20C5120462 for ; Tue, 26 Jul 2016 08:07:09 -0400 (EDT) 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: guix-devel@gnu.org I realized my previous message was probably confusing. Here are some missing details that you may need to make sense of it. * Go embeds its dependency information right into the source code. * The command I gave gets its list of dependencies by parsing source code, not that manifest file. Also, it lists packages, not repositories. There may be several packages coming from a single repository. * Those manifest files, then, are just lists of bundled libraries. This might be a litte confusing coming from other languages, because it is not directly analogous to the package manager manifests that other languages use. They are not written manually, nor does the tooling necessarily make it easy to keep up-to-date (it may take 2-3 separately maintained, non-standard tools to keep a vendor/ directory in good working order). The packages in them may not even be dependencies any more if the maintainer has not been vigilant. Ultimately I think a Go importer will be tricky to get right. In some cases it may even make the most sense to just use what's bundled, unfortunately... -- Alex Griffin