Subject: Re: Telegram-CLI (v7/v8)

From: Leo Prikler <[email-masked]>
Date: Tue, 02 Feb 2021 10:50:53 +0100

Hi Raghav,

Am Montag, den 01.02.2021, 21:33 -0500 schrieb Raghav Gururajan:
> Hi Leo!
> 
> > I didn't notice this before, but is there a reason to package this
> > version over 1.3.1?
> 
> Yeah, there are quite a lot of improvements after the 1.3.1 release.
Anything particularly worth noting?

> > Please stop trying to use this as a snippet to mean "the root of
> > the
> > source and build directory".  It is extremely obscure and people
> > are
> > already using "../source" just fine.  (Just do an rgrep if you
> > aren't
> > convinced.)
> 
> Fixed in v8.
"Fixed".  While it is true, that you're no longer using getenv, binding
source for string-append later on is not a particularly elegant
solution either.

> > > Hmm. I tried but couldn't come up with a way to do it like that.
> > > :(
> > You can still try harder for v8 ;)
> 
> I tried different ways but the arguments key-words between gnu and
> copy 
> differ a lot. I am unable use key-words from both build systems at
> the 
> same time. Like using #:configure-flags (from gnu) and #:install
> (from 
> copy).
Use something along the lines of
  (replace 'install 
    (lambda args
      (apply (assoc-ref copy:%standard-phases 'install)
             #:install-plan <your install plan>
             args)))
Phases should be written in a way, that gratuitous arguments will not
be read, but passing it in arguments through the package-arguments
fields remains tricky.  Though even if it were possible, the snippet
above has better locality.

> Also, I spent significant amount time to come up the phase I have. So
> if 
> there are no critical issues, I would like to keep it as-is. :-)
I personally regard readability as a severe issue in this case.  Of
course there would be ways of doing this without invoking copy-build-
system, but in my personal opinion an install plan would likely be the
most concise here.

For instance instead of using string-append source everywhere, you
could just use a directory excursion.  But more importantly, why is it,
that all of the stuff you're installing is located in the source
directory?  Do you even build anything that ends up in the
installation?  Would it make more sense to have #:out-of-source? #f?

In tgl, you use several directory excursions when arguably only one
would be needed.  Try to simplify your install process, so that you
need to bind as few variables as possible.

Regards,
Leo