Hi Olivier, Am Sonntag, dem 06.03.2022 um 11:19 -0500 schrieb Olivier Dion via Development of GNU Guix and the GNU System distribution.: > Hi Guix, > > I often find my self using inheritance of package to add native-inputs > that are not stricly necessary for building the project, but are used > for developement purpose like so: > ------------------------------------------------- > (define base-native-inputs (list ...)) > > (define my-package > (package > ... > (native-inputs base-native-inputs) > ...)) > > ;; Developers version > (package > (inherit my-package) > (native-inputs > (append base-native-inputs > (list gdb lcov)))) > ------------------------------------------------- > > I guess this is the correct way of doing it or perhaps I should put gdb > and lcov in the base-native-inputs?. But I was thinking that perhaps > something like `(developer-inputs (list gdb lcov))` would be better, > since these inputs are not stricly necessary for building the > package. Note, that manifests exist and you should use them. An example (from [1]):
--8<---------------cut here---------------start------------->8--- (use-modules [...]) (define %here (dirname (current-filename))) (packages->manifest (cons* emacs emacs-geiser guile-hall (filter-map (match-lambda ((_ (? package? package) output) (list package output)) ((_ (? package? package)) package) (else #f)) (package-development-inputs (load (string-append %here "/guix.scm")))))) --8<---------------cut here---------------end--------------->8--- This adds emacs, emacs-geiser and guile-hall to the package- development-inputs of the package described in "./guix.scm" and constructs an environment with all of them. Cheers [1] https://gitlab.com/spritely/guile-goblins/