Metacello / metacello

Metacello is a package management system for Smalltalk
MIT License
87 stars 43 forks source link

Install without network access? #439

Open lukego opened 7 years ago

lukego commented 7 years ago

Is there a way to install projects exclusively from the filesystem without accessing the network? (Supposing that I have a directory somewhere that includes every .mcz file that is required by the project I am loading, including all of its dependencies.)

I have been looking for a solution in order to build Pharo images with Nix which performs builds in a sandbox without network connectivity. More background on thread http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2017-June/130090.html.

(Once this is working my follow-on question will be to find a less hacky way to pre-download the mcz files... but that is problem number two.)

lukego commented 7 years ago

Closing because my conclusion based on experimentation is that Metacello requires network access.

pdebruic commented 7 years ago

@lukego I think this used to be possible and it makes sense to me from a security perspective we'd really want this to be possible.

@jbrichau what do you guys do at yesplan for this? I remember you describing it once but don't recall the details.

jbrichau commented 7 years ago

You can use Metacello's cacheRepository: and repositoryOverrides: to do this. Pass a file directory repository as argument to Metacello's cacheRepository: method and fetch the desired version of your project. This will download all mcz's into that file directory repository. Next, load the project by passing this repository as the argument to repositoryOverrides:.

lukego commented 7 years ago

Thanks!

I think it would be wonderful to mention this feature with an example in the Metacello Scripting API docs. I would have found it there. I couldn't wait so for now I have cut Metacello out of my build and fallen back on cave-man scripts, but I will come back and try this trick eventually.