I see a lot of comments about "hey it's open-source, just fork". The reason people feel upset is because this project was shilled hard when it was released. The python packaging team was officially recommending it, stuff like that. There was some backlash because of legitimate usability concerns with the software, and what was perceived as the tacit blessing of a project solely due to the maintainer's having written…
> the maintainer's having written another popular project. Potentially relevant: https://vorpus.org/blog/why-im-not-collaborating-with-kennet...
If this project is dead, just tell us
301–310 of 325 posts
Re: If this project is dead, just tell us
#302Pipenv has spawned so much controvery.. One big shitfest. Python packaging in general is such a messy ecosystem
Just curious, you don't find learning entire languages hard or confusing but suddenly writing 3 commands to set up a venv is too 'messy'?
Re: If this project is dead, just tell us
#303Earlier quoted context omitted.
I think that's the default for most high exposure projects. Unless, of course, both projects have the same author, and that author's primary concern is increasing their own exposure.
The cult of personality that is being nurtured around certain members of the Python community definitely harms the Python ecosystem, because solutions with glaring flaws get a pass when they are stamped with someone's name, and the mismanagement of projects is rarely addressed. Then there's also the issue of such members of the community exploiting the human tendency to worship others.
Re: If this project is dead, just tell us
#304Earlier quoted context omitted.
Yup. Further, I do a lot more research in the dependencies I bring in (if I can help it). Does this thing also bring in 1000x sub dependencies? How much am I REALLY going to use this. What's the actual added value here. I've seen people bring in libraries for simply the dumbest things. The worst offender I've seen is lombok brought in for a @Logger annotation on one class. That stopped our java 6->8 migration because…
If you can write the used functionality in 10 minutes, you should not bring it in as a dependency. I disagree with this; it depends on the size of the dependency, plus the risk of a problem with the dependency vs the risk of making a mistake vs the risk of code drift when the same 10-min thing gets written a dozen different ways across an org.
The dependency may change in surprising ways in the future. The dependency may not change in expected ways in the future. (ie, now you're trapped in an old version of the language, or another one of your dependencies)
The problematic part with reinventing the wheel or NIH is that you add a fixed cost of doing business to any given change. The problem with importing the world is that you add a dynamic cost to simply existing without change.
It's a tradeoff, and it's not a tradeoff that's consistent across organizations. For some orgs it's really important to be first to market. In other orgs it's important to not break shit for your existing customers.
My org is well established in our field. Nothing matters more than retaining our existing customers. Importing a new lib requires approval from legal, which requires about a personweek. In other words, if one developer could implement the same thing in less than 40 hours, the developer should implement it themself. For us, a slow moving org, I think we're at the right place. For a startup, obviously not.
Re: If this project is dead, just tell us
#305I’ve heard good things about pip-tools: https://github.com/jazzband/pip-tools
We also recently switched from Pipenv to pip-tools and so far it has been very pleasant. Our workflow: - Use pyenv to manage python versions (mostly works pretty well) - In the beginning, use builtin python 3 tooling to create virtual env for the project: "python3 -m venv venv" - Whenever needed, add new libs to "requirements.in" - Run the "pip-compile" command to generate a new "requirements.txt" with the dependency…
Re: If this project is dead, just tell us
#306Earlier quoted context omitted.
Can you link to one of these times a maintainer said something like that?
I put myself in very uncomfortable position. When I need to prove my words by blaming someone who did very good job for the community in general. At least have these good intentions. And the same time I don't want shame somebody in public. I did some research and think this link is enough https://github.com/pypa/pipenv/issues/1137 .
The users in that topic then continue the discussion in all of its aspects, expecting the maintainer to engage with them. I can imagine it feels to the maintainers as an energy-sucking discussion.
IMHO, you're not shaming the maintainers, you're shaming the community here.
Re: If this project is dead, just tell us
#307Earlier quoted context omitted.
I recently switched from Poetry (to which I switched after pipenv) to pip-tools for some projects, because Poetry was not able to work properly with some dependencies. Pip-tools has been a dream. It is just a thin layer of tools on top of Pip that separates your 'abstract' requirements (eg: django edit: it also automates updating the release requirements file (within the constraints of the abstract requirements).
Thanks for this. I've been a poetry fan since... the first release and pipenv really just fails for me. I'm going to check out pip-tools today.
Re: If this project is dead, just tell us
#308I’ve heard good things about pip-tools: https://github.com/jazzband/pip-tools
We also recently switched from Pipenv to pip-tools and so far it has been very pleasant. Our workflow: - Use pyenv to manage python versions (mostly works pretty well) - In the beginning, use builtin python 3 tooling to create virtual env for the project: "python3 -m venv venv" - Whenever needed, add new libs to "requirements.in" - Run the "pip-compile" command to generate a new "requirements.txt" with the dependency…
Re: If this project is dead, just tell us
#309Earlier quoted context omitted.
> but I think this is confusing something painful with something useful There is software out there that absolutely cannot break. Like "if this breaks, people will die". Medical software, power plant software, air traffic control software, these are obvious examples, but even trading and finance software falls into this category, if some hedge fund somewhere goes bankrupt because of a software bug real people suffer.…
> I am not working on anything like this. I work on a lighting automation system. If I fuck up my release, nobody is going to die (well, most likely, there are some scenarios), but if I fuck up sufficiently, a lot of people will be incredibly annoyed. So I have every version of every dependency frozen. All the way down the dependency tree. Most people’s systems are not that special that they absolutely need to do thi…
Suddenly a small security-patch forces you to essentially replace your whole stack. If your test flags any error you have no idea which of the updated subpackages that caused it, because you have replaced all of them. Eventually you accumulate so much tech debt that it's tempting to cherry-pick the security patches into your packages instead of updating them to mainline, sucking you even deeper down the tech debt trap.
Integrating often means each integration is smaller, less risky and easier to pinpoint why the failure happens. Of course this assumes you have good automatic test coverage, which i assume you do if the systems are as life-critical as parent claim them to be.
There's also a big difference between embedded and connected systems here. Embedded SW usually get flashed once and then just do whatever they are supposed to do. Such SW really is "done", there is no need to maintain it or it's dependencies because it's not connected to the internet so zero-days or other vulnerabilities are not really a thing.