I think the best approach, and what Python officia...
# general
h
I think the best approach, and what Python officially endorses now, is Pipenv. Manages virtual env + requirements for you, and has a Pipfile where you specify what you want and Pipfile.lock for deterministic builds. Made by the author of requests https://docs.pipenv.org/ I have only used it for apps though, not libraries, so I’m not very familiar with how good it is for that
a
the linked pants issue has a description from @enough-analyst-54434 about how to arrange lockfiles to apply to individual python_binary or python_tests targets (which seems very doable, and would address the “for libraries, not just apps” use case, maybe) — in my head right now it seems like pipenv could take the place of the constraints files discussed in that issue — would need to read up on pipenv, have never used it before
thanks!
to clarify i normally have a massive amount of suspicion of NIH solutions from startups especially in the python and scala spaces so would love to use e.g. pipenv if applicable
(says the developer working at a company with its own build tool and scala futures implementation lol)
h
What do you mean by NIH solutions? Stands for not invented here?
a
yes! twitter imo does open source really well, including using existing tools wherever possible and it’s why i love working here
not a problem making your own software but tools that don’t fully solve the problem or aren’t clearly differentiated tend to make things more confusing and go unmaintained is all
(imo)
h
Ah agreed. The team I’m on at Foursquare, developer systems, has been killing off as many custom tools and forks as we can the past year. Less code is good code
👍 1
a
huh, i had seen that phrase but not the post before
and yeah, killing code is a wonderful feeling