Hi there! I have been looking for a build system w...
# general
h
Hi there! I have been looking for a build system written in (or extensible with) python for a large project with many build targets. Pants looks very promising, but sadly the project I want to use it in has to be developed offline. So I have two questions: 1. Does pants support an offline installation? It seems that the installer needs internet access, and internet access is even listed as a dependency in the Github repo 😞 Using a
pex
base installation looks promising but I couldn't find any documentation saying how to create one. Given that I have an offline pypi server, do I really need anything other than the
pantsbuild.pants
package and its dependencies? 2. Even if I manage to install pants offline, are there any other problems that I might run into later on, being offline? I have experience developing offline, just not with
pants
...
h
Hi Maor, that is an interesting use-case. There are a few places where Pants assumes internet connectivity: One is bootstrapping itself. We can work around this one, as it's a one-time thing. So let's put that aside for a moment. The bigger issue would be how Pants gets hold of the tools it runs. For example, to run tests, it needs pytest. So the first time it needs it, it downloads it from PyPI. Similarly, it has to download the external dependencies of your code, if there are any. Pants does all this using pex, which in turn delegates to pip. And you can configure Pants to point an alternative repo instead of PyPI. So my next question would be, does "offline" mean "on a network but with no external internet access" or "literally offline"? In the former case you could point to some shared private PyPI-like repository. In the latter case I guess you could set up a local one and point to localhost. How do builds on this repo work today? E.g., to run tests how do you get hold of pytest?
👍 1
h
Hi Benjy, thank you for your response!
I am working in a LAN with a pypi server (the DNS even routes the default pypi address to this server). So I guess that the bootstrapping is my main problem?