this post was submitted on 11 Jan 2024
1809 points (98.4% liked)
Open Source
31263 readers
98 users here now
All about open source! Feel free to ask questions, and share news, and interesting stuff!
Useful Links
- Open Source Initiative
- Free Software Foundation
- Electronic Frontier Foundation
- Software Freedom Conservancy
- It's FOSS
- Android FOSS Apps Megathread
Rules
- Posts must be relevant to the open source ideology
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon from opensource.org, but we are not affiliated with them.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Don’t be that second guy, use Nix.
I agree with OP, but the whole confrontation could’ve been avoided in the first place if all dependencies were spelled out to the letter in the form of a flake.nix with the latest accompanying flake.lock file.
I swear Nix users are the mormons of the Linux world.
They're worse than us Arch users (btw)
As a former arch user, I advocate for both XD
@AlmightySnoo @Ashiette us for USA or for us? :stallman:
Yes
I’m a nix user and I’m disappointed by how apt this comparison is.
ehehehe you said "apt"
Did you get it?
I SEE WHAT YOU DID THERE KIND SIR I DID GET YOUR SUBTLE REFERENCE
Yes, but one of our promises is real... Just a real pain in the ass sometimes.
Are you saying that I will get my own planet if I use Nix?
Guilty. But substitute Mormonism with the proper way to do things.
That just sounds like Amish with more tech.
🤣 Perfect!
It’s a frontend JavaScript UI library. I can’t control what other dependencies people install alongside my library, or even whether they follow my library’s dependency list.
Isn't package.json for controlling what dependency versions people install with?
I think I'm missing something.
Yes, and I have a package.json that lists dependencies and the versions I test with. You can force a different version though. I don’t think that’s what happened here. I’m guessing it’s a version of some dependency that should work, because it was released as a minor version within the range I specified, but doesn’t actually work.
It could also be an issue with the build system/bundler, which I can’t really control either.
Yeah JavaScript is a horrible language and ecosystem in a lot of ways, but package.json and friends don't really give me much trouble.
And even if you hose something, you should be able to clear it out and reinstall easily.
I'm assuming the maintainer didn't (knowingly) make a breaking change in a minor/patch release. That's a high crime.
It's way worse on C and it's family. I still have nightmares with undocumented embedded dependencies that are so intertwined with the codebase that make JS look like a godsend.
Are you sure about that?
Upvoted in Nix solidarity. One day they'll understand.
I think it’s funny. We are the new “I use Arch, BTW” and I’m happy to embrace it.
I just hate having to re-configure all my stuff whenever I set up a new box 🤷
Agreed. That and I hate Docker with a burning passion.
As someone who is out of the loop a lot, what is it about Docker that you hate? What do you use instead?
It took me weeks to wrap my head around it, but now I enjoy being able to spin something up without too much work. At work we have the whole CICD thing with Docker and K8, but I am pretty far removed from what they have to do in the run files.
What other kinds of workflows do people use these days?
Nix flakes are all I need to completely replace Docker.
Don't be the guy who ignores reports that your software doesn't work with new dependency versions just because you can't be arsed to test with anything else even if the report looks like a legitimate problem.
If you're not paying somebody, don't expect anything. You want shit done on your time, then cough up some compensation.
I have been testing with the original reporter of the problem. This guy came in, said he had the same problem, then cursed at me.
That was less directed at you and more at the idea that just pinning versions solves the issue which is unfortunately very frequent among proponents of things like vendoring, nix, Docker containers and similar tools that allow a project to stay on an old version for potentially years. Sorry if that came across that way.