We have a devpi deployment with several replicas distributed around the world. Sometimes, a developer, say in Australia (with his index set to the local replica), triggers a build which is most likely to occur in North America. We have seen checksum error (due to our so so network infrastructure) when pulling things across the WAN.
Most people use a homegrown bootstrap script, which among other things, measures the response time between the host and known replicas and lock on the fastest one. This has been working really well for us and has mitigated our network related issues.
However, some people use the devpi client directly which uses whatever server it’s been configured with. So I was wondering if, perhaps through some client plugin hooks, we could integrate that feature, that is, perform latency measurements and switch to the best replica on the fly.
I am not sure if we could make a generic plugin as it would need to be aware of the replicas available in your deployment, but if we can, then we would release it (if there is an interest of course).
Anyhow, I am just fishing here, but any input/suggestions would be greatly appreciated.
Thanks in advance.
we have some packages that are not public/open-source and we don't want
them to be public. we want to create a private pip server repository with
- ability to push our own packages to it, and install them easily from
pip(configured to use this local server)
- ability to select some public packages and automatically fetch them and
their dependencies, keep them update too(automatically obviously!)
by public package and it's dependencies i mean we give it a file(some how
give it! like reading a requirements.txt file), it reads the file, sees
that i have a flask package in there, it downloads flask and provides it
for me. it should look and get that flask itself needs some other packages
such as jinja2, werkzwerg and click to work. so it should download them to.
i think there is no pre-defined way to do it right?
any solutions to do it?