Post ABHFOgeygYVFlc4wAC by codeforchaos@cybre.space
(DIR) More posts by codeforchaos@cybre.space
(DIR) Post #ABHEIHns5Ygmz4cejA by aral@mastodon.ar.al
2021-09-11T11:30:18Z
0 likes, 0 repeats
OK, so in modern, sensible development platforms you have a means to specify dependencies and install them.From what I’ve seen, the world of Linux/C/Vala development currently doesn’t have such a thing. Folks list their dependencies in readme files and you’re supposed to install them one by one, e.g., using apt. (Please someone correct me if I’m wrong, as I’d LOVE to be wrong on this.)So, question, before I shave yet another yak: do any dependency management systems exist for this?
(DIR) Post #ABHEIILC5fLOeQDGfQ by nono@pleroma.oook.fr
2021-09-11T11:54:24.238661Z
0 likes, 0 repeats
@aral Isn't what you call "a means to specify dependencies and install them" a package manager? There are quite a few to choose from, I'd say. ;-)There are some which kinda sorta aim to be more or less universal, I'm thinking of pkgsrc, but specifying dependencies still basically means packaging your code.
(DIR) Post #ABHEIIudxrhUQMnZvE by aral@mastodon.ar.al
2021-09-11T11:56:45Z
0 likes, 0 repeats
@nono No, it’s an “npm install” equivalent for a project written in, say, Vala.So, I want to:1. Install dependencies for the project with a single command.2. Build and run the project.Also known as a modern workflow ;)
(DIR) Post #ABHEIJSJwedg6oYTPk by meeper@outerheaven.club
2021-09-12T06:26:04.944634Z
0 likes, 0 repeats
@aral @nono I don't know what to think about 'modern workflows' frankly I don't like most of them much, due to a few subtleties
(DIR) Post #ABHEXtB1PwmXEttIZ6 by bigblen@mastodon.nzoss.nz
2021-09-11T23:02:27Z
0 likes, 0 repeats
@aral to be fair apt doesn't require that you install things "one by one"you can install all in one invocation or even from a list in a fileapt-get install $(cat apt_package_list.txt) would work.But I guess you want a single thing that works on all distributions?
(DIR) Post #ABHEXtoj2KXbE2T0S0 by aral@mastodon.ar.al
2021-09-12T06:22:42Z
0 likes, 0 repeats
@bigblen This is true. Hmm, would an apt-based workflow/standard for dependency management for elementary OS apps be the simplest thing that could possibly work, I wonder?🤔 CC @cassidyjames @danrabbit
(DIR) Post #ABHEXuQelIsl7gDIZc by meeper@outerheaven.club
2021-09-12T06:28:55.818826Z
0 likes, 0 repeats
@aral @bigblen @cassidyjames Apt is rather subpar as a package manager so I'd rather have something else frankly, for many purposes I'm thinking of a workflow that makes static linking usable because it would curb the need of frankly bad ideas like flatpak and allow smaller binaries than appimages (which distribute the whole dynamic library)
(DIR) Post #ABHFOgeygYVFlc4wAC by codeforchaos@cybre.space
2021-09-11T11:58:16Z
0 likes, 0 repeats
@aral some folks sat down and asked "why can't we have the same centralised and failible dependency system as the cool web kids do" and out sprat https://conan.io/
(DIR) Post #ABHFOhJOGIpTmwzD9c by aral@mastodon.ar.al
2021-09-12T06:36:47Z
1 likes, 0 repeats
@codeforchaos Ah looks like it’s tied to the products of a single company (jfrog)
(DIR) Post #ABHFOianV4LblE8cvQ by codeforchaos@cybre.space
2021-09-11T12:01:25Z
0 likes, 0 repeats
@aral actually they say it's decentralised so I may be slightly wrong, i've never used it :blobteefs:
(DIR) Post #ABHKnifCs92qzXwQOe by wzqtparor@mstdn.io
2021-09-12T07:39:01Z
1 likes, 0 repeats
Various platforms has different methods to install software.List dependencies in a README is the most sensible way to support multiple platforms.End users usually don't need the list anyway. They can just install the pre-built binary package.@aral
(DIR) Post #ABHLULyP6tpF4SFZlA by aral@mastodon.ar.al
2021-09-12T07:46:42Z
0 likes, 0 repeats
@wzqtparor Right, I should have been clearer. While that might make sense when targeting multiple platforms, it doesn’t for elementary OS apps where you are only targeting elementary OS. We could have a convention where the process is roughly:1. Clone repo2. Run task/install3. Run task/buildAnd your binary is ready.Want to run it? task/runThat would reduce the barrier of entry greatly for getting started on contributing to apps.CC @cassidyjames @danrabbit
(DIR) Post #ABHM4eZlQKcXBt2BN2 by davidak@chaos.social
2021-09-12T07:52:34Z
1 likes, 0 repeats
@meeper do you know the Nix package manager?https://nixos.org/it has an infrastructure for building static binaries and also cross-compilationthe documentation is not perfect, so you might have to ask in chat or forum for detailshttps://github.com/NixOS/nixpkgs/blob/26c10279a11470331335bfa11efd1c3b00bc54c0/pkgs/top-level/static.nixhttps://nix.dev/tutorials/cross-compilationthere is also https://github.com/matthewbauer/nix-bundle#Nix #NixOS #Linux #Packaging
(DIR) Post #ABI6spj6prKA92Grg0 by guenther@chaos.social
2021-09-11T16:32:24Z
0 likes, 0 repeats
@aral Docker, Flatpak (don't blame me)
(DIR) Post #ABI6sqH8nKXvqaC2im by aral@mastodon.ar.al
2021-09-12T06:27:47Z
0 likes, 0 repeats
@guenther Hell no on the former :) The latter is what elementary OS 6+ apps are packaged with anyway. But you don’t need to generate a Flatpak package every time you want to recompile and tests the app… 🤔
(DIR) Post #ABI6sqs0aG2LgvRUBc by urusan@fosstodon.org
2021-09-12T16:37:44Z
0 likes, 0 repeats
@aral @guenther If you hate Docker, you'll despise Flatpak.
(DIR) Post #ABI7GBqyjZzlQl5ayW by urusan@fosstodon.org
2021-09-12T16:42:00Z
0 likes, 0 repeats
@aral I think that when you say "modern, sensible development platform", what you really mean is "dependencies are managed on a per project basis rather than an environmental basis".