I am having one of those days where I wish FOSS can just go fuck itself.
ALL I DID WAS RUN SOME PIP UPDATES AND NOW JUPYTER NOTEBOOK DOES NOT WORK.
@dragonarchitect Your ire is misplaced; Python has (almost) the shittiest backcompat/dependency ecosystem known to man. In this case, Python is to blame, not FOSS
@elastosaur Splitting hairs about the misplacement of my ire is not going to help me fix this fucking problem that I'm having.
I don't even know what earlier version of jupyter I was using before I attempted these updates. I have no clue what I can roll back to to get this shit working again.
I hate not being able to just roll back to a known-working snapshot of the entire configuration.
I hate how fucking broken software can get after an update with no recourse unless I happened to have the foresight to expect it and know-how to avoid it and then get fucking ridiculed about not having that foresight.
Shit like this is why I'm going to use btrfs when I eventually replace Windows with Linux on my main PC, because if something randomly fucking breaks, WHICH IT WILL in Linux and if you think I'm wrong you've become too accustomed to having to Just Fix It™ when it happens, I want to be able to just roll right back to a known-working state of the system and get right back to what I was doing.
@dragonarchitect I can't offer a solution. Best I can do is advice for the future - virtual environments is how people usually manage this stuff; you create one, go into it, and install all dependencies there; will not prevent all the issues, but will let you nuke it and re-create it at least, and keep system and per-project pythons separate.. And yes, I hate that this is how it works, but Python.
@dragonarchitect Immutable distros (nixOs/Bazzite) are a possibility I believe, if you want to take that to the extreme; the promise is exactly that - stable reproducible core with changes on top; though I don't have any first-hand experience myself
@elastosaur Bazzite has been on my radar, but btrfs snapshots can work with any distro.
Though to split hairs about it: Bazzite is technically not immutable, but atomic, based on Fedora Atomic. There apparently *is* a distinction but I can't really remember offhand what that distinction is.
@elastosaur Is it possible to take snapshots of these virtual environments? Like a record of what's currently installed at what versions?
@dragonarchitect This is an option I've seen many times: https://pip.pypa.io/en/latest/user_guide/#requirements-files
can be used with pip;
More heavyweight options are these: https://en.wikipedia.org/wiki/Conda_(package_manager) https://github.com/astral-sh/uv
This is not an extensive list, just what I've encountered in the wild before
I am just Not Good at troubleshooting and unfucking software. This shit stresses me out and frustrates me to the point that I just can't do it.
I'm better at figuring out mechanical assemblies and unfucking them.
I would literally rather work on cars than try to unfuck software.
@dragonarchitect I’m convinced that having dependencies shared between multiple pieces of software like this (instead of every piece of software having its own dependencies built in) is a mistake in almost all cases. this is my biggest pain point with package managers of all kinds because this always fucking happens
@dragonarchitect @elastosaur to be honest I would caution against using an immutable distro just because the impression I get is they’re for the types of folks who love to tinker and obsess over Linuxy stuff. like once you have a setup that works I assume it will keep working forever (unless you need to update to get security updates or something), but it takes a lot of tinkering and learning to reach that point which personally I wouldn’t want to do - I want my computer to Just Work
@kasdeya @elastosaur Yeah, I remember looking into NixOS a while back, and....... I did not want to have to learn Yet Another Programming Language JUST to be able to configure the OS and install stuff on it. Noped hard away from that.
@dragonarchitect @elastosaur NixOS is so much worse than you would think. you don’t just have to learn Yet Another Programming Language - it basically turns any basic computer task into an engineering puzzle… which you have to solve in a really counter-intuitive functional programming language. which is great for folks who love tinkering with computers and want lots of excuses to do that, but terrible for folks who don’t care about tinkering and only want to use their computer to get work done or play games or etc.
like the amount of stuff you have to figure out in order to literally just play modded Minecraft is kind of terrifying to me lol
I gave one of my mates who is good at unfucking software unfettered access to my pc while I was at work today and they got jupyter notebook working again.
ONE PACKAGE was causing all of this. Traitlets got upgraded to 5.14.0 and they had to downgrade it to 5.9.0 to get things working again.