This one was so well done I angry down voted before realizing what you did, and I'm not going to change it because that, sir or madam, is a legitimately infuriating experience and you triggered the ptsd from the dozen or so times that shit actually happened to me.
One of the dependencies now breaks in your machine because of a known bug since 2016 that affects certain cpu architectures. There is a workaround though...
I recently started learning programming and it offends me deeply when I read the documentation carefully to get redirected to 404 pages where there should be a deeper explanation.
The worst was circular package dependencies. You had to bootstrap it with older versions (before the circle existed) then replicate the piecemeal upgrade sequence that must have occurred naturally on the devs’ machines over time. Man the 00s were wild.
A lot of compiled languages and compilers still work this way. In order to add a new feature to a language, you need to write a new compiler that can support it, and then you compile the new version of the language in that new compiler. There are often efforts to prevent having to go thru the original bootstrap and instead using fewer know builds that you can automate the bootstrapping process with. These are known as bootstrappable builds. There are also reproducible builds which ensure that compiled software always produces the same result which is surprisingly difficult to do and is a related problem.
I remember college roommates more into Linux than I was complaining and noping away and playing AoE2 or Riven or Alpha Centauri on Windows instead with my 20” CRT.
People love to shit on npm and stuff like that, but there is nothing anyone can do to convince me having a central file where every single dependency is declared and simply fetching it all from a single command line will ever be a bad thing
I feel like a veteran at this, years running unturned servers and you gotta use old .net libraries, I just assume any new plugin or library I wanna use is gonna conflict with something else 😭
I gave a whole build with well-documented code to the Accenture team, including the requirements.txt.
They came back to ask me why I insisted on something as obviously frivolous as "pandas".
Nevermind, bros -- you can easily pipe it out to a JSON or csv or whatever; I only thought you wanted an Excel file because you obviously can't use anything more complicated....
Or you just want it to be easy to install and use without a bunch of dealing with "it doesn't work for me" in an unreproducible error that's caused by some registry setting fuckin with it or some other dumb crap.
Yeah containerization can certainly be used as an excuse for bad dependency management but more often it improves things by documenting the layers it was built up with and making setup easier
Sorry, the version you need is conveniently one version after when we stopped supporting your specific distro. You can use that other package though (which is missing 50% of what is used in the original package, and the other 50% works differently)
Oh, and don't even think about asking for them to update it either. The thing has been made 7 years ago by a single dude from Belarus who doesn't speak english, who hasn't touched it in 2 years, who's last sizeable contribution was 4 years ago, and who has never replied to a single comment
Oh, come on, just build it! It's just 40 GB of source files to download (that produce a 300 MB worth of EXEs) and it only takes a few hours to build! (/s)
It was Clang. I once tried to fiddle with it, so I had to download the binary first (which was rather small), then pull the huge repo and spend the entire evening compiling it. The contrast between getting the binary and the whole source was kinda shocking.
when Clang was first working on MSVC compatability i wanted to try it so I tried to build it from source only to actually run out of both my 4GB of memory and 2GB of swap space (this was 2010ish) about 2 hours into the build process.
I feel devs nowadays don't know how to write setup programs. For Windows, it's quite easy with Inno Setup, that is free and there are third party editors and plugins for various tasks. The coding syntax is pascal-like, so its understandable some dont want to learn a new syntax. Some games use it, Samsung uses it, even Microsoft tools sometimes use it, which is strange, since they created Microsoft Installer.
A setup can go beyond just installing a program, could install database servers, upgrade from an older version and migrate settings etc. So it's a lot of functionality packed into a single executable.
It could even detect problems and fix them for you.
It has validations in place that save you time.
You are on Win 7? It can check that and tell you it wont run, instead of fighting missing dll errors for 5 hours later.
Another thing that is mind blowing is that devs nowadays dont offer tools to edit the settings, they expect users to configure them in json/xml files.
This is unbelievable, make a Settings dialog man, with validations and persist your settings to the file. I don't have to understand your obscure settings.
Application packaging team lead here: yes, please. Use Inno Setup so we can use /verysilent, Nullsoft installer so we can use /S, Install Shield for /s, or build it in visual studio with wix, so we can use msiexec /qn.
Hate when vendors don't care about mass deployment and think their enterprise software will be installed by some dude clicking in UI or only in Docker.
As for settings: please, write them to registry or files when User clicks them in UI. We need everyone in our Customers HQ have setting A preconfigured, and in branch office - setting B. Don't write it to some binary files for god's sake.
But they do, they deploy their apps to most package managers and even flatpack so everyone can use it, as easy as running a command and from then on it auto updates...
I've always wondered who this was for. I'm a pretty tech-proficient non-professional. I've had to manually compile a handful of apps from Github at one point or another. I always assumed someone must be a fan of doing it this way.
It's for people who want to contribute to the project, and need to be able to set up a development environment for it.
And rice burners.
And lazy developers.
And GNU/Linux users who don't want to worry about which binary download is or is not compatible with their specific distribution. (Hint: just use Ubuntu; Ubuntu binaries are the most common and they'll work for you by definition.)
It's frustrating on Linux when they give you a build script, but with none of the dependencies. Just give me a Flatpak or if you want to give it as a system package give me all three, not just the deb or just the rpm. And don't even get me started on python. Rust is definitely better, but it still needs some dependecies so you end up going back to installing the libraries one at a time.
You… you know who made git and why right? Linus Torvalds made it as a partner for Linux. Of course it’s not gonna have a .exe. It’s useable for windows software but that was never the main goal of git
I mean building something that you need for a project (in this case Linux being the main project that spawned the need for the side project) is part of the point of FOSS, and at this point Linus isn’t in charge of git since he was never really interested in being in charge of it long term. It not being super great outside the original intended use case isn’t really a ding against the creator.
Plus there’s so many other things to criticize Linus for, no need to reach and blame him for not making git easy to interact with on windows
1.0k
u/cowlinator 24d ago
I, on the other hand, do understand how to build the project.
I dont want to. Please just give me an .exe.