Why it took 4 years to get a lock files specification

snarky.ca

118 points by birdculture 14 hours ago


klustregrif - 12 hours ago

Overall it feels like UV is the best thing to happen to python packaging in two decades, by circumventing the endless non productive discussions on peps and instead just building something that works and is fast. In Rust naturally.

JimDabell - 11 hours ago

Unfortunately:

> Some of uv's functionality cannot be expressed in the pylock.toml format; as such, uv will continue to use the uv.lock format within the project interface.

> However, uv supports pylock.toml as an export target and in the uv pip CLI.

https://docs.astral.sh/uv/concepts/projects/layout/#the-lock...

pjmlp - 12 hours ago

No worries, it is taking longer to be able to rely on C++ modules for portable code, having Valhala available on JVM, Android supporting anything beyond Java 17, or a JIT in CPython, some things take their time to finally become widespread, for various kinds of reasons.

miiiiiike - 10 hours ago

I've exited countless Python/Django threads discussing future plans.

Year -1: The community has a problem.

Year 0: Proposal to fix the problem.

Year 1: A small but vocal subset of the Python/Django community pops up in every thread: "It's not actually a problem." or "It's not an issue that my project would ever encounter so limited resources shouldn't be expended on it."

Year 2: People are choosing other solutions because Python/Django isn't addressing the problem.

Year 3: We'll form a committee. The committee doesn't think it's a problem.

Year 4: The community has a problem. Fine. Why doesn't the community write a Python Enhancement Proposal/Django Enhancement Proposal (PEP/DEP)?

Years 5-10: PEP/DEP ignored.

Year 11: The community has a problem. PEP/DEP implemented and released.

Year 12-22: Major packages refuse to support the change.

Year 23: Last version not supporting the change deprecated.

Year 23+1 day: Fork of last deprecated version Python not supporting change created and released.

I have 15 years of code in Python still running but spend a little more than 50% of my time in other stacks. I don't notice as many people arguing against basic features, like a REST API package in Django, in non-Python/Django communities. The precursor to a Django REST API package, content negotiation, has been a draft DEP since early 2014 (https://github.com/django/deps/blob/main/draft/content-negot...). That's going on 12 years of stalled progress for a feature that needed to be released in 2010.

With Python/Django you learn not to wait because nothing is going to change.

And yes, Python/Django are open source. And yes agin, I donate over $1,000/year to support F/OSS projects that I depend on.

truelson - 10 hours ago

So… what is a good example of a consensus driven culture on something popular with a lot of opinions, some legacy use cases, that can get these things done quickly?

This is a systems problem. Successful examples wanted.

riedel - 3 hours ago

Interesting to see the seemingly canonical meaning of lockfile (semaphore vs package version lock) change over the years. I at least was curious, how one could specify a format for typical empty files.

flowerthoughts - 12 hours ago

> A lock file is meant to record all the dependencies your code needs to work along with how to install those dependencies.

It's about dependency locking in Python packaging.

charcircuit - 12 hours ago

The post didn't answer why it took over 4 years.

Why couldn't everyone be flied to the same place and have it all figured out in a week instead of having the process drag on for years?

blindriver - 9 hours ago

This is why having a benevolent dictator sometimes results in better progress than committees. It’s a double edged sword obviously if the dictator has limited skill but having someone like a Steve Jobs or Linus clears the way for progress when things like “consensus” causes decisions to take years or die from inertia. I’ve seen this first hand at FAANGs where bureaucracy kills great ideas because bureaucrats in key areas don’t want to lift a finger to make changes.

The big counter example is c++ which I feel is too productive and should slow down their decisions by a factor of 3.

eduction - 9 hours ago

Why did we have to call them “lock files?” There is an existing thing known as a lock file for actual file locking.

Call them literally anything else. Freeze file, version spec, dependency pin…

There really are only two hard problems in computer science, as the saying goes. Cache invalidation and epithet manufacturing (cough).

- 11 hours ago
[deleted]
huflungdung - 11 hours ago

[dead]

1aH27JHq - 9 hours ago

[flagged]

eqvinox - 11 hours ago

I was hoping part of this delay was due to people arguing lock files are poor engineering to begin with, but alas, no mention of that. I guess we've just given up on any kind of package version flexibility.