Subject: Re: [bug#42682] [PATCH 2/2] gnu: Add qmk-cli.

From: Jan Wielkiewicz <[email-masked]>
Date: Mon, 3 Aug 2020 14:43:49 +0200

Dnia 2020-08-03, o godz. 10:26:03
Mathieu Othacehe <[email-masked]> napisał(a):

> 
> > +    (propagated-inputs
> > +     `(("arm-none-eabi-gcc" ,gcc-arm-none-eabi-7-2018-q2-update)
> > +       ("avr-gcc" ,avr-toolchain-5)
> > +       ("avrdude" ,avrdude)
> > +       ("dfu-programmer" ,dfu-programmer)
> > +       ("dfu-util" ,dfu-util)
> > +       ("git" ,git)
> > +       ("python3" ,python)
> > +       ("python-appdirs" ,python-appdirs)
> > +       ("python-argcomplete" ,python-argcomplete)
> > +       ("python-colorama" ,python-colorama)
> > +       ("python-flake8" ,python-flake8)
> > +       ("python-hjson" ,python-hjson)
> > +       ("python-nose2" ,python-nose2)
> > +       ("python-yapf" ,python-yapf)))
> 
> Do we really need to propagate all those inputs?
The python dependencies were added to propagated inputs automatically
by "guix import". The other tools are needed in the user profine,
because qmk-cli uses them, for example it fetches qmk firmware from
git, it runs some *python stuff* and when user is done making changes
to their firmware, qmk cli builds the firmware using the compiler and
flashes it using dfu.

I think it would be cool if Guix allowed defining profiles and
environments the same way it allows defining packages.
This way installing qmk-cli would also install say qmk-profile with all
headers (and tools) needed for development. Now, even though
arv-toolchain is installed, I have to run "guix environment qmk-cli" to
be able to work with the firmware without getting build errors.

> Can't we hardcode the
> path to those tools directly in the sources, if they are not
> registered at build time?
I need them installed, so qmk-cli doesn't complain. Should the user be
responsible for installing all the tools needed for development?

> > +    (arguments
> > +     `(#:phases (modify-phases %standard-phases
> > +                  (add-before 'check 'set-qmk-home
> > +                    (lambda _
> > +                      ;; tests fail without this variable set
> > +                      (setenv "QMK_HOME"
> > +                              "")
> 
> Who is supposed to set it otherwise?
I'm not sure. That's the first thing qmk-cli sets when it is already
installed. Normally, qmk-cli is installed by pip, maybe it is
responsible for setting the variables?

> > +     "A program to help users work with QMK Firmware.")
> 
> You also need to elaborate here :)
Should I describe what qmk firmware is or say more about what working
with qmk firmware is, or both?

> Thanks,
> Mathieu