I'm doing a lot of packaging for Python packages right now. A lot of the code looks like this:
> (define-public python-execnet > (package > (name "python-execnet") > (version "1.4.1") > (source (origin > (method url-fetch) > (uri (pypi-uri "execnet" version)) > (sha256 > (base32 > "1rpk1vyclhg911p3hql0m0nrpq7q7mysxnaaw6vs29cpa6kx8vgn")))) > (build-system python-build-system) > (native-inputs > `(("python-setuptools-scm" ,python-setuptools-scm))) > (propagated-inputs > `(("python-apipkg" ,python-apipkg))) > (synopsis "Rapid multi-Python deployment") > (description "Execnet provides a share-nothing model with > channel-send/receive communication for distributing execution across many > Python interpreters across version, platform and network barriers. It has a > minimal and fast API targetting the following uses: > @enumerate > @item distribute tasks to (many) local or remote CPUs > @item write and deploy hybrid multi-process applications > @item write scripts to administer multiple environments > @end enumerate") > (home-page "http://codespeak.net/execnet/") > (license license:expat) > (properties `((python2-variant . ,(delay python2-execnet)))))) > > (define-public python2-execnet > (package > (inherit (package-with-python2 > (strip-python2-variant python-execnet))) > (inputs > `(("python2-setuptools" ,python2-setuptools))))) As you can see, there is no inputs on python-execnet, so it's not necessary to include the inputs. However, if (inputs) were added in the future, this could lead to a developer mistakenly forgetting to change the python2 variant. What's the better approach? - Chris