Subject: [bug#56840] [PATCH] FeatherPad package

From: Maxime Devos <[email-masked]>
Date: Sat, 30 Jul 2022 15:00:26 +0200

On 30-07-2022 14:31, Pavel Shlyak wrote:
> Hello!
>
> Here is my patch to add FeatherPad package to guix. I upstream it from PantherX channel, hence 3 copyright lines.
> I build it against Qt5 as Qt6 support in FeatherPad is experimental and is not recommended for daily usage yet.
>
> Thank you in advance for your feedback.
> Have a nice day!
>
> +    (synopsis "Lightweight Qt5 plain-text editor for Linux")
> +    (description "FeatherPad is a lightweight Qt5 plain-text editor 
> for Linux")

If it's only for Linux, that needs to be mentioned in the 
'supported-systems'; there is no need to duplicate this information in 
the description and synopsis. Also, according to the README, this is 
incorrect -- e.g., it mentions 'Haiku OS' support; maybe it supports the 
Hurd too. There is also no need to mention implementation details such 
as Qt5 -- if the user is interested in that, they can do "guix show 
featherpad" to see the list of dependencies.

Additionally, descriptions are not the same thing as descriptions, yet 
you are writing essentially the same thing in both, try mentioning what 
FeatherPad can do and its limitations (especially if they are 
limitations compared to other text editors or features not implemented 
by them, to help the user deciding between them). Marketing talk like 
"lightweight" (*) is to be avoided, see (guix)Synopses and Descriptions.

(*) It's super subjective. Is "lightweight" considering memory usage, 
disk usage, CPU usage, ...? I've tested this statement (with disk usage) 
for "nano" and the inputs of FeatherPad, and I find that nano takes 86.7 
MiB in total and FeatherPad's dependencies take 1156.5 MiB in total -- 
13.3 times larger! So in a certain sense, it's not lightweight at all, 
but heavyweight. If you really want to mention it's lightweight, then be 
precise in your exact claim.

 > +    (native-inputs (list pkg-config hunspell qtsvg qtx11extras 
qtbase-5))

Only pkg-config looks like a native-input to me. See (guix)package 
Reference for the difference.

> +    (arguments `(#:tests? #f))

Tests exist for a reason, don't simply disable them -- if there is a 
reason, write down the reason, in a comment. Also, there appears to be 
some preference for (list #:tests? #false) -- ` / , is a complicated 
construct, and if used, you can get things like ,#~.

> +    (license license:gpl3)))

Looking at a random source file (featherpad/fpwin.cpp), this appears to 
be incorrect -- GPL-3.0 and GPL-3.0+ are different.

> https://github.com/tsujan/FeatherPad/blob/master/cmake/Modules/FindHUNSPELL.cmake 
>

Greetings,
Maxime.