Node.js devs, imagine npm doesn’t exist. Instead, if you’re nice, you make a list of your dependencies in your README and everyone installs them manually. (Seriously.) Also, you can list names any way you like. So, if a library is called libclutter-1.0-dev, list it as clutter, libclutter, clutter-1.0, … and people will magically know you meant libclutter-1.0-dev (or, more likely, they’ll do an, e.g., apt search clutter to try and find out wtf you meant). Welcome to C/Vala development in 2021.

🤷‍♂️

(Oh, and every library you install is essentially a global install that is shared with every project you’re trying to build. So basically everything is ~ an npm install --global.)

This is really something an operating system like elementary OS has to tackle for its apps at least if it wants to attract developers (even if, say, the GNOME, etc., folks are happy with the status quo and/or enjoy the right of passage it represents for keeping out the hoi polloi).

(Ironically, I just had to manually install two dependencies to compile a work-in-progress(?) Vala dependency manager app.) :)

@aral Which one was this, if I may ask? I’m guessing Vanat. Do share your thoughts on it.

I agree that a simpler dependency management solution would really help Vala. Flatpak kinda solves this for whatever can be Flatpak’d at all. But if something needs to e.g. install a system service or access the list of processes, Flatpak is not applicable.

Having something as simple as npm is a huge undertaking, because it requires either centralizing all packages into a repo or supporting pointing to git URLs and building those — which raises the question of how to build those, since they all use different build systems.

There are a lot of moving parts, and not a lot of coordinated effort going on in this direction.

I don’t have a point here. Just sharing some thoughts.

CC @colinkiama @nahuelwexd

Follow

@dubiousdisc @aral @colinkiama Something like this is what I was talking about with Prince a while ago on Vala's Discord server. While it is true that within the community there are very few resources, we need an NPM-style package manager for Vala

Maybe it doesn't even need to be centralized, maybe just taking the URLs from the GitHub repositories might be enough, like Go does, but we need to do it.

Otherwise, more painful experiences will be shared by devs who try to use Vala

@nahuelwexd @aral @colinkiama@mastodon.social @dubiousdisc We need a proof of concept ASAP!

I’m all for improving the developer experience but maybe there’s something we’re missing here. Why do some Vala developers feel hostile about package managers?

@nahuelwexd @dubiousdisc @colinkiama Good to hear there’s thought and discussion around this. Any thoughts on jhbuild?

Would be great not to create yet another standard that relies on Microsoft (perhaps git URLs instead of GitHub URLs?) At this point I’d probably settle for a simple standard that just apt installs the dependencies even. (Although, ideally, a more robust solution would keep a separate dev environment to your system environment.)

🤔

@aral I would prefer that you could join the server and be able to chat in a more fluid way, although you may not like the idea as Discord is proprietary software

We have been discussing more in depth today together with @dubiousdisc and @colinkiama and have come to some pretty good conclusions IMO

Maybe later with more discussions we can get something solid (like a spec) and see to start working on it. Ideally it would be nice to reuse Vanat's work, so @colinkiama left some issues there

@aral Obviously all this is done in each one's free time, so... It will take a while. For this reason, the more people helping, the better :)

@nahuelwexd @dubiousdisc @colinkiama Cool, will do. I’ve learned to hold my nose and use Discord when necessary :P

Sign in to participate in the conversation
FLOSS.social

For people who care about, support, or build Free, Libre, and Open Source Software (FLOSS).