No documentation for the state of patches for dependencies of Julia

I don’t really care for the attitude here, but I’ll take a crack at addressing some of your points anyway. A significant number of Julia maintainers are committers on both LLVM and libuv and we constantly upstream patches to those projects and elsewhere. However, upstreaming patches is a HUGE amount of work and often takes a lot of time and effort. If you’re bothered by this, how about helping out with the work of upstreaming patches and more significantly, convincing upstream projects to accept patches?

The same verison of Julia is regularly compiled with multiple different versions of LLVM for various reasons. Notably, it is common for Julia developers to start working on support for newer LLVM versions before they are released so that the project is ready for them when they are. There are also people who need to compile Julia with older versions of LLVM for various reasons. Any given Julia version will work with multiple different versions of LLVM. The patches are kept around and applied selectively so that Julia can be source compatible with different LLVM versions without too much futzing around.

  1. If upstream accepts your patches, remove the patches and the makefile of that dep from your repo, and update the docs to say this external dep is safe to use from the system’s distro.

Sure, that’s a good idea. Want to help keep all this info up to date?

  1. Don’t take the role of distro’s maintainers - keeping dependencies up to date is our job.

Our job is shipping our users working versions of Julia and its packages. Distros have, frankly, utterly failed at shipping people working versions of Julia, so we do what we have to in order to get people software that just works with minimal fuss for them. While Linux is somewhat popular in numerical computing, from our perspective, distros are pretty niche: the vast majority of users are on Windows and macOS where distros aren’t a thing. While distros may be your focus, they are not ours. Most of our users do not use or care about distros. Even the ones who do use distros have not been able to rely on their distros to get a working Julia. If that changes, maybe we’ll care more about distros.

To distros who are still shipping broken Julia, I say this: get your shit together, do what YOU need to do to ship working software, and stop telling us how to do our jobs. We are shipping non-broken software that just works to more people than you are. If Julia needs a bespoke LLVM build, ship it with a frigging bespoke LLVM build. Stop forcing broken software on your users for some stupid policy reason.

  1. Bonus: Use a real build system, like cmake / meson (I’d recommend) / autotools.

Riiiiiiight.

12 Likes