On 20-07-2022 10:33, Hartmut Goebel wrote: > Hi, > > shall native-inputs be as complete as possible or as minimal as possible? > > Background: I just stepped over a couple of packages where upstream > requires a lot of code-quality checkers which are not actually run > when running the tests. (More specific: These are Python packages > demanding tools like flake8, flake8-docstring, black, bandit.) > Now when going for minimal dependencies and minimal native-inputs, > > Pro: Less dependencies, simpler dependency tree, thus less > computation, faster, less power consumption. > > Con: Might need phase to remove dependencies, 'guix shell -D' will not > provide every development requirement. > > Personally I tend to minimal. > > WDYT? I would go for only the dependencies actually used in the build process (including the test process), for less dependencies (we don't include, say, 'git' for every package that has a Git repo, only if the package actually uses Git in some fashion). For the "guix shell -D" for developing on the software, a "guix.scm" or "manifest.scm" can be written and included in the source code repo that contains the extra dependencies, though I have no idea what percentage of upstreams would actually include those. Alternatively, packages could have an additional set of inputs (development-inputs?) for this use case, only added for "guix shell -D" and "guix environment", though then the build environment and "guix shell -D the-package" would diverge further. Greetings, Maxime.