Nice new project on the horizon: buildxyz

More like a how-to than a guide but I recently discovered this awesome project:

Following are the steps in case someone else doesn’t know how to start with it:

git clone https://github.com/SoptikHa2/desed
cd desed
nix run github:RaitoBezarius/buildxyz -- "cargo build"
target/debug/desed --help
4 Likes

Hahaha, author here. Thank you very much :slight_smile: for the shoutout!

It is still very much WIP but I am planning to get it to production-ready state and use it in some research stuff.

Let me know if you have any feedback or ideas!

3 Likes

More findings, correct me please, if wrong.

As far as I understood it you give buildxyz the command it wants to run to build any software in the end.

The command can be a build tool (see cargo in example above) or some build helper, i. e. node2nix in case of a node library or app.

buildxyz will ask you if missing tools should be injected, which you probably want to answer saying y as otherwise buildxyz will panic not finding the tool.

When ready buildxyz signals you that it succeeded meaning you may continue i. e. using nix-build or even running nix run github:RaitoBezarius/buildxyz -- "legacy build tool" latter which in case you ran the build helper (node2nix) prior.

Then continue running / using your built software or using the generated derivations for PRs.

What strategy do you use to match FUSE discoveries to identified dependencies? Is it a heuristic or can it even be exact?

I think this project lends itself to collect the discovery data into a central data store and make that store available for future semi-automatic nixpkgs packaging. (For the added value like caching / build farm to the user and for the contribution to a runaway scaling effect for Nixpkgs)

> Would you like to help make Nixpkgs better and submit your build data? (Y/n)

You just need to make it really really popular to generate the necessary data set and lay the foundations for being able to collaborate on that generated data set (more efficiently) rather than on the raw packaging task.

Awesome idea! I think this has tremendous potential!