For those projects described with Metacello baselines or configurations you can issue a #fetch command to download all the Monticello packages needed to load the projects into your image....
e.g. Metacello new configuration:'Seaside3'; repository: 'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main'; version: #stable; fetch or fetch: #('Core' 'Tests') etc etc etc It does load the projects configuration/baseline and all of the dependencies projects/baselines in order to analyze them and find what needs to be downloaded. But it doesn't load any of the packages' code. Does this help? Paul Luke Gorrie wrote > Howdy! > > I want to build Pharo images using Nix <https://nixos.org/nix/>. On > the one > hand this should look basically like the Jenkins scripts, but on the other > hand the build must run inside a sandbox that is isolated from the > network. > So I need to download all of the code that I need ahead of time because I > am not able to contact Github, SmalltalkHub, etc, once the build is > running. > > I am not sure how to approach this problem yet but I have a preliminary > question. > > Is there an easy way that I could "recursively" download all the Smalltalk > code (etc) required for an application onto the local filesystem, and then > load this into a Pharo image that does not have network access? > > Concrete example - How could I write a Pharo script that downloads all the > software required to install Moose in a standard Pharo 6.0 image? Then how > could I load that into an image off the local filesystem? > > I feel like there should be a solution here, since Monticello seems to be > able to cache packages locally on the filesystem, but I don't how enough > experience to quite know how to approach it. > > If this is possible then the "utopian" vision could be to recursively > download every Pharo package that exists, in every relevant version, and > make them available in the Nix universe. This is what Nix does with > Python, > R, Emacs, etc packages. > > Or if this turns out to be difficult for some reason then I could perhaps > build the Pharo image externally - e.g. on the Inria Jenkins - and then > import that into Nix as an opaque binary. This is probably the simplest > solution but it is not very appealing from my Nix-centric viewpoint > because > I won't have visibility into what has changed between one image build and > the next. > > Feedback would be much appreciated! > -Luke > > P.S. Screenshot from the Pharo part of my application that is starting to > come together, visualizing Lua JIT compiler IR code to make it more > understandable than disassembly listings: > https://github.com/raptorjit/raptorjit/pull/63#issuecomment-310138536. -- View this message in context: http://forum.world.st/Recursively-downloading-Pharo-packages-Building-images-with-Nix-tp4952392p4952471.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
