From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pjotr Prins Subject: Re: Cyclic npm dependencies Date: Sun, 25 Nov 2018 09:34:58 +0100 Message-ID: <20181125083457.wxeif4i3fhr2hay7@thebird.nl> References: <20181124163857.zgq6arhmyg23favy@thebird.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57995) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gQpsd-0005MI-Pa for guix-devel@gnu.org; Sun, 25 Nov 2018 03:35:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gQpsa-0008KU-AZ for guix-devel@gnu.org; Sun, 25 Nov 2018 03:35:03 -0500 Received: from mail.thebird.nl ([94.142.245.5]:45100) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gQpsa-0008K1-4g for guix-devel@gnu.org; Sun, 25 Nov 2018 03:35:00 -0500 Content-Disposition: inline In-Reply-To: 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: Jelle Licht Cc: guix-devel On Sat, Nov 24, 2018 at 11:29:08PM +0000, Jelle Licht wrote: > > So in your example, I imagine an input chain like: > > node-glob 0.1 -> node-rimraf 0.1 -> node-glob 0.2 -> > node-rimraf 0.2 > > -> .... -> node-glob 1.0 -> node-rimraf 1.0 > > While *extremely* annoying to untangle, this is definitely > doable. > Appears to me that it would suffice to pick the latest version. In > > What do you mean? In my specific example, you would need to package > and build each version in succession in order to actually be able to > use recent versions of either of these packages. IOW, you can not > choose any; you need to choose each. If that is the case there is no way around it. All I am saying you can start with an 'optimistic' importer and if that fails go back to resolving the circular depency. I.e., opt for the simple resolution first. Arguably a dependency is not circular if versions differ. But that may be a semantic argument ;) Pj.