why I will never use python-poetry

  Рет қаралды 60,200

anthonywritescode

anthonywritescode

Күн бұрын

Пікірлер: 121
@chrisharrel8837
@chrisharrel8837 2 жыл бұрын
I think this naturally calls for a video on piptools now
@DavidDellsperger
@DavidDellsperger 2 жыл бұрын
As someone who continually has to deal with issues that only happen intermittently and seemingly with the same inputs having different behavior, this would 100% annoy the heck out of me. I can't believe that a fellow developer would think that this is an acceptable behavior to add, ESPECIALLY in a CI environment.
@NostraDavid2
@NostraDavid2 2 жыл бұрын
Tell me how a creator isn't using their own tools, without telling me they're not using their own tools. At least not in a CI environment in any meaningful capacity. ¯\_(ツ)_/¯
@OrCarmi
@OrCarmi 2 жыл бұрын
That random in CI stuff is... something. Shows that the people behind this project haven't got a good understanding of how people build stuff in the wild, which is indeed disconcerting
@AceofSpades5757
@AceofSpades5757 2 жыл бұрын
I've never seen someone do something like before. And it seems like it was a very poor decision to do so. Why would I ever use a project where it's the intention to randomly fail? Never. I would never use it and would never have any confidence in using it.
@OrCarmi
@OrCarmi 2 жыл бұрын
@@AceofSpades5757 as an open source maintainer myself I don't like to resort to that kind of language and I'm sure that their motives were good, but it does raise concerns for the level of proficiency to be expected from the project
@AceofSpades5757
@AceofSpades5757 2 жыл бұрын
@@OrCarmi That's fair. I will update my wording to avoid insulting anyone. I meant it to convey how I felt on the matter, but that was a bit harsh on my part.
@Kralnor
@Kralnor 11 ай бұрын
A 5% chance to randomly fail in CI is ridiculous, as is the overnight deprecation and removal. I was looking into using poetry but your thoughts have definitely made me reconsider.
@jamesmunroe6558
@jamesmunroe6558 Жыл бұрын
As someone who's dabbled in Poetry and really liked it, I found your video so informative that it got you my subscription. I'm really looking forward to watching some of your other videos!
@DiogoBaeder
@DiogoBaeder 11 ай бұрын
I'm still a big fan of Poetry and will keep using it; However, your arguments here are very good, and I actually agree with them - it's bad to automatically update deps within major versions by default (because it's quite common to reach breaking changes between different minor versions), and it's SUPER BAD to introduce random breakages in CI builds just to "force" people to stop using some deprecated feature. Thanks for the video, you got a new subscriber 🙂
@tandavme
@tandavme 2 жыл бұрын
Great video Anthony, thanks! It would be nice to watch a video about pip-tools
@saurabhchopra
@saurabhchopra 2 жыл бұрын
+1
@xFrez
@xFrez 2 жыл бұрын
BROWNOUT_CHANCE = 5 GET_RID_OF_POETRY_CHANCE = 95
@josesebastiancolaneri7125
@josesebastiancolaneri7125 3 ай бұрын
couldn't agree with you more
@AceofSpades5757
@AceofSpades5757 2 жыл бұрын
I had not heard of pip-tools but a brief look at it makes me think it could solve some problems I've had with dependency management. Thanks for introducing me to it!
@buck3213
@buck3213 2 жыл бұрын
Interesting way to tell users that it’s time to fork or find something else
@mrswats
@mrswats 2 жыл бұрын
It's a very WTF decision. I moved away from poetry as well. now I need to convince work to do the same, but it'll be... hard given we migrated into poetry not that long ago...
@lonterel4704
@lonterel4704 2 жыл бұрын
Pip-tools is great
@mrswats
@mrswats 2 жыл бұрын
@@lonterel4704 I migrated to pip tools indeed
@NostraDavid2
@NostraDavid2 2 жыл бұрын
I'm in the same boat :(
@Beat0X
@Beat0X 2 жыл бұрын
The greatest value for me in poetry is how it helps manage and hence democratize the use of pyproject.toml. This really helped set our team on a journey to sane packaging and dependency management. The randomness in CI is wild though and we've definitely ran into weird stuff with poetry also the change in how hashes are handled before 1.2 compared to after which also broke our CI.
@rcracer1991
@rcracer1991 Жыл бұрын
I'm a big proponent of pyproject.toml as well. if someone isn't happy about using Poetry there's alternatives available like Flit.
@riccardotonini4337
@riccardotonini4337 11 ай бұрын
Ironically Poetry does not comply with PEP-621
@JorgeAnais
@JorgeAnais 2 ай бұрын
I typically watch videos at 2x speed, but this time I'm watching at 0.5x speed.
@anthonywritescode
@anthonywritescode 2 ай бұрын
.5x speed but only 5% of the time?
@justinfuruness7954
@justinfuruness7954 11 ай бұрын
wow, best breakdown I've seen thus far on actual technical reasons as to why not to use poetry. Great job! Loving your vids
@ssbarnea
@ssbarnea 2 жыл бұрын
Thanks for doing this one, now I can send others asking about poetry to your video. Much easier than having endless debates about why some feel the need for Vogon poetry. There are also other reasons, but if I remember well they would fit in the same category as your example regarding making deliberate decisions that disconsider the user-base. That kind of aggressiveness around deprecations I unacceptable, at least in my view. I was even upset about how aggressive was pip around reporting that is outdated, but what poetry did took it a new level.
@michaelschmidt850
@michaelschmidt850 Жыл бұрын
It is best practice to make changes to the interface just in major version changes, so it makes absolut sense to default to be compatible just to the same major version of a dependency
@anthonywritescode
@anthonywritescode Жыл бұрын
that mentality is harmful. yes breaking changes _may_ occur but they're unlikely to affect the core use of a library and without notice
@DaveParr
@DaveParr Жыл бұрын
Did you need to install poetry inside a venv? Isn't it designed to be installed at system level, and then it effectively creates a venv?
@anthonywritescode
@anthonywritescode Жыл бұрын
I install nothing globally kzbin.info/www/bejne/hWScYZKXl9-iZpo
@anthonywritescode
@anthonywritescode 7 ай бұрын
did you click the link?
@thexames3
@thexames3 2 жыл бұрын
Anthony, what's up with the thumbnails😚? Looks good though 😎
@voidvector
@voidvector 7 ай бұрын
As someone whose primary language is not Python, I found poetry makes project maintenance a lot easier. Having to manually manage venv and fiddle with requirements.txt just to bump minor versions for security patches is too much overhead.
@TotalImmort7l
@TotalImmort7l 3 ай бұрын
I'd love to hear your opinion on PDM. It's PEP standards friendly and it's dependency resolver is much more robust.
@anthonywritescode
@anthonywritescode 3 ай бұрын
a few other comments have asked below vvv
@Quarky_
@Quarky_ 2 жыл бұрын
Adding randomness is pure evil. Must have caused so much head-scratching and aggravation to people who were on this version. Edit: thanks about the pip-tools suggestion :)
@monirhossen7663
@monirhossen7663 20 күн бұрын
Great technical details. Can you please do a review of uv as an alternative to pip and virtualenv as both a Python package manager and project manager? Thanks in advance.
@anthonywritescode
@anthonywritescode 20 күн бұрын
I probably will not given my other video about astral
@Luan-i6z
@Luan-i6z 10 ай бұрын
Thanks Anthony for all of your great videos. As a new Python coder, I find Poetry is easier than Venv or pip-tools. Poetry documentation is easier to follow. Maybe when I am more advance user, things will change.
@petermoore8811
@petermoore8811 Жыл бұрын
I thought the video was clickbait and you were actually going to like it in the end but wow ok. I just started looking at poetry this morning because setuptools which i build pypi wheels in is so hard to manage. So what is the best practice to make pypi projects?
@anthonywritescode
@anthonywritescode Жыл бұрын
I don't do click bait
@gwrgrw4077
@gwrgrw4077 Жыл бұрын
@@anthonywritescode you in fact do clickbait, but actually make the video about what people clicked for, so it's good clickbait
@joemckoy8332
@joemckoy8332 Жыл бұрын
Sorry this is off topic, it's my first time seeing a video of yours. I just gotta know, what keyboard is that?
@anthonywritescode
@anthonywritescode Жыл бұрын
it's the kinesis freestyle pro -- here's my review of it and more details: kzbin.info/www/bejne/eovKdIiNm553kK8
@joemckoy8332
@joemckoy8332 Жыл бұрын
Thanks!
@hunorportik5618
@hunorportik5618 Жыл бұрын
Wow, ty for sharing this! Not that long ago we've just dealt with flask lib, that had something similar where they simply changed the default behavior, although wasn't even intended to be removed at the end. I went crazy about it. You should do another video about how flask.request.json changed from version ~1.X -> 2.2.X it's default behav.
@anthonywritescode
@anthonywritescode Жыл бұрын
to be fair, flask had been warning about that change for a very long time
@gerooq
@gerooq 9 күн бұрын
I've dabbled in python over the years despite not being a python dev, and it seems to me that the whole idea of virtual environments is an artificially created necessity due to the limitations of the pip package manager. I believe poetry does not come with those limitations, so just like alot of other package managers like npm, maven or the Go package manager, I believe I can use poetry on its own to manage everything related to packages and versions. So yeah, maybe in this case it is a good step forward to move away from the current python package management zeitgeist.
@anthonywritescode
@anthonywritescode 9 күн бұрын
they are just first class prefix environments but made convenient. not due to any sort of limitations
@anthonywritescode
@anthonywritescode 9 күн бұрын
and poetry uses virtual environments so your comment makes you look ignorant :)
@gerooq
@gerooq 9 күн бұрын
@@anthonywritescode ah in that case yeah i was being ignorant.
@gerooq
@gerooq 9 күн бұрын
@@anthonywritescode but i do not quite understand what you mean by “first class prefix environments”
@anthonywritescode
@anthonywritescode 9 күн бұрын
basically a directory that looks like /usr (and is enabled by "prefix"ing PATH). I believe named after the common argument `--prefix` to `./configure`)
@RyanRichardson-c8d
@RyanRichardson-c8d 3 ай бұрын
I'd be interested in your take on PDM as I swapped from poetry to PDM ages ago and still use it
@anthonywritescode
@anthonywritescode 3 ай бұрын
pdm used to do really really strange and scary ways of putting things on sys.path -- though they recently switched to just being a virtualenv creator and dependency manager which at that point what are you gaining over just using the vanilla tools (ok maybe a slightly centralized interface? but also a whole other place for bugs) -- nothing imo so it sits firmly in yagni territory
@sillybuttons925
@sillybuttons925 2 жыл бұрын
Ekk. I did use setup-py-upgrade as part of converting 10's of poetry pyproject.toml's to setup.cfg's so thanks for making that.
@amir.hessam
@amir.hessam 2 жыл бұрын
Poetry is still pretty good for mono-repo projects where you have 100 independent venvs; v1.2 has a lot of breaking changes; I agree they had to communicate better, but I guess poetry plays a big role in the future; especially in ML/DS world where side projects like `poetry-kernel` makes the venv management way easier
@lonterel4704
@lonterel4704 2 жыл бұрын
Use pants for monorepo
@anthonywritescode
@anthonywritescode 2 жыл бұрын
my point is "venv management isn't hard and poetry somehow makes it more complicated"
@TheAulto
@TheAulto 2 жыл бұрын
For ML/DS we’re stuck with conda. Mostly for the package repository.
@float32
@float32 Жыл бұрын
There were some serious red flags, in the poetry issues page, and this just cements my decision to undo a weeks worth of work in converting my projects to poetry. I hate python.
@Kyuubi840
@Kyuubi840 Жыл бұрын
I thought the "percent change to randomly fail" was just a hyperbole for the thumbnail. But they actually did it for real... wtf
@DMSBrian24
@DMSBrian24 Жыл бұрын
they did... what......
@alimulhasan8063
@alimulhasan8063 8 ай бұрын
After watching this video, another video about pip-tools is must right?
@Nebulorum
@Nebulorum Ай бұрын
I actually find the 5% break interesting. After having to track down countless teams tha ignore updates, I would say shaking people with a broken build is interesting. If there is no way to bypass this without upgrading and upgrading is breaking things, them.bad implementation. But lets be honest who scans logs on successful builds?
@anthonywritescode
@anthonywritescode Ай бұрын
I reckon most people would notice a warning when developing. even still there's no world that a random failure is an acceptable practice
@iandthopper
@iandthopper Жыл бұрын
I love/hate poetry. It is great until it is suddenly terrible.
@maksimon519
@maksimon519 Жыл бұрын
something to manage tons of packages, cannot be a tons of packages itself
@maksimon519
@maksimon519 Жыл бұрын
i use git submodule to 'install' a package manage module written by myself based on venv. it has no third party dependencies except stdlib
@Michallote
@Michallote 11 ай бұрын
WTF is going on with 5 percent chance of throwing an error?!? Did they ever justify or provided their thought process?
@bernardodc9631
@bernardodc9631 Ай бұрын
What about PDM?
@NostraDavid2
@NostraDavid2 2 жыл бұрын
Easy ("temp") fix for poetry: pin the version to something pre-1.2.0
@robertopro18
@robertopro18 5 ай бұрын
I don't have any issues with that tbh
@soklagenhet
@soklagenhet 2 жыл бұрын
Why do you use virtualenv and not venv? habbit, or actual reasons?
@valtterihuuskonen4207
@valtterihuuskonen4207 2 жыл бұрын
Anthony has made a video about it: kzbin.info/www/bejne/g3i3iWinfpd9qtU
@anthonywritescode
@anthonywritescode 2 жыл бұрын
kzbin.info/www/bejne/g3i3iWinfpd9qtU
@dmytroparfeniuk2670
@dmytroparfeniuk2670 Жыл бұрын
true! what about pipenv?
@IDRIVE-mk1lv
@IDRIVE-mk1lv 5 ай бұрын
Thank you for the detailed video, not going to use poetry.
@BryanChance
@BryanChance 9 ай бұрын
What does "poetry"? i can't tell by the name at all. and all "beautiful soup"?
@tomgivoly6748
@tomgivoly6748 Жыл бұрын
Hi, I have a small question. My project has quite too many dependencies and of course I would want to decrease the number of dependencies but right now every time a package I am using is getting upgraded and it breaks my Code the I need to lock its version. What would you advise me to do? Lock all versions of outside packages so I my code wont have problems so often? Or is it better to always upgrade the external packages? Thanks!
@anthonywritescode
@anthonywritescode Жыл бұрын
I tend to: - reduce deps wherever possible - lock everything in applications - be proactive about upgrading
@anthonywritescode
@anthonywritescode Жыл бұрын
I'll actually have a video coming out either later this week or next week which goes into further details about my strategy here
@tomgivoly6748
@tomgivoly6748 Жыл бұрын
Thank you very much! Much appreciated🙏
@ArthurKhazbs
@ArthurKhazbs 10 ай бұрын
What about pipenv? Have you tried it, is the experience any different?
@anthonywritescode
@anthonywritescode 10 ай бұрын
some of the same reasons as poetry (slow, yagni) but also I won't use it due to the original author
@walkdead94
@walkdead94 Жыл бұрын
Going from completely fine to breaking due to safety reasons is not that bad, but adding 5% chance error is comic and overthetop! Hahaha that is mess up!! Hahah
@saeedgnu
@saeedgnu 11 ай бұрын
Wait this guy works for docker??? That is unsettling!!
@fifamessi007fifamessi00
@fifamessi007fifamessi00 4 ай бұрын
I agree, but my pro-poetry colleague won the argument, considering hashing and sources URI
@anthonywritescode
@anthonywritescode 4 ай бұрын
you can do that directly with requirements.txt fwiw
@ccos218
@ccos218 2 ай бұрын
PDM is the way
@APK-jay
@APK-jay 8 ай бұрын
Wait, did I understand correctly that this was only ever added to an alpha? This appears to make this a non-issue to me
@anthonywritescode
@anthonywritescode 8 ай бұрын
it was added in an alpha and then released to everyone because it was through a website and not through normal mechanisms
@APK-jay
@APK-jay 8 ай бұрын
@@anthonywritescode That actually seems worse somehow... Oh gosh...
@StephenBuergler
@StephenBuergler Жыл бұрын
What happened to easy install?
@James-l5s7k
@James-l5s7k 4 ай бұрын
pipenv vs poetry makes my head hurt
@chiragjn101
@chiragjn101 2 жыл бұрын
I can think of some shenanigans based on the implementation 😂 since they are using the global implicit random instance, what if I set random.seed to something that would never cause a brownout failure.
@jajejijoju7874
@jajejijoju7874 Жыл бұрын
Seems that the problem is the requests library, not poetry
@anthonywritescode
@anthonywritescode Жыл бұрын
did you watch the video? this has nothing to do with requests?
@rolandovillcaarias5112
@rolandovillcaarias5112 3 ай бұрын
Hi Antony, after one year of your video, still thinking you will not use poetry?
@anthonywritescode
@anthonywritescode 3 ай бұрын
have the reasons in the video changed?
@anthonywritescode
@anthonywritescode 3 ай бұрын
does "never" not include 2024?
@atugushev
@atugushev 2 жыл бұрын
I feel your pain!
@AceofSpades5757
@AceofSpades5757 2 жыл бұрын
I've heard a lot of good things about poetry, but have had a stack of problems when using it that made me avoid it for all my projects.
@AceofSpades5757
@AceofSpades5757 2 жыл бұрын
Tbf, it's closest relative, pipenv, is blocklisted for all my projects and gets gutted for any older projects that I spot.
@NostraDavid2
@NostraDavid2 2 жыл бұрын
@@AceofSpades5757 How so? I never used pipenv, so I won't mind the information :)
@AceofSpades5757
@AceofSpades5757 2 жыл бұрын
@@NostraDavid2 TLDR A developed lack of confidence over the years. Too bad because I really liked the interface. Due to its ergonomics, I used it for most of my projects. Over the years it's had problem after problem after problem. Serious performance issues and difficult to diagnose bugs, which I usually thought was the code base but just turned out to be pipenv, have forced me to purge it from all my projects. P.S. For my next project, I'm going to try out pip-tools. Sounds like it would be a great complement to virtualenv.
@bkahlerventer
@bkahlerventer 3 ай бұрын
Nice video, I am for giving people their choices. As a developer, I want a dependency manager that is opinionated and does not stray too far from selected apis. For me pip freeze bundles dependencies of dependencies, ignores missing/broken dependencies. Chances I no longer want to use that library as it is not well maintained or old. For projects like ansible-lint to deliberately break poetry support 100% of the time is childish.
@anthonywritescode
@anthonywritescode 3 ай бұрын
? if poetry is that fragile and the official packaging tool can handle it surely poetry is the problem
@pedr0psb
@pedr0psb Жыл бұрын
What about pipenv?
@anthonywritescode
@anthonywritescode Жыл бұрын
maybe if I wanted to make every operation slower for no reason. I also won't use any software written by the original author on principle
@SanixDarker
@SanixDarker 10 ай бұрын
after 1year, do you think this is still true please ?
@anthonywritescode
@anthonywritescode 10 ай бұрын
if I didn't I would have issued a correction and taken down the video
@DouglasFurlong
@DouglasFurlong 8 ай бұрын
I certainly agree that on deprecation, there should be a grace period to allow people to migrate, and this doesn't appear to allow for that. Regarding the 5% failure, I kinda get where they were coming from, the likely hood of people looking at deprecation warnings in succeeding CI jobs is pretty slim, so they wanted to make a little noise, to draw people's attention to the fact that some thing has been deprecated, but not cause an outright failure suggesting code breakage. That being said, I can certainly see why that would irk some one.
@anthonywritescode
@anthonywritescode 7 ай бұрын
but it did cause an outright failure, at 5%
@AllExistence
@AllExistence 3 ай бұрын
how disgusting...
@nadavcohen9493
@nadavcohen9493 Жыл бұрын
5% chance to fail XDD tf is this Pokemon??
@deadwarrior9866
@deadwarrior9866 10 ай бұрын
poetry is xxxx trash for sure dont run it so many bug
virtualenv vs. venv (beginner - intermediate) anthony explains #040
11:22
anthonywritescode
Рет қаралды 42 М.
Setup a Python project with PDM
12:22
Orchard Dweller
Рет қаралды 6 М.
Will A Guitar Boat Hold My Weight?
00:20
MrBeast
Рет қаралды 221 МЛН
Minecraft Creeper Family is back! #minecraft #funny #memes
00:26
My daughter is creative when it comes to eating food #funny #comedy #cute #baby#smart girl
00:17
Is UV the FUTURE of Python PACKAGING? 🐍📦
17:52
Hynek Schlawack
Рет қаралды 7 М.
25 nooby Python habits you need to ditch
9:12
mCoding
Рет қаралды 1,8 МЛН
Avoid These BAD Practices in Python OOP
24:42
ArjanCodes
Рет қаралды 52 М.
How to Use Poetry in Python to avoid Dependency Hell
20:21
Earthly
Рет қаралды 15 М.
my python project setup (+ all tools) (intermediate) anthony explains #396
31:38
The most important Python script I ever wrote
19:58
John Watson Rooney
Рет қаралды 197 М.
Will A Guitar Boat Hold My Weight?
00:20
MrBeast
Рет қаралды 221 МЛН