uv 0.3.0 released
Version 0.3.0 of the uv
Python package and project manager has been released. Introduced in
February, uv is written in Rust and aims to be "Cargo for
Python
". Notable changes in this release include the addition of
interfaces for managing projects, installing
Python, and running scripts,
along with adding new documentation. See the
accompanying blog post for more information.
Posted Aug 20, 2024 23:15 UTC (Tue)
by not-a-bobomb (guest, #172995)
[Link] (32 responses)
There need to be some serious changes to the staff and content being published. This is a disservice to the members who don't have a Rust agenda to push.
Posted Aug 20, 2024 23:21 UTC (Tue)
by legoktm (subscriber, #111994)
[Link] (1 responses)
Posted Aug 21, 2024 10:30 UTC (Wed)
by Sesse (subscriber, #53779)
[Link]
Posted Aug 21, 2024 0:13 UTC (Wed)
by motk (guest, #51120)
[Link]
Posted Aug 21, 2024 2:23 UTC (Wed)
by willy (subscriber, #9762)
[Link] (19 responses)
Posted Aug 21, 2024 9:08 UTC (Wed)
by flussence (guest, #85566)
[Link] (18 responses)
I came across an enlightening phrase this week - “your community standards are set by the biggest asshole you won't ban” - in the replies to https://social.treehouse.systems/@marcan/112976577519704731, which perhaps not coincidentally is a thread making fun of a crowd of people with the same smell and lack of self-awareness as the OP.
Reading that line really drove home the realisation that my personal standards and principles have grown incompatible with a lot of situations I used to silently put up with ten or twenty years ago, and I am not going to compromise them for the sake of mere content consumption.
I cannot envision a future where I have anything constructive to add here given the state of things, so I intend to make this message my last and take these vague feelings of disappointment and regret with me. The thing is, I'm not the first one to give up. There used to be a lot more impromptu displays of domain expertise, and a lot less drive-by screeching about an article's use of pronouns and dogwhistle words used exclusively by racists and ignorant programming language elitism from Non-Practicing Entities and other utterly brain-dead drool from factory-produced plastic zombies with a pullstring on their back and the same five tiresome catchphrases. "Rust agenda" my ass, grow up.
Honestly I wish I could nuke all trace of my ever having been associated with this site. It wasn't a nazi bar when I subscribed 12 years ago, something changed there and there's no will to change it back.
good luck with whatever this is
Posted Aug 21, 2024 14:10 UTC (Wed)
by Phantom_Hoover (subscriber, #167627)
[Link] (12 responses)
Posted Aug 21, 2024 16:23 UTC (Wed)
by fishface60 (subscriber, #88700)
[Link] (11 responses)
I'll grant LWN staff may have addressed it to the best of their abilities and didn't anticipate it blowing up so horribly, but I wouldn't call it taking so long to lock the comments down a fairly good job.
Calling the site a nazi bar is a warning for what it could become if they don't get a hold of the problem of commenters getting away with bigoted dog-whistles unmoderated. It doesn't happen overnight.
Posted Aug 21, 2024 17:56 UTC (Wed)
by Phantom_Hoover (subscriber, #167627)
[Link] (10 responses)
Posted Aug 22, 2024 9:10 UTC (Thu)
by fishface60 (subscriber, #88700)
[Link] (9 responses)
The point is that you call any bar that lets open Nazis in a Nazi Bar because if you don't moderate and kick them out eventually all your other customers will go somewhere else.
If you think it's unfair to call commenters Nazis for accusations of there being a "Rust Agenda" or declaring that the Apache software project is more important than Native Americans, it's strongly correlated with beliefs that are more obviously neo-Nazi, I've seen many such cases on platforms less moderated than this.
Posted Aug 22, 2024 9:29 UTC (Thu)
by Phantom_Hoover (subscriber, #167627)
[Link] (8 responses)
Posted Aug 22, 2024 11:16 UTC (Thu)
by atnot (subscriber, #124910)
[Link] (7 responses)
It's simply relating the fact that, since the standards of a community are set by the worst person you don't ban, the logical conclusion of hands-off moderation is your site eventually being overrun with awful people, up to and including, eventually, Nazis. And that preventing this gets harder (and more "controversial") the further along that curve you are.
Nazis are not invoked as an absolute statement on the current status quo of this site, then. While awful stuff including fascist rhetoric is somewhat regularly allowed, our editor is at least decent at removing the more virulent commenters. (Although you can still say pretty much whatever you want as long as you're superficially polite about it or jaqing[1]). It is instead a warning as to the inevitable endpoint of the current policy.
[0] https://en.m.wiktionary.org/wiki/Nazi_bar
Posted Aug 22, 2024 13:58 UTC (Thu)
by Phantom_Hoover (subscriber, #167627)
[Link]
Posted Aug 22, 2024 14:15 UTC (Thu)
by Phantom_Hoover (subscriber, #167627)
[Link] (5 responses)
Posted Aug 22, 2024 15:06 UTC (Thu)
by paulj (subscriber, #341)
[Link] (4 responses)
This is just obvious non-sense.
Common-sense is that you set a bar. You take action against gross violations. You maybe warn people in and around the bar. And everything obviously under the bar you just tolerate. That means tolerating different views and disagreement, under that bar.
There will inevitably be some users who feel the bar is too high, some too low. That's OK. Get used to it. Develop tolerance. That's just how humans work.
Posted Aug 23, 2024 11:15 UTC (Fri)
by Wol (subscriber, #4433)
[Link] (3 responses)
To quote the GP's quote - "Iron Crosses and shit" - what do Iron Crosses have to do with Nazis? (True, they handed them out with gay abandon, but ...)
Setting that bar is hard. PJ's was easily expressed, but on occasions unfair - "If I wouldn't have it in my living room, I won't have it on Groklaw" - which discriminated against other cultures, sadly - I fell foul of that on several occasions ...
The other rule that was great though, was "if you can't back it up with facts, expect it to be deleted". Although *explicit opinion* was almost invariably okay, too. It's a shame about flussence though - I liked him, even if he was a bit OTT on occasion. I understand he's a bigwig in the BSD world - sounds like he might be becoming the ESR of BSD ... whoops ...
Cheers,
Posted Sep 25, 2024 15:31 UTC (Wed)
by ssokolow (guest, #94568)
[Link] (2 responses)
Posted Sep 26, 2024 7:19 UTC (Thu)
by NAR (subscriber, #1313)
[Link] (1 responses)
Posted Sep 26, 2024 7:26 UTC (Thu)
by corbet (editor, #1)
[Link]
Also in general resurrecting this conversation seems unnecessary. This article is now set for moderation; standards for any further posts will be high.
Posted Aug 21, 2024 16:17 UTC (Wed)
by hmh (subscriber, #3838)
[Link]
Fortunately it works quite well, since unfortunately my denylist is growing a bit every couple months :-(
It won't help create more useful content and the noise will still be there getting in the way of better posts in general, but it has less immediate drawbacks than your usual post-karma and reputation mechanics. It is far more limited, though, and it helps little against throw-away one-use troll accounts.
Posted Aug 21, 2024 19:59 UTC (Wed)
by DanilaBerezin (guest, #168271)
[Link] (3 responses)
If you sincerely feel that LWN is a "nazi bar site," my sincere, good-faith suggestion is that you take a break from politics on social media, or even better, social media in general. You'll find it's incredible how much of a toll social media takes on your mental and emotional health. Take note of the fact that the people you find yourself in a heated argument with over the internet, rarely exist in the real world.
Posted Aug 21, 2024 21:20 UTC (Wed)
by ceplm (subscriber, #41334)
[Link]
Posted Aug 21, 2024 22:25 UTC (Wed)
by viro (subscriber, #7872)
[Link]
Said that, it was really badly done. Original cretin had been annoying, but stooping down _below_ its level...
Posted Aug 23, 2024 0:55 UTC (Fri)
by CChittleborough (subscriber, #60775)
[Link]
If you ever feel you need to participate somewhere, that probably means that you should stop ASAP.
Posted Aug 21, 2024 3:03 UTC (Wed)
by geofft (subscriber, #59789)
[Link] (6 responses)
But since we have no choice but to have some low-quality, almost-flamebait discussion as the first thing below the article, I'll offer this contribution: if you are seeing a highly technical and meritocratic community have a strong bias in favor of a certain tool or technology, consider that the real agenda may be seeking meritorious technical quality, and steadfastly following that metric wherever it may lead. Despite my problems with the comment system, I pay LWN because I trust that their editors will not reject something of technical merit because they worry that too many other things of technical merit are written in the same language.
Posted Aug 21, 2024 6:45 UTC (Wed)
by garyvdm (subscriber, #82325)
[Link] (2 responses)
Posted Aug 21, 2024 6:59 UTC (Wed)
by LtWorf (subscriber, #124958)
[Link] (1 responses)
Posted Aug 23, 2024 1:05 UTC (Fri)
by CChittleborough (subscriber, #60775)
[Link]
Strongly commends geofft's post (https://lwn.net/Articles/986563/). Well said, sir!
Posted Aug 21, 2024 12:00 UTC (Wed)
by pizza (subscriber, #46)
[Link]
There is a considerable difference between a "community bias" and a handful of folks drowning everything else through sheer volume.
Posted Aug 21, 2024 16:12 UTC (Wed)
by sdalley (subscriber, #18550)
[Link] (1 responses)
Posted Aug 26, 2024 16:16 UTC (Mon)
by mathstuf (subscriber, #69389)
[Link]
Posted Aug 21, 2024 6:56 UTC (Wed)
by epa (subscriber, #39769)
[Link] (1 responses)
Posted Aug 21, 2024 11:21 UTC (Wed)
by excors (subscriber, #95769)
[Link]
The LWN FAQ (in the sidebar) has said this for at least 22 years:
> What does LWN stand for, anyway?
Posted Aug 21, 2024 2:53 UTC (Wed)
by geofft (subscriber, #59789)
[Link] (5 responses)
Nathaniel Smith argued last year that one of the real, practical problems with Python packaging is that you get the interpreter first and the package-management tool second. One specific way that I've run into a lot is how common it is for end users who want to do things like use a Jupyter notebook use the OS-provided version of Python, which is usually designed for the sake of OS applications that happen to be written in Python. This interpreter naturally loads an OS-provided and OS-managed set of packages, which is very rarely what end users want. The data science crowd, in particular, often wants things that are prohibitively difficult to supply as OS packages such as TensorFlow, and sudo pip install tensorflow starts intermixing packages tracked by the OS and packages tracked by pip into the same environment.
So two things happened. In one effort, people came up with the idea of the "virtual environment," which was originally a terrible set of hacks to the Python standard library to allow using different sets of library packages with the same interpreter. In another, a few people set up Anaconda and the Conda ecosystem, which for many years was the obvious right way to get something that actually worked for data science / scientific computing, at the cost of being its own separate ecosystem with its own practices that was seen as a little weird by the rest of the Python community. Conda had the right idea—that it manages a Python installation just like it manages everything else in your environment—but it was never going to be the normal way of using Python, and as that post points out, this leads to a lot of complexity both in Python being generic enough to handle arbitrary package/environment managers and the packaging tools being generic enough to handle arbitrary Python installations. And that extremely loose coupling inevitably turns into a superfund site.
Ultimately, I think that it's an anti-pattern for a package manager to treat a project's dependency on the base language implementation as distinct from other types of dependencies. Even Rust/Cargo (which the uv folks are clearly familiar with) gets this wrong, and handling "minimum supported Rust version" is generally ad-hoc and informal, despite having an otherwise powerful dependency resolver. (For Rust, this is usually in practice fine because the language has strong backwards-compatibility guarantees, so you can usually just upgrade to the latest version of the compiler and not care about MSRV, and you're encouraged to do so. MSRV is mostly relevant when targeting some ecosystem like a Linux distro with strong opinions about not just constantly upgrading the compiler version. Python does not target this level of backwards compatibility, so this is a practical problem for Python end users.) Again, when considering the scientific computing ecosystem, one practical problem is that dependencies are generally precompiled, and not every major dependency has uploaded binaries for the latest Python interpreter version on release day (though this has been getting better). A resolver that can see, oh, package X doesn't yet support Python 3.14 so let me get you Python 3.13 can actually help the end user; a resolver that just works with an existing Python install can get you an error message or attempt to compile from source, both bad answers. Also, an environment manager that manages your Python version can handle locking and upgrades the same way it handles upgrades to any other dependency, including letting you roll back the upgrade if it turns out not to have worked, which wouldn't be an option with a systemwide installation. I don't think uv does this sort of thing yet, and the Python ecosystem isn't quite set up for it yet, but it's now theoretically possible for it to do so.
Posted Aug 21, 2024 8:03 UTC (Wed)
by paulbarker (subscriber, #95785)
[Link] (4 responses)
Posted Aug 21, 2024 9:33 UTC (Wed)
by domdfcoding (guest, #159754)
[Link] (1 responses)
Posted Aug 21, 2024 10:20 UTC (Wed)
by paulbarker (subscriber, #95785)
[Link]
Posted Aug 21, 2024 23:05 UTC (Wed)
by himi (subscriber, #340)
[Link] (1 responses)
That said, it's possible that uv will never become something suitable for the kind of use case you're referring to - the challenge of supporting such a broad and often highly customised ecosystem may just be greater than it's worth. Which is fine - a really good solution that works for the low hanging 80% of use cases is still a really good solution, even if it's not usable everywhere.
My hope, though, is that the development of a tool that /can/ be a really good solution for the low hanging fruit may drive work in the broader ecosystem to allow the more heavily customised use cases to fit into that tool's paradigm (as well as encouraging the tool developers to meet in the middle). So far my experience with both ruff and uv is that they're /so/ much better than the alternatives (for the stuff they actually /do/ handle, which tends to grow very quickly) that there's a lot of impetus to adjust standard/common practises to support them - the 80% solution that's 10+ times faster than alternatives will start looking pretty damn attractive to the people in that 20%, even if they have to change the way they do things a bit . . .
Posted Aug 22, 2024 8:38 UTC (Thu)
by taladar (subscriber, #68407)
[Link]
Posted Aug 21, 2024 7:47 UTC (Wed)
by mgedmin (subscriber, #34497)
[Link] (7 responses)
Can uv-managed Python installations be used by external tools? The docs give me the impression that they're not put on $PATH by default. I was unable to find any documentation about _where_ uv keeps its managed Pythons, but if they're somewhere like ~/.local/uv/pythonX.Y/, maybe I can symlink ~/.local/bin/pythonX.Y -> ~/.local/uv/pythonX.Y/bin/python?
Is there no command to update all the managed Pythons to the latest patchlevels? This is the thing I miss most from my current scheme of manually building a bunch of interpreters from source and installing them into ~/opt/pythonX.Y.
Also, this bit
> We choose libedit by default to avoid GPL licensing requirements of readline.)
from from https://gregoryszorc.com/docs/python-build-standalone/mai... makes me raise an eyebrow.
Posted Aug 21, 2024 9:11 UTC (Wed)
by bluss (guest, #47454)
[Link]
Posted Aug 21, 2024 23:40 UTC (Wed)
by himi (subscriber, #340)
[Link] (5 responses)
> Can uv-managed Python installations be used by external tools? The docs give me the impression that they're not put on $PATH by default. I was unable to find any documentation about _where_ uv keeps its managed Pythons, but if they're somewhere like ~/.local/uv/pythonX.Y/, maybe I can symlink ~/.local/bin/pythonX.Y -> ~/.local/uv/pythonX.Y/bin/python?
The section at https://docs.astral.sh/uv/concepts/python-versions/#disco... mentions UV_PYTHON_INSTALL_DIR - I can't find the default in the documentation either, but if you explicitly point it at a location you should be able to get the kind of access you're after.
> Is there no command to update all the managed Pythons to the latest patchlevels? This is the thing I miss most from my current scheme of manually building a bunch of interpreters from source and installing them into ~/opt/pythonX.Y.
I'm guessing their assumption is that you just create new installs as required, rather than keeping them around and updating them - that's my reading of the discussion in the blog post. This is one of the reasons they focus so much on speed - if starting from scratch has minimal lag compared to starting with something that's already set up then it's often better to start from scratch . . .
> Also, this bit
It does raise eyebrows, but if the goal is to have something that can be redistributed as part of a packaged application (potentially even a single-file executable) I could see there being some value in avoiding including a GPLed shared library that might complicate licensing questions . . .
Posted Aug 22, 2024 7:38 UTC (Thu)
by bluss (guest, #47454)
[Link]
Posted Aug 23, 2024 11:35 UTC (Fri)
by Wol (subscriber, #4433)
[Link] (3 responses)
> > from from https://gregoryszorc.com/docs/python-build-standalone/mai... makes me raise an eyebrow.
> It does raise eyebrows, but if the goal is to have something that can be redistributed as part of a packaged application (potentially even a single-file executable) I could see there being some value in avoiding including a GPLed shared library that might complicate licensing questions . . .
As is usually the case, this is the FSF being political. As they themselves point out, for practical purposes libraries should be licenced *L*GPL. So they consciously and deliberately licenced readline as *GPL*. Their code, their decision. But the response - which should have been forseen and expected (maybe it was) - was the immediate appearance of LGPL/BSD clones. It's this *politicking* which is pushing more and more people to permissive rather than copyleft licencing.
(No comments on whether such as move is sensible or not - from my POV it's all meaningless, anyway. The GPL argument just doesn't add up in a world of scripts and runtime linking ...)
Cheers,
Posted Aug 23, 2024 13:17 UTC (Fri)
by paulj (subscriber, #341)
[Link] (2 responses)
Uhm, I don't believe that is true.
Posted Aug 23, 2024 17:42 UTC (Fri)
by Wol (subscriber, #4433)
[Link] (1 responses)
But surely the consequence of that is obvious? Competing libraries sprang up. So according to current circumstance, they should use the LGPL - and that outcome was pretty much inevitable!!!
So imho, and I'm sorry if it upsets people, but the current scenario where a LOT of people won't use libreadline because of the licencing, was both inevitable, AND FORSEEABLE.
So to call it "FSF politicking" isn't that wide of the mark.
Cheers,
Posted Aug 27, 2024 3:04 UTC (Tue)
by SLi (subscriber, #53131)
[Link]
While I don't usually quite align myself with FSF or especially RMS, I don't think the guidance about libraries is that misguided. If anything, I'd say it's misguided in that it suggests being a library is a worthy distinction at all (and, well, it's my gut feeling that FSF has been moving away from that interpretation, and they definitely seem to regret naming it "Library General Public License", which is why they renamed it "Lesser" in 1991).
Posted Aug 21, 2024 9:23 UTC (Wed)
by rgb (subscriber, #57129)
[Link] (11 responses)
Posted Aug 21, 2024 9:38 UTC (Wed)
by domdfcoding (guest, #159754)
[Link] (2 responses)
Posted Aug 22, 2024 8:29 UTC (Thu)
by taladar (subscriber, #68407)
[Link]
Posted Aug 22, 2024 8:49 UTC (Thu)
by bluss (guest, #47454)
[Link]
Posted Aug 21, 2024 11:22 UTC (Wed)
by zdzichu (subscriber, #17118)
[Link]
Posted Aug 21, 2024 14:41 UTC (Wed)
by ovitters (guest, #27950)
[Link] (1 responses)
I highly encourage you to have a look at https://developers.home-assistant.io/blog/2024/04/03/buil.... Home Assistant used to take hours between them starting the release and it being available for users. Since they switched the pypi-bit went to taking up to 2 hours to 6 minutes or so. That's a massive difference.
Note: I'm a HA user. The difference is noticeable as the release now is usually available when they announce it (instead of multiple hours later).
Posted Aug 21, 2024 17:19 UTC (Wed)
by mbunkus (subscriber, #87248)
[Link]
Posted Aug 21, 2024 23:15 UTC (Wed)
by himi (subscriber, #340)
[Link] (1 responses)
Having inherited a few projects that use poetry, having an alternative that isn't quite so unwieldy is really attractive - I'm looking into these new features carefully. Hopefully I can get that same ludicrous speed while also being able to have reliably reproducible installs and more flexible management of dependencies than poetry currently offers.
Posted Aug 23, 2024 11:29 UTC (Fri)
by Wol (subscriber, #4433)
[Link]
Which is back to me moaning about SQL again - MV will run an entire query faster than SQL can run the AST optimiser! Because it pushes a lot of the optimisation work onto the database analyst, which then means the query itself has much less work to do.
In other words, Einstein's "Make everything as simple as possible, but no simpler". By making one part of the equation too simple ("premature optimisation"), you create excessive complexity elsewhere to compensate.
Cheers,
Posted Aug 24, 2024 21:58 UTC (Sat)
by rra (subscriber, #99804)
[Link] (2 responses)
This will matter more to you if you're using tools like tox and nox for development that juggle venvs and thus do installs a lot, and less if your environment tends to be fairly static, but if you do anything related to freezing and bumping dependencies and updating venvs accordingly, it's amazing how nice the lack of friction is.
I am a big believer in the theory that there is a latency threshold for an interactive command at which the person issuing it is tempted to switch away to another window and do something else while it works, and if you can get the speed below that threshold, it has a very outsized impact on development productivity because it reduces context switches. You can also reduce the context switches through mental discipline, but if you have faster commands rather than having to sit there and stare at a prompt and resist the urge to do something else, it's the best of all worlds.
Posted Sep 4, 2024 9:04 UTC (Wed)
by sammythesnake (guest, #17693)
[Link] (1 responses)
Posted Sep 4, 2024 9:16 UTC (Wed)
by Wol (subscriber, #4433)
[Link]
But while ADHD-type people concentrate on the *current* task (which is why context switching can be devastating to work throughput), "true autism" resists context switching, and will switch back at the first opportunity. Which can also be a pain in the neck for managers, because these people have their own internal priorities which are damn hard to reset!
Cheers,
Posted Aug 21, 2024 16:36 UTC (Wed)
by NightMonkey (guest, #23051)
[Link] (1 responses)
* A replacement for those, or
As a 'superuser' of package managers and language environments for deployments, I would love some reliable reference that I can lean on to discover whatever the current better practices in every language-centric package management paradigm are. I love having choices, but I also love guidance and standards where they make sense.
Posted Aug 22, 2024 0:43 UTC (Thu)
by himi (subscriber, #340)
[Link]
The new features in this release seem to be expanding on that python project level - expanding the support for managing dependencies, adding support for workspaces (collections of packages with their own pyproject.toml, but with a common lockfile - a concept picked up from cargo), and adding a bunch of extra features to support running code from a package in a managed environment. They've explicitly talked about cargo for python as their goal (though not necessarily as a simple "reimplement all cargo features" - there will likely be cargo features that won't make sense in a python context), so I'd say it's likely that they'll expand things to support all the core functionality that cargo has, and then whatever else is needed for python.
I think it's clearly intended to operate in the same space as poetry, though it also operates happily at a lower level - you can still use it as a better pip or python -m venv (which you definitely /can't/ use poetry for). The fact that those lower-level use cases can benefit from things like lockfiles that are created at the higher level will probably be very useful for deployment or image builds and similar (so you don't need poetry and all its dependencies just to deploy a new environment). It's also more standards compliant than poetry - the dependency format follows pep 508, which means you can feed them directly into pip if necessary, which you can't with poetry's dependency format . . .
Posted Aug 21, 2024 17:37 UTC (Wed)
by fishface60 (subscriber, #88700)
[Link] (6 responses)
Posted Aug 21, 2024 18:05 UTC (Wed)
by excors (subscriber, #95769)
[Link] (5 responses)
> We considered a ton of names — it's really hard to pick a name without collisions this day so every name was a balance of tradeoffs.
(Astral is the company that develops it.)
Posted Aug 21, 2024 20:56 UTC (Wed)
by intelfx (subscriber, #130118)
[Link] (3 responses)
Heh. I guess they failed, because "How is this related to libuv?" was the first question I asked myself upon seeing this news article.
Posted Aug 21, 2024 22:03 UTC (Wed)
by rrolls (subscriber, #151126)
[Link] (2 responses)
I'm not a fan of the modern tendency to give everything the shortest possible name. I'd happily have a tool whose name was 6+ letters long. That's still plenty easy to remember and easy to type, while significantly less likely to collide with so many things, and as a result, almost always easier to get relevant search results for. If I ever want a shorter name for something, I can always just put an alias in my bashrc.
Posted Aug 22, 2024 11:23 UTC (Thu)
by kpfleming (subscriber, #23250)
[Link]
Posted Aug 23, 2024 10:59 UTC (Fri)
by Wol (subscriber, #4433)
[Link]
Cheers,
Posted Aug 22, 2024 9:18 UTC (Thu)
by fishface60 (subscriber, #88700)
[Link]
I'd even got as far as "well, Ultraviolet light is of high frequency, and that kind of means fast if you squint so Ultraviolet light could be an allusion to being fast and lightweight if you squint".
Posted Aug 22, 2024 19:43 UTC (Thu)
by fraetor (subscriber, #161147)
[Link] (2 responses)
I'm surprised pixi hasn't been mentioned yet. It is full stack package manager aiming to replace conda, written by the people behind mamba. I found out about it via SciPy 2024, and it looks very interesting, not least because it is very fast. This summary of its selling points caught my attention, as I heavily use conda. It actually uses uv to provide its PyPI integration, which is pretty neat. For bonus points it is written in rust.
Posted Aug 23, 2024 18:05 UTC (Fri)
by bookworm (subscriber, #114190)
[Link] (1 responses)
The python stack really should start to focus, it's kinda getting ridiculous.
All of those newfangled tools try to solve the same job and are mutually incompatible :/
Posted Aug 24, 2024 0:18 UTC (Sat)
by himi (subscriber, #340)
[Link]
I do think this is improving, if somewhat slowly - uv is explicitly using pep 508 format dependencies and the project.dependencies/project.optional-dependencies tables as specified in pep 621, which means it's basically compatible with anything else that supports those standards. It can generate a frozen requirements.txt file with pep 508 compatible dependency specifications, which again should work with anything that supports that format. Where it's not striving for compatibility is the lock file, where there /is/ no standard - poetry has its own format, and uv uses a format that's clearly inspired by that but not identical. That will probably come down to whoever can get a workable and sufficiently well specified format broadly adopted before moving to standardise it. It's also expanding the project concept with new features like workspaces, which as far as I know aren't really a thing with any other python packaging tool - well have to see how that progresses, and if/to what extent it becomes a "standard feature".
Pixi seems to be using uv to handle dependency resolution calculations, and there are at least a few higher level tools that are using uv as a replacement for pip - the speed improvements you can get from that clearly make it an attractive proposition, any additional features aside. That suggests there's a reasonable chance we'll see things start to consolidate around uv (and the standards it supports) for core functionality, both reducing the number of competing implementations /and/ reducing the mutual incompatibility.
Historically the Python community has been good at shooting itself in the foot when it comes to packaging matters, so there's still hope for further chaos. Astral (the uv/ruff devs) seem to be pushing hard to reduce the chances of that, though, mostly by dint of raw speed (both runtime speed /and/ development speed) - they're not only talking about "cargo for Python", they're actually /implementing/ it, /now/.
What is this?
What is this?
What is this?
What is this?
What is this?
What is this?
What is this?
Re: Nazi bar
I happily missed that the first time round but it's a boil-in-the-bag culture war standoff with, if anything, lower levels of toxicity and extremism than usual. That's the basis on which this site is accused of turning into a Nazi bar?!
Re: Nazi bar
Re: Nazi bar
Re: Nazi bar
Re: Nazi bar
[1] https://rationalwiki.org/wiki/Just_asking_questions
Re: Nazi bar
Re: Nazi bar
Re: Nazi bar
Re: Nazi bar
Wol
Re: Nazi bar
To quote the GP's quote - "Iron Crosses and shit" - what do Iron Crosses have to do with Nazis? (True, they handed them out with gay abandon, but ...)
While The Iron Cross is a military medal that existed before the Nazis, they made it their own in the eyes of far too large a portion of the western world.
Same as with how pretty much anyone in the western world is going to feel uncomfortable if they visit a temple in East Asia and see it covered with swastikas in their original context and meaning.
Re: Nazi bar
Terms like "snowflake" really do not help the discussion, please do not do that here.
Enough
What is this?
What is this?
What is this?
What is this?
Social media can be insidiously harmful
LWN's chronological comment view is the worst feature of the website
LWN's chronological comment view is the worst feature of the website
LWN's chronological comment view is the worst feature of the website
Shudder
Shudders.
Emphatically agrees: no voting!
LWN's chronological comment view is the worst feature of the website
LWN's chronological comment view has been improved with the [-] feature
LWN's chronological comment view has been improved with the [-] feature
What is this?
What is this?
>
> LWN, initially, was "Linux Weekly News." That name has been deemphasized over time as we have moved beyond just the weekly coverage, and as we have looked at the free software community as a whole. We have yet to come up with a better meaning for LWN, however.
I suspect that the ability for uv to install Python is going to be a serious game-changer for usability and the general reputation of the Python ecosystem.
Installing Python
Installing Python
Installing Python
Installing Python
Installing Python
Installing Python
uv-installed Pythons
uv-installed Pythons
uv-installed Pythons
>
>> We choose libedit by default to avoid GPL licensing requirements of readline.)
>
> from from https://gregoryszorc.com/docs/python-build-standalone/mai... makes me raise an eyebrow.
uv-installed Pythons
uv-installed Pythons
Wol
uv-installed Pythons
uv-installed Pythons
Wol
uv-installed Pythons
Extremely fast?
Extremely fast?
Extremely fast?
Extremely fast?
Extremely fast?
Right now migration is blocked by barrage of HTTP 416 errors when used with our internal pypi mirror.
Extremely fast?
Extremely fast?
Extremely fast?
Extremely fast?
Wol
Extremely fast?
Extremely fast?
Extremely fast?
Wol
More ways
* A new tool to use alongside those, or
* Just more choice, or
* All of the above, or
* None of the above?
More ways
Why is it called uv?
Why is it called uv?
>
> uv was given to us on PyPI, is Astral-themed (i.e. ultraviolet or universal), and is short and easy to type.
Why is it called uv?
Why is it called uv?
Why is it called uv?
Why is it called uv?
Wol
Why is it called uv?
pixi
pixi
pixi