[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PROPOSAL] Builder, a build system integration for Emacs

From: Gregory Heytings
Subject: Re: [PROPOSAL] Builder, a build system integration for Emacs
Date: Thu, 25 May 2023 09:33:14 +0000

FWIW, I don't trust tools that "do all that for me". When building a package that needs some prerequisite, I want to:

. understand the reasons for the dependencies, and consider whether I really need whatever features need each one of them (if they are optional);

A Rust program can declare optional dependencies, which you can enable with a command line flag to Cargo. Typically these optional dependencies will be documented in the program README.

. examine the license of each dependency, and see whether it is kosher;

See my previous post: you can easily examine the licences of the optional (and non-optional) dependencies with "cargo tree -f '{p}: {l}'".

. skim the documentation of each dependency and see whether what it does is something I'd like to allow on my system;

That's also easy to do: "cargo doc --package <name> --open" builds the documentation of the given package, and opens it in your browser. Another option is "cargo tree -f '{p}: {r}'" which will print the URL of the repository of each dependency, or "cargo tree --package <name> -f '{p}: {r}'" if you only want the dependencies of a specific package.

. search the Internet for any problems with each dependency on platforms about which I care, and decide which version of the dependency I want to download and install, and perhaps also what patches I should apply to fix those problems proactively

Cargo, like distro package managers, manages versions for you. But you can force a distro package manager to download a specific version of a package, and likewise you can force Cargo to fetch and build a specific version of a library if you want. You are also free to modify the version requirement indicated by the library author in the Cargo.toml file (at your own risk, of course, as this might break the build).

I'm not aware of any "do-everything-for-me" build tool which will allow me to do all of the above.

Now you are ;-)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]