unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Adding Flycheck to NonGNU ELPA
@ 2024-02-19 14:51 Bozhidar Batsov
  2024-02-19 17:44 ` Philip Kaludercic
  0 siblings, 1 reply; 55+ messages in thread
From: Bozhidar Batsov @ 2024-02-19 14:51 UTC (permalink / raw)
  To: Emacs Devel

[-- Attachment #1: Type: text/plain, Size: 495 bytes --]

Hey everyone,

Just wanted to ask if there's any interested in adding Flycheck (https://www.flycheck.org/en/latest/), a popular alternative to Flymake, to NonGNU ELPA?

You can find the codebase here https://github.com/flycheck/flycheck
There's also some integration with Eglot https://github.com/flycheck/flycheck-eglot

I'm not sure what's the stance of adding alternatives to built-in packages in general, but I think providing some alternatives to the end users is not a bad thing overall.


[-- Attachment #2: Type: text/html, Size: 933 bytes --]

^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 14:51 Adding Flycheck to NonGNU ELPA Bozhidar Batsov
@ 2024-02-19 17:44 ` Philip Kaludercic
  2024-02-19 18:08   ` Bozhidar Batsov
  0 siblings, 1 reply; 55+ messages in thread
From: Philip Kaludercic @ 2024-02-19 17:44 UTC (permalink / raw)
  To: Bozhidar Batsov; +Cc: Emacs Devel

"Bozhidar Batsov" <bozhidar@batsov.dev> writes:

> Hey everyone,
>
> Just wanted to ask if there's any interested in adding Flycheck
> (https://www.flycheck.org/en/latest/), a popular alternative to
> Flymake, to NonGNU ELPA?
>
> You can find the codebase here https://github.com/flycheck/flycheck
> There's also some integration with Eglot https://github.com/flycheck/flycheck-eglot
>
> I'm not sure what's the stance of adding alternatives to built-in
> packages in general, but I think providing some alternatives to the
> end users is not a bad thing overall.

My main question is what advantage Flycheck has over Flymake.  I
understand it has a database of tools built-in, but considering that
more and more people rely on LSP for the information (and Eglot supports
Flymake OOTB), I don't know how valuable this is.  In addition to that,
there are projects like

https://github.com/mohkale/flymake-collection
https://github.com/purcell/flymake-flycheck

that could help bridge the gap.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 17:44 ` Philip Kaludercic
@ 2024-02-19 18:08   ` Bozhidar Batsov
  2024-02-19 18:48     ` Eli Zaretskii
                       ` (2 more replies)
  0 siblings, 3 replies; 55+ messages in thread
From: Bozhidar Batsov @ 2024-02-19 18:08 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: Emacs Devel

[-- Attachment #1: Type: text/plain, Size: 2983 bytes --]

There is a detailed comparison here https://www.flycheck.org/en/latest/user/flycheck-versus-flymake.html but many of the differences are probably not important to many people. You might remember that before Flycheck, Flymake was in a state of disarray and abandoment for years, so I'm pretty sure Flycheck making it almost obsolete back then was the trigger for some modernization around Emacs 26.1. And the contributors to Flycheck and Flymake were always pretty different - part of the reason Sebastien (the original author of Flycheck) quit Emacs were some attacks he was getting on emacs-devel. 

Many people are so off-put by the discourse there, that they want to have as little as possible with it. And that's the real value of alternative packages IMO - they allow us to harvest the energy of all contributors. 

Btw, flymake-flycheck was created only because Joao wouldn't agree to provide Flycheck support in Eglot (I know this from the author of flymake-flycheck). The whole situation with Elgot was a classic example of the hostility in Emacs towards packages some maintainers dislike... (https://github.com/joaotavora/eglot/issues/42)

> but considering that
> more and more people rely on LSP for the information (and Eglot supports
> Flymake OOTB), I don't know how valuable this is.

Btw, Eglot is not the only LSP client for Emacs. :-) lsp-mode users flycheck by default for its error diagnostics. I'm not a big LSP user, though, and often prefer the simplicity of just shelling out to whatever lint tools I need. 

You probably know that Flycheck is one of the most download packages on MELPA, so it has plenty of happy users. I'm one of them and that's why I took over the maintenance of the project. I felt that NonGNU ELPA existed to make it easier for popular stuff to be installed by users, but it seems to me MELPA won't be going away any time soon. 

On Mon, Feb 19, 2024, at 7:44 PM, Philip Kaludercic wrote:
> "Bozhidar Batsov" <bozhidar@batsov.dev> writes:
> 
> > Hey everyone,
> >
> > Just wanted to ask if there's any interested in adding Flycheck
> > (https://www.flycheck.org/en/latest/), a popular alternative to
> > Flymake, to NonGNU ELPA?
> >
> > You can find the codebase here https://github.com/flycheck/flycheck
> > There's also some integration with Eglot https://github.com/flycheck/flycheck-eglot
> >
> > I'm not sure what's the stance of adding alternatives to built-in
> > packages in general, but I think providing some alternatives to the
> > end users is not a bad thing overall.
> 
> My main question is what advantage Flycheck has over Flymake.  I
> understand it has a database of tools built-in, but considering that
> more and more people rely on LSP for the information (and Eglot supports
> Flymake OOTB), I don't know how valuable this is.  In addition to that,
> there are projects like
> 
> https://github.com/mohkale/flymake-collection
> https://github.com/purcell/flymake-flycheck
> 
> that could help bridge the gap.
> 
> 

[-- Attachment #2: Type: text/html, Size: 4292 bytes --]

^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 18:08   ` Bozhidar Batsov
@ 2024-02-19 18:48     ` Eli Zaretskii
  2024-02-19 19:18       ` Bozhidar Batsov
  2024-02-19 18:53     ` Philip Kaludercic
  2024-02-19 19:33     ` Dmitry Gutov
  2 siblings, 1 reply; 55+ messages in thread
From: Eli Zaretskii @ 2024-02-19 18:48 UTC (permalink / raw)
  To: Bozhidar Batsov; +Cc: philipk, emacs-devel

> Date: Mon, 19 Feb 2024 20:08:15 +0200
> From: "Bozhidar Batsov" <bozhidar@batsov.dev>
> Cc: "Emacs Devel" <emacs-devel@gnu.org>
> 
> Btw, flymake-flycheck was created only because Joao wouldn't agree to provide Flycheck support in Eglot (I
> know this from the author of flymake-flycheck). The whole situation with Elgot was a classic example of the
> hostility in Emacs towards packages some maintainers dislike...
> (https://github.com/joaotavora/eglot/issues/42)

To set the record straight: that issue is from 2018, full 4 years
before Eglot was added to Emacs.  So I don't see how any incident from
back then could be considered "a classic example of hostility in
Emacs".



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 18:08   ` Bozhidar Batsov
  2024-02-19 18:48     ` Eli Zaretskii
@ 2024-02-19 18:53     ` Philip Kaludercic
  2024-02-19 19:17       ` Bozhidar Batsov
  2024-02-19 19:32       ` Dmitry Gutov
  2024-02-19 19:33     ` Dmitry Gutov
  2 siblings, 2 replies; 55+ messages in thread
From: Philip Kaludercic @ 2024-02-19 18:53 UTC (permalink / raw)
  To: Bozhidar Batsov; +Cc: Emacs Devel

"Bozhidar Batsov" <bozhidar@batsov.dev> writes:

> There is a detailed comparison here
> https://www.flycheck.org/en/latest/user/flycheck-versus-flymake.html

From what I see, this comparison is outdated and somewhat one-sided.
Flymake has error explanations, and categories like "Automatic syntax
checking" seem disingenuous if the complaint is that there is not a
flymake-global-mode.  (It would have probably taken less time to write a
`define-globalized-minor-mode', than the time to write this point...)

> but many of the differences are probably not important to many
> people. You might remember that before Flycheck, Flymake was in a
> state of disarray and abandoment for years, so I'm pretty sure
> Flycheck making it almost obsolete back then was the trigger for some
> modernization around Emacs 26.1. 

Could you explain how this relates to the current state of Flymake
vs. Flycheck?  The fact that Flymake caught up, and in my eyes
deprecated Flycheck, seems like a success story.

>                                  And the contributors to Flycheck and
> Flymake were always pretty different - part of the reason Sebastien
> (the original author of Flycheck) quit Emacs were some attacks he was
> getting on emacs-devel.

For the sake of a constructive discussion, please don't make claims like
these without any further references.  Provocations like these, from
anyone, only make discussions like these more difficult.

> Many people are so off-put by the discourse there, that they want to
> have as little as possible with it. And that's the real value of
> alternative packages IMO - they allow us to harvest the energy of all
> contributors.

I don't think this is the problem you are making it out to be, and even
if it were, one could have a package like flymake-collection added to
NonGNU ELPA.

> Btw, flymake-flycheck was created only because Joao wouldn't agree to
> provide Flycheck support in Eglot (I know this from the author of
> flymake-flycheck). The whole situation with Elgot was a classic
> example of the hostility in Emacs towards packages some maintainers
> dislike... (https://github.com/joaotavora/eglot/issues/42)

I don't know how you infer, but again, it would be nice to keep the
discussion here on-topic instead of bringing up old drama between
GNU-adjacent/core development and MELPA/GitHub/anti-GNU people.

>> but considering that
>> more and more people rely on LSP for the information (and Eglot supports
>> Flymake OOTB), I don't know how valuable this is.
>
> Btw, Eglot is not the only LSP client for Emacs. :-) lsp-mode users
> flycheck by default for its error diagnostics. I'm not a big LSP user,
> though, and often prefer the simplicity of just shelling out to
> whatever lint tools I need.

The "lsp-mode" is not part of NonGNU ELPA, so I don't think that is a
problem in this case.

> You probably know that Flycheck is one of the most download packages
> on MELPA, so it has plenty of happy users. 

I do not follow MELPA development or statistics, but from what I recall
these are just accumulated downloads over all versions, right?  If so,
then the information we get from this fact is rather low.

(BTW. if we are to implement this feature for ELPA, then we should pay
attention to avoid this mistake, and only display the download counts
over some fixed time interval, e.g. the information currently available
in the access logs.)

>                                            
>                                            I'm one of them and that's
> why I took over the maintenance of the project. I felt that NonGNU
> ELPA existed to make it easier for popular stuff to be installed by
> users, but it seems to me MELPA won't be going away any time soon.

NonGNU ELPA is not only a means of making more useful packages readily
available to users OOTB (without having to search online blogs and fora
for code snippets that enable third-party archives and install dozens of
weirdly named packages replicating built-in functionality), but also a
chance to clean up the package landscape, and prune away some
experiments from the 2010s.  As you say, people will continue
maintaining third-party repositories that accept every brittle little
scripts anyone writes (I speak here from experience and personal
suffering), but I think it is a feature that ELPA has a more curated
policy.  I for my really try my best to raise the bar of package
submissions, and while it is not always easy, I hope that this helps
make the system more robust for everyone.  So once more, please do not
assume malice in these discussions, I don't think anyone here hates one
another or intentionally wants to hinder them personally.  It takes
effort to take others seriously, but it is worth undertaking if we want
to make Emacs better.

To this end, I repeat my question: What _technical functionality_ does
Flycheck _currently_ provide that Flymake does not?  A different way of
putting it is what architectural advantages does Flycheck exemplify over
Flymake, that give it an inherent edge?  If there aren't too many
differences, I think the cost of confusion (Flymake and Flycheck are
names that are easy to confuse) and of inducing choice-fatigue among new
users is not something we should ignore.

> On Mon, Feb 19, 2024, at 7:44 PM, Philip Kaludercic wrote:
>> "Bozhidar Batsov" <bozhidar@batsov.dev> writes:
>> 
>> > Hey everyone,
>> >
>> > Just wanted to ask if there's any interested in adding Flycheck
>> > (https://www.flycheck.org/en/latest/), a popular alternative to
>> > Flymake, to NonGNU ELPA?
>> >
>> > You can find the codebase here https://github.com/flycheck/flycheck
>> > There's also some integration with Eglot https://github.com/flycheck/flycheck-eglot
>> >
>> > I'm not sure what's the stance of adding alternatives to built-in
>> > packages in general, but I think providing some alternatives to the
>> > end users is not a bad thing overall.
>> 
>> My main question is what advantage Flycheck has over Flymake.  I
>> understand it has a database of tools built-in, but considering that
>> more and more people rely on LSP for the information (and Eglot supports
>> Flymake OOTB), I don't know how valuable this is.  In addition to that,
>> there are projects like
>> 
>> https://github.com/mohkale/flymake-collection
>> https://github.com/purcell/flymake-flycheck
>> 
>> that could help bridge the gap.
>> 
>> 



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 18:53     ` Philip Kaludercic
@ 2024-02-19 19:17       ` Bozhidar Batsov
  2024-02-19 19:41         ` Philip Kaludercic
  2024-02-19 19:32       ` Dmitry Gutov
  1 sibling, 1 reply; 55+ messages in thread
From: Bozhidar Batsov @ 2024-02-19 19:17 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: Emacs Devel

[-- Attachment #1: Type: text/plain, Size: 9462 bytes --]

> For the sake of a constructive discussion, please don't make claims like
> these without any further references.  Provocations like these, from
> anyone, only make discussions like these more difficult.

Oh, damn - I mixed a private thread with Philip and the message I had sent here. (I had reached out to him before posting here, as I was hoping to avoid a public thread on the topic) :double-facepalm: Anyways, that's on me.

> I do not follow MELPA development or statistics, but from what I recall
> these are just accumulated downloads over all versions, right?  If so,
> then the information we get from this fact is rather low.

Fair enough. Still, you don't get to #4 in the all-time rankings on past usage alone. I'm sorry that I can't provide better usage metrics to support my case. 

> Could you explain how this relates to the current state of Flymake
> vs. Flycheck?  The fact that Flymake caught up, and in my eyes
> deprecated Flycheck, seems like a success story.

I'm afraid I don't have the time to do a detailed research on the current state of Flymake. I haven't written the comparison page myself and I agree some points there are small/subjective. I'm not sure how you came to the conclusion that Flycheck got deprecated, though. Any analysis that I would do would be subjective of course, from mine perspective and from yours, so I think it wouldn't change anything.  

To be clear I don't want to argue which project is better and what are the merits of Flycheck over Flymake, if any. If it's so big of a deal to have packages that duplicate core functionality in the official repos - fine.

> As you say, people will continue
> maintaining third-party repositories that accept every brittle little
> scripts anyone writes (I speak here from experience and personal
> suffering), but I think it is a feature that ELPA has a more curated
> policy.  I for my really try my best to raise the bar of package
> submissions, and while it is not always easy, I hope that this helps
> make the system more robust for everyone. 

I get your point about quality, but here we're not talking about some random package of questionable provenance. You can inspect the codebase yourself if you want, but (subjectively speaking) has fairly clean codebase, lots of unit tests, and very detailed documentation. (and a sizeable, if hard to measure user-base) Flymake's docs (https://www.gnu.org/software/emacs/manual/html_node/emacs/Flymake.html) are pretty basic compared to Flycheck's so I feel you're applying double standards here. 

Anyways, I had a feeling I'd regret asking for the inclusion of Flycheck. I'll take is that my answer is "No".

I really don't want to turn this into some heated debate, so we can just wrap up here. 

On Mon, Feb 19, 2024, at 8:53 PM, Philip Kaludercic wrote:
> "Bozhidar Batsov" <bozhidar@batsov.dev> writes:
> 
> > There is a detailed comparison here
> > https://www.flycheck.org/en/latest/user/flycheck-versus-flymake.html
> 
> From what I see, this comparison is outdated and somewhat one-sided.
> Flymake has error explanations, and categories like "Automatic syntax
> checking" seem disingenuous if the complaint is that there is not a
> flymake-global-mode.  (It would have probably taken less time to write a
> `define-globalized-minor-mode', than the time to write this point...)
> 
> > but many of the differences are probably not important to many
> > people. You might remember that before Flycheck, Flymake was in a
> > state of disarray and abandoment for years, so I'm pretty sure
> > Flycheck making it almost obsolete back then was the trigger for some
> > modernization around Emacs 26.1. 
> 
> Could you explain how this relates to the current state of Flymake
> vs. Flycheck?  The fact that Flymake caught up, and in my eyes
> deprecated Flycheck, seems like a success story.
> 
> >                                  And the contributors to Flycheck and
> > Flymake were always pretty different - part of the reason Sebastien
> > (the original author of Flycheck) quit Emacs were some attacks he was
> > getting on emacs-devel.
> 
> For the sake of a constructive discussion, please don't make claims like
> these without any further references.  Provocations like these, from
> anyone, only make discussions like these more difficult.
> 
> > Many people are so off-put by the discourse there, that they want to
> > have as little as possible with it. And that's the real value of
> > alternative packages IMO - they allow us to harvest the energy of all
> > contributors.
> 
> I don't think this is the problem you are making it out to be, and even
> if it were, one could have a package like flymake-collection added to
> NonGNU ELPA.
> 
> > Btw, flymake-flycheck was created only because Joao wouldn't agree to
> > provide Flycheck support in Eglot (I know this from the author of
> > flymake-flycheck). The whole situation with Elgot was a classic
> > example of the hostility in Emacs towards packages some maintainers
> > dislike... (https://github.com/joaotavora/eglot/issues/42)
> 
> I don't know how you infer, but again, it would be nice to keep the
> discussion here on-topic instead of bringing up old drama between
> GNU-adjacent/core development and MELPA/GitHub/anti-GNU people.
> 
> >> but considering that
> >> more and more people rely on LSP for the information (and Eglot supports
> >> Flymake OOTB), I don't know how valuable this is.
> >
> > Btw, Eglot is not the only LSP client for Emacs. :-) lsp-mode users
> > flycheck by default for its error diagnostics. I'm not a big LSP user,
> > though, and often prefer the simplicity of just shelling out to
> > whatever lint tools I need.
> 
> The "lsp-mode" is not part of NonGNU ELPA, so I don't think that is a
> problem in this case.
> 
> > You probably know that Flycheck is one of the most download packages
> > on MELPA, so it has plenty of happy users. 
> 
> I do not follow MELPA development or statistics, but from what I recall
> these are just accumulated downloads over all versions, right?  If so,
> then the information we get from this fact is rather low.
> 
> (BTW. if we are to implement this feature for ELPA, then we should pay
> attention to avoid this mistake, and only display the download counts
> over some fixed time interval, e.g. the information currently available
> in the access logs.)
> 
> >                                            
> >                                            I'm one of them and that's
> > why I took over the maintenance of the project. I felt that NonGNU
> > ELPA existed to make it easier for popular stuff to be installed by
> > users, but it seems to me MELPA won't be going away any time soon.
> 
> NonGNU ELPA is not only a means of making more useful packages readily
> available to users OOTB (without having to search online blogs and fora
> for code snippets that enable third-party archives and install dozens of
> weirdly named packages replicating built-in functionality), but also a
> chance to clean up the package landscape, and prune away some
> experiments from the 2010s.  As you say, people will continue
> maintaining third-party repositories that accept every brittle little
> scripts anyone writes (I speak here from experience and personal
> suffering), but I think it is a feature that ELPA has a more curated
> policy.  I for my really try my best to raise the bar of package
> submissions, and while it is not always easy, I hope that this helps
> make the system more robust for everyone.  So once more, please do not
> assume malice in these discussions, I don't think anyone here hates one
> another or intentionally wants to hinder them personally.  It takes
> effort to take others seriously, but it is worth undertaking if we want
> to make Emacs better.
> 
> To this end, I repeat my question: What _technical functionality_ does
> Flycheck _currently_ provide that Flymake does not?  A different way of
> putting it is what architectural advantages does Flycheck exemplify over
> Flymake, that give it an inherent edge?  If there aren't too many
> differences, I think the cost of confusion (Flymake and Flycheck are
> names that are easy to confuse) and of inducing choice-fatigue among new
> users is not something we should ignore.
> 
> > On Mon, Feb 19, 2024, at 7:44 PM, Philip Kaludercic wrote:
> >> "Bozhidar Batsov" <bozhidar@batsov.dev> writes:
> >> 
> >> > Hey everyone,
> >> >
> >> > Just wanted to ask if there's any interested in adding Flycheck
> >> > (https://www.flycheck.org/en/latest/), a popular alternative to
> >> > Flymake, to NonGNU ELPA?
> >> >
> >> > You can find the codebase here https://github.com/flycheck/flycheck
> >> > There's also some integration with Eglot https://github.com/flycheck/flycheck-eglot
> >> >
> >> > I'm not sure what's the stance of adding alternatives to built-in
> >> > packages in general, but I think providing some alternatives to the
> >> > end users is not a bad thing overall.
> >> 
> >> My main question is what advantage Flycheck has over Flymake.  I
> >> understand it has a database of tools built-in, but considering that
> >> more and more people rely on LSP for the information (and Eglot supports
> >> Flymake OOTB), I don't know how valuable this is.  In addition to that,
> >> there are projects like
> >> 
> >> https://github.com/mohkale/flymake-collection
> >> https://github.com/purcell/flymake-flycheck
> >> 
> >> that could help bridge the gap.
> >> 
> >> 
> 
> 

[-- Attachment #2: Type: text/html, Size: 13596 bytes --]

^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 18:48     ` Eli Zaretskii
@ 2024-02-19 19:18       ` Bozhidar Batsov
  0 siblings, 0 replies; 55+ messages in thread
From: Bozhidar Batsov @ 2024-02-19 19:18 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Philip Kaludercic, Emacs Devel

[-- Attachment #1: Type: text/plain, Size: 921 bytes --]

Ops, this was meant to be a private message to Philip as we were speaking about this matter earlier. My bad! (2 threads with more or less the same title)

On Mon, Feb 19, 2024, at 8:48 PM, Eli Zaretskii wrote:
> > Date: Mon, 19 Feb 2024 20:08:15 +0200
> > From: "Bozhidar Batsov" <bozhidar@batsov.dev>
> > Cc: "Emacs Devel" <emacs-devel@gnu.org>
> > 
> > Btw, flymake-flycheck was created only because Joao wouldn't agree to provide Flycheck support in Eglot (I
> > know this from the author of flymake-flycheck). The whole situation with Elgot was a classic example of the
> > hostility in Emacs towards packages some maintainers dislike...
> > (https://github.com/joaotavora/eglot/issues/42)
> 
> To set the record straight: that issue is from 2018, full 4 years
> before Eglot was added to Emacs.  So I don't see how any incident from
> back then could be considered "a classic example of hostility in
> Emacs".
> 
> 

[-- Attachment #2: Type: text/html, Size: 1536 bytes --]

^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 18:53     ` Philip Kaludercic
  2024-02-19 19:17       ` Bozhidar Batsov
@ 2024-02-19 19:32       ` Dmitry Gutov
  2024-02-19 22:32         ` joakim
  1 sibling, 1 reply; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-19 19:32 UTC (permalink / raw)
  To: Philip Kaludercic, Bozhidar Batsov; +Cc: Emacs Devel

On 19/02/2024 20:53, Philip Kaludercic wrote:
> To this end, I repeat my question: What_technical functionality_  does
> Flycheck_currently_  provide that Flymake does not?  A different way of
> putting it is what architectural advantages does Flycheck exemplify over
> Flymake, that give it an inherent edge?  If there aren't too many
> differences, I think the cost of confusion (Flymake and Flycheck are
> names that are easy to confuse) and of inducing choice-fatigue among new
> users is not something we should ignore.

I'm fairly sure the main answer is "lots of built-in checkers", much 
more than flymake still has now.

It also has a minor mode map, to invoke the errors buffer or jump 
between the errors. Though the latter is easy-ish to port over.

On the subject of choice fatigue, would we hesitate to include lsp-mode 
in NonGNU ELPA, now that Eglot is in the core? I feel that would be the 
wrong move.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 18:08   ` Bozhidar Batsov
  2024-02-19 18:48     ` Eli Zaretskii
  2024-02-19 18:53     ` Philip Kaludercic
@ 2024-02-19 19:33     ` Dmitry Gutov
  2024-02-19 19:47       ` Bozhidar Batsov
  2 siblings, 1 reply; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-19 19:33 UTC (permalink / raw)
  To: Bozhidar Batsov, Philip Kaludercic; +Cc: Emacs Devel

On 19/02/2024 20:08, Bozhidar Batsov wrote:
> And the contributors to Flycheck and Flymake were always pretty 
> different - part of the reason Sebastien (the original author of 
> Flycheck) quit Emacs were some attacks he was getting on emacs-devel.

Speaking of attacks, I don't remember anything significant.

Sebastian's decision to shut the project down was quite a surprise at 
the time.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 19:17       ` Bozhidar Batsov
@ 2024-02-19 19:41         ` Philip Kaludercic
  0 siblings, 0 replies; 55+ messages in thread
From: Philip Kaludercic @ 2024-02-19 19:41 UTC (permalink / raw)
  To: Bozhidar Batsov; +Cc: Emacs Devel

"Bozhidar Batsov" <bozhidar@batsov.dev> writes:

>> For the sake of a constructive discussion, please don't make claims like
>> these without any further references.  Provocations like these, from
>> anyone, only make discussions like these more difficult.
>
> Oh, damn - I mixed a private thread with Philip and the message I had
> sent here. (I had reached out to him before posting here, as I was
> hoping to avoid a public thread on the topic) :double-facepalm:
> Anyways, that's on me.

No worries.  I prefer public conversations anyway, saves me from the
burden of archiving for myself ;)

>> I do not follow MELPA development or statistics, but from what I recall
>> these are just accumulated downloads over all versions, right?  If so,
>> then the information we get from this fact is rather low.
>
> Fair enough. Still, you don't get to #4 in the all-time rankings on
> past usage alone. I'm sorry that I can't provide better usage metrics
> to support my case.

I get what you mean, but what is really missing is growth statistics,
specifically w.r.t. new, manual installations.  MELPA also inflates for
packages that commit a lot, since they have more "releases", hence more
updates, and hence finally more downloads.  We can certainly conclude
that it is a package that people payed attention to, but I just want to
avoid inferring too much from that.

>> Could you explain how this relates to the current state of Flymake
>> vs. Flycheck?  The fact that Flymake caught up, and in my eyes
>> deprecated Flycheck, seems like a success story.
>
> I'm afraid I don't have the time to do a detailed research on the
> current state of Flymake. I haven't written the comparison page myself
> and I agree some points there are small/subjective. I'm not sure how
> you came to the conclusion that Flycheck got deprecated, though. 

Sorry, "deprecated" should have been in quotes;  perhaps "superseded"
would be the more appropriate term.  My point is just that there was a
time where Flycheck had advantages, in a certain milieu, but I think
that period is over and that is good.

>                                                                  Any
> analysis that I would do would be subjective of course, from mine
> perspective and from yours, so I think it wouldn't change anything.
>
> To be clear I don't want to argue which project is better and what are
> the merits of Flycheck over Flymake, if any. If it's so big of a deal
> to have packages that duplicate core functionality in the official
> repos - fine.

I'd qualify this as "duplicate existing functionality provided via ELPA,
without providing a characteristic advantage".  The fact that Flymake is
built-in is an important, but secondary point.

>> As you say, people will continue
>> maintaining third-party repositories that accept every brittle little
>> scripts anyone writes (I speak here from experience and personal
>> suffering), but I think it is a feature that ELPA has a more curated
>> policy.  I for my really try my best to raise the bar of package
>> submissions, and while it is not always easy, I hope that this helps
>> make the system more robust for everyone. 
>
> I get your point about quality, but here we're not talking about some
> random package of questionable provenance. You can inspect the
> codebase yourself if you want, but (subjectively speaking) has fairly
> clean codebase, lots of unit tests, and very detailed
> documentation. (and a sizeable, if hard to measure user-base)
> Flymake's docs
> (https://www.gnu.org/software/emacs/manual/html_node/emacs/Flymake.html)
> are pretty basic compared to Flycheck's so I feel you're applying
> double standards here.

(I really can't write) My above comment was on MELPA in general,
specifically deriving from my first few years of using Emacs before
getting into development (~2014-2020) -- a position I would argue that
most core developers /and/ MELPA contributors have not experienced --
and the issues and misconceptions I had to overcome.  While I cannot
recall any specific breakage related to Flycheck, the mentality of
having to install everything from MELPA, without properly studying the
documentation or understanding the potential synergy that Emacs can
provide, did keep me back for a long time, and as I regularly observe,
hinders others from advancing as well.  But that is a topic for another
thread, that should probably take place on some other mailing list...

> Anyways, I had a feeling I'd regret asking for the inclusion of Flycheck. I'll take is that my answer is "No".
>
> I really don't want to turn this into some heated debate, so we can just wrap up here. 

OK, thank you anyway for the idea.

> On Mon, Feb 19, 2024, at 8:53 PM, Philip Kaludercic wrote:
>> "Bozhidar Batsov" <bozhidar@batsov.dev> writes:
>> 
>> > There is a detailed comparison here
>> > https://www.flycheck.org/en/latest/user/flycheck-versus-flymake.html
>> 
>> From what I see, this comparison is outdated and somewhat one-sided.
>> Flymake has error explanations, and categories like "Automatic syntax
>> checking" seem disingenuous if the complaint is that there is not a
>> flymake-global-mode.  (It would have probably taken less time to write a
>> `define-globalized-minor-mode', than the time to write this point...)
>> 
>> > but many of the differences are probably not important to many
>> > people. You might remember that before Flycheck, Flymake was in a
>> > state of disarray and abandoment for years, so I'm pretty sure
>> > Flycheck making it almost obsolete back then was the trigger for some
>> > modernization around Emacs 26.1. 
>> 
>> Could you explain how this relates to the current state of Flymake
>> vs. Flycheck?  The fact that Flymake caught up, and in my eyes
>> deprecated Flycheck, seems like a success story.
>> 
>> >                                  And the contributors to Flycheck and
>> > Flymake were always pretty different - part of the reason Sebastien
>> > (the original author of Flycheck) quit Emacs were some attacks he was
>> > getting on emacs-devel.
>> 
>> For the sake of a constructive discussion, please don't make claims like
>> these without any further references.  Provocations like these, from
>> anyone, only make discussions like these more difficult.
>> 
>> > Many people are so off-put by the discourse there, that they want to
>> > have as little as possible with it. And that's the real value of
>> > alternative packages IMO - they allow us to harvest the energy of all
>> > contributors.
>> 
>> I don't think this is the problem you are making it out to be, and even
>> if it were, one could have a package like flymake-collection added to
>> NonGNU ELPA.
>> 
>> > Btw, flymake-flycheck was created only because Joao wouldn't agree to
>> > provide Flycheck support in Eglot (I know this from the author of
>> > flymake-flycheck). The whole situation with Elgot was a classic
>> > example of the hostility in Emacs towards packages some maintainers
>> > dislike... (https://github.com/joaotavora/eglot/issues/42)
>> 
>> I don't know how you infer, but again, it would be nice to keep the
>> discussion here on-topic instead of bringing up old drama between
>> GNU-adjacent/core development and MELPA/GitHub/anti-GNU people.
>> 
>> >> but considering that
>> >> more and more people rely on LSP for the information (and Eglot supports
>> >> Flymake OOTB), I don't know how valuable this is.
>> >
>> > Btw, Eglot is not the only LSP client for Emacs. :-) lsp-mode users
>> > flycheck by default for its error diagnostics. I'm not a big LSP user,
>> > though, and often prefer the simplicity of just shelling out to
>> > whatever lint tools I need.
>> 
>> The "lsp-mode" is not part of NonGNU ELPA, so I don't think that is a
>> problem in this case.
>> 
>> > You probably know that Flycheck is one of the most download packages
>> > on MELPA, so it has plenty of happy users. 
>> 
>> I do not follow MELPA development or statistics, but from what I recall
>> these are just accumulated downloads over all versions, right?  If so,
>> then the information we get from this fact is rather low.
>> 
>> (BTW. if we are to implement this feature for ELPA, then we should pay
>> attention to avoid this mistake, and only display the download counts
>> over some fixed time interval, e.g. the information currently available
>> in the access logs.)
>> 
>> >                                            
>> >                                            I'm one of them and that's
>> > why I took over the maintenance of the project. I felt that NonGNU
>> > ELPA existed to make it easier for popular stuff to be installed by
>> > users, but it seems to me MELPA won't be going away any time soon.
>> 
>> NonGNU ELPA is not only a means of making more useful packages readily
>> available to users OOTB (without having to search online blogs and fora
>> for code snippets that enable third-party archives and install dozens of
>> weirdly named packages replicating built-in functionality), but also a
>> chance to clean up the package landscape, and prune away some
>> experiments from the 2010s.  As you say, people will continue
>> maintaining third-party repositories that accept every brittle little
>> scripts anyone writes (I speak here from experience and personal
>> suffering), but I think it is a feature that ELPA has a more curated
>> policy.  I for my really try my best to raise the bar of package
>> submissions, and while it is not always easy, I hope that this helps
>> make the system more robust for everyone.  So once more, please do not
>> assume malice in these discussions, I don't think anyone here hates one
>> another or intentionally wants to hinder them personally.  It takes
>> effort to take others seriously, but it is worth undertaking if we want
>> to make Emacs better.
>> 
>> To this end, I repeat my question: What _technical functionality_ does
>> Flycheck _currently_ provide that Flymake does not?  A different way of
>> putting it is what architectural advantages does Flycheck exemplify over
>> Flymake, that give it an inherent edge?  If there aren't too many
>> differences, I think the cost of confusion (Flymake and Flycheck are
>> names that are easy to confuse) and of inducing choice-fatigue among new
>> users is not something we should ignore.
>> 
>> > On Mon, Feb 19, 2024, at 7:44 PM, Philip Kaludercic wrote:
>> >> "Bozhidar Batsov" <bozhidar@batsov.dev> writes:
>> >> 
>> >> > Hey everyone,
>> >> >
>> >> > Just wanted to ask if there's any interested in adding Flycheck
>> >> > (https://www.flycheck.org/en/latest/), a popular alternative to
>> >> > Flymake, to NonGNU ELPA?
>> >> >
>> >> > You can find the codebase here https://github.com/flycheck/flycheck
>> >> > There's also some integration with Eglot https://github.com/flycheck/flycheck-eglot
>> >> >
>> >> > I'm not sure what's the stance of adding alternatives to built-in
>> >> > packages in general, but I think providing some alternatives to the
>> >> > end users is not a bad thing overall.
>> >> 
>> >> My main question is what advantage Flycheck has over Flymake.  I
>> >> understand it has a database of tools built-in, but considering that
>> >> more and more people rely on LSP for the information (and Eglot supports
>> >> Flymake OOTB), I don't know how valuable this is.  In addition to that,
>> >> there are projects like
>> >> 
>> >> https://github.com/mohkale/flymake-collection
>> >> https://github.com/purcell/flymake-flycheck
>> >> 
>> >> that could help bridge the gap.
>> >> 
>> >> 
>> 
>> 



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 19:33     ` Dmitry Gutov
@ 2024-02-19 19:47       ` Bozhidar Batsov
  2024-02-19 19:55         ` Dominik Schrempf
  2024-02-19 23:21         ` Dmitry Gutov
  0 siblings, 2 replies; 55+ messages in thread
From: Bozhidar Batsov @ 2024-02-19 19:47 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Emacs Devel

[-- Attachment #1: Type: text/plain, Size: 827 bytes --]

My memory is fuzzy as well, but I recall some sparks here https://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00552.html I also vaguely recall that he didn't like the vibe of a part of the Emacs community and this was a factor in his ultimate decision to quit Emacs. It's a pity - for me he was a really great Elisp hacker and package maintainer. 

On Mon, Feb 19, 2024, at 9:33 PM, Dmitry Gutov wrote:
> On 19/02/2024 20:08, Bozhidar Batsov wrote:
> > And the contributors to Flycheck and Flymake were always pretty 
> > different - part of the reason Sebastien (the original author of 
> > Flycheck) quit Emacs were some attacks he was getting on emacs-devel.
> 
> Speaking of attacks, I don't remember anything significant.
> 
> Sebastian's decision to shut the project down was quite a surprise at 
> the time.
> 
> 

[-- Attachment #2: Type: text/html, Size: 1313 bytes --]

^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 19:47       ` Bozhidar Batsov
@ 2024-02-19 19:55         ` Dominik Schrempf
  2024-02-19 23:21         ` Dmitry Gutov
  1 sibling, 0 replies; 55+ messages in thread
From: Dominik Schrempf @ 2024-02-19 19:55 UTC (permalink / raw)
  To: Bozhidar Batsov; +Cc: Dmitry Gutov, emacs-devel


Coming back to the topic --- A user story: I am an =lsp-mode= user, just
because it is more feature rich than =eglot=. In particular,
=lsp-ui-sideline= does a great job in displaying errors on the side of
buffers. I can only use this feature with =flycheck=. When using
=flymake=, the only way to display error messages is the minibuffer.
(There might and will be hacks that I am not aware of). Since many
compilation errors involve long messages, this is too crowded for my
taste.

"Bozhidar Batsov" <bozhidar@batsov.dev> writes:

> My memory is fuzzy as well, but I recall some sparks here
> https://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00552.html I also
> vaguely recall that he didn't like the vibe of a part of the Emacs community and
> this was a factor in his ultimate decision to quit Emacs. It's a pity - for me
> he was a really great Elisp hacker and package maintainer.
>
> On Mon, Feb 19, 2024, at 9:33 PM, Dmitry Gutov wrote:
>
>     On 19/02/2024 20:08, Bozhidar Batsov wrote:
>     > And the contributors to Flycheck and Flymake were always pretty
>     > different - part of the reason Sebastien (the original author of
>     > Flycheck) quit Emacs were some attacks he was getting on emacs-devel.
>
>     Speaking of attacks, I don't remember anything significant.
>
>     Sebastian's decision to shut the project down was quite a surprise at
>     the time.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 19:32       ` Dmitry Gutov
@ 2024-02-19 22:32         ` joakim
  2024-02-20 11:48           ` Philip Kaludercic
  0 siblings, 1 reply; 55+ messages in thread
From: joakim @ 2024-02-19 22:32 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Philip Kaludercic, Bozhidar Batsov, Emacs Devel

Dmitry Gutov <dmitry@gutov.dev> writes:

> On 19/02/2024 20:53, Philip Kaludercic wrote:
>> To this end, I repeat my question: What_technical functionality_  does
>> Flycheck_currently_  provide that Flymake does not?  A different way of
>> putting it is what architectural advantages does Flycheck exemplify over
>> Flymake, that give it an inherent edge?  If there aren't too many
>> differences, I think the cost of confusion (Flymake and Flycheck are
>> names that are easy to confuse) and of inducing choice-fatigue among new
>> users is not something we should ignore.
>
> I'm fairly sure the main answer is "lots of built-in checkers", much
> more than flymake still has now.
>
> It also has a minor mode map, to invoke the errors buffer or jump
> between the errors. Though the latter is easy-ish to port over.
>
> On the subject of choice fatigue, would we hesitate to include
> lsp-mode in NonGNU ELPA, now that Eglot is in the core? I feel that
> would be the wrong move.

My 2 ören is that it is normal for there to exist several different
Emacs packages that provide similar functionality, and this goes for
more or less any functionality you can think of.

In my case I like to try all the different alternatives at once, so I
write some code to be able to switch between the alternatives on the
fly, until I feel I like one of the alternatives more than the others.

I did this for the gazillion of completion options out there until I
wound up with Vertico, and for the different fancy Modelines until I
just reverted to the OOTB modeline. 

Its not really easy to write such feature switching code reliably
however. Sometimes you wind up in the tedium of rebooting Emacs. (not
too bad though, this Emacs has 80 day uptime)

Maybe having more alternatives in Elpa/Melpa would actually lead to more
code re-use between the alternatives? That would be nice but I guess
history indicates otherwise.

PS

Heres an example of the ugly code I wrote, I used the "daf" prefix for
"dumb alternatives framework". Again, super ugly, but it kinda
illustrates that its not super obvious how to change between similar implementations.

      (defun daf-ivy ()
        "Switch to ivy."
        (interactive)
        (helm-mode -1)
        (ivy-mode 1)
        (counsel-mode 1)

        (counsel-projectile-mode)

        (global-set-key (kbd "M-x") 'counsel-M-x)
        (global-set-key (kbd "C-x C-f") 'counsel-find-file)
        (global-set-key (kbd "M-s M-s") 'swiper)
        (global-set-key (kbd "M-y")     'counsel-yank-pop)
        (global-set-key (kbd "C-x b") 'ivy-switch-buffer)
        (setq read-file-name-function 'read-file-name-default)
        (all-the-icons-ivy-setup)
        )

      ;; use flex matching in ivy. its cool!
      ;; but maybe swiper should have another valuse
      ;; (setq ivy-re-builders-alist
      ;;       '((t . ivy--regex-fuzzy)))

      ;;also u can change the re-builder on the fly
      (setq ivy-re-builders-alist
            '((swiper . ivy--regex-plus)
            (t . ivy--regex-plus)
              (fuzzy      . ivy--regex-fuzzy)))

      (setq ivy-initial-inputs-alist nil)


      (defun daf-helm ()
        "Switch to helm."
        (interactive)
        (ivy-mode -1)
        (helm-mode 1)

        (global-set-key (kbd "M-x") 'helm-M-x)
        (global-set-key (kbd "C-x C-f") 'helm-find-files)
        (global-set-key (kbd "M-s M-s") 'helm-swoop)
        (global-set-key (kbd "M-y")     'helm-show-kill-ring)
        (global-set-key (kbd "C-x b") 'helm-mini)
        ;;(setq read-file-name-function 'read-file-name-default);; for helm?



-- 
Joakim Verona
joakim@verona.se



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 19:47       ` Bozhidar Batsov
  2024-02-19 19:55         ` Dominik Schrempf
@ 2024-02-19 23:21         ` Dmitry Gutov
  2024-02-20  6:17           ` Bozhidar Batsov
  1 sibling, 1 reply; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-19 23:21 UTC (permalink / raw)
  To: Bozhidar Batsov; +Cc: Emacs Devel

On 19/02/2024 21:47, Bozhidar Batsov wrote:
> My memory is fuzzy as well, but I recall some sparks here 
> https://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00552.html 
> <https://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00552.html> I 
> also vaguely recall that he didn't like the vibe of a part of the Emacs 
> community and this was a factor in his ultimate decision to quit Emacs. 
> It's a pity - for me he was a really great Elisp hacker and package 
> maintainer.

But I'm not seeing the "attacks" here still. If the discussion is tense 
after he both states Flycheck's strict superiority and his firm decision 
never to contribute to Emacs, well, that's kind of expected.

But not to the extent that could explain the phrasing in his subsequent 
blog post (now long removed). I was puzzled; he never responded to my 
comments then. And yes, he's pretty great hacker, so it's all quite sad.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 23:21         ` Dmitry Gutov
@ 2024-02-20  6:17           ` Bozhidar Batsov
  0 siblings, 0 replies; 55+ messages in thread
From: Bozhidar Batsov @ 2024-02-20  6:17 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Emacs Devel

[-- Attachment #1: Type: text/plain, Size: 1133 bytes --]

I think there's no point in discussing this on the mailing list, as it's off off-topic (and the topic seems mostly closed). 

On Tue, Feb 20, 2024, at 1:21 AM, Dmitry Gutov wrote:
> On 19/02/2024 21:47, Bozhidar Batsov wrote:
> > My memory is fuzzy as well, but I recall some sparks here 
> > https://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00552.html 
> > <https://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00552.html> I 
> > also vaguely recall that he didn't like the vibe of a part of the Emacs 
> > community and this was a factor in his ultimate decision to quit Emacs. 
> > It's a pity - for me he was a really great Elisp hacker and package 
> > maintainer.
> 
> But I'm not seeing the "attacks" here still. If the discussion is tense 
> after he both states Flycheck's strict superiority and his firm decision 
> never to contribute to Emacs, well, that's kind of expected.
> 
> But not to the extent that could explain the phrasing in his subsequent 
> blog post (now long removed). I was puzzled; he never responded to my 
> comments then. And yes, he's pretty great hacker, so it's all quite sad.
> 
> 

[-- Attachment #2: Type: text/html, Size: 1844 bytes --]

^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-19 22:32         ` joakim
@ 2024-02-20 11:48           ` Philip Kaludercic
  2024-02-20 20:04             ` Dmitry Gutov
                               ` (2 more replies)
  0 siblings, 3 replies; 55+ messages in thread
From: Philip Kaludercic @ 2024-02-20 11:48 UTC (permalink / raw)
  To: joakim; +Cc: Dmitry Gutov, Bozhidar Batsov, Emacs Devel

joakim@verona.se writes:


[...]

> Maybe having more alternatives in Elpa/Melpa would actually lead to more
> code re-use between the alternatives? That would be nice but I guess
> history indicates otherwise.

I am afraid that this is not the case, instead of leads to more glue
code having to be written.  If we want to be more efficient, we should
focus on promoting generic interfaces (Xref, Imenu, Flymake, ...) and
writing back-end implementations.  As an added bonus, we improve the
consistency of the user experience.

If Flycheck were to use the same interface as Flymake, then the
situation would be better, as it would only be a different UI with
perhaps some other priorities.

Dmitry Gutov <dmitry@gutov.dev> writes:

> On 19/02/2024 21:52, Philip Kaludercic wrote:
>> Dmitry Gutov <dmitry@gutov.dev> writes:
>> 
>>> On 19/02/2024 20:53, Philip Kaludercic wrote:
>>>> To this end, I repeat my question: What_technical functionality_  does
>>>> Flycheck_currently_  provide that Flymake does not?  A different way of
>>>> putting it is what architectural advantages does Flycheck exemplify over
>>>> Flymake, that give it an inherent edge?  If there aren't too many
>>>> differences, I think the cost of confusion (Flymake and Flycheck are
>>>> names that are easy to confuse) and of inducing choice-fatigue among new
>>>> users is not something we should ignore.
>>>
>>> I'm fairly sure the main answer is "lots of built-in checkers", much
>>> more than flymake still has now.
>> Do you think that adding "flymake-collection" to NonGNU ELPA could
>> help
>> improve the situation sufficiently?  See also
>> https://github.com/mohkale/flymake-collection/issues/2.
>
> It might be an improvement, but AFAIK Flycheck still has an order of a
> magnitude more checkers.
>
> Offhand,
> https://github.com/mohkale/flymake-collection/tree/release/src/checkers
> doesn't include anything for Rust or Golang.
>
> And Flycheck has several for both.

This appears to be true, but this is not an inherent advantage, just the
fact that people have invested effort into it.  It seems to be that a
significant reason is that Flycheck has a convenient language for
defining checkers, something that IIUC flymake-collection is also
working on.  Giving this basis, we could look into perhaps even
automatically translating the Checker specifications, which would help
further "obsolete" Flycheck, given that this is apparently the only real
"advantage" it provides (which again, is not architectural, just the
accumulated labour over the last decade).

>>> It also has a minor mode map, to invoke the errors buffer or jump
>>> between the errors. Though the latter is easy-ish to port over.
>> I agree, that that is an annoyance.  I have personally bound
>> `flymake-goto-next-error' and `flymake-goto-prev-error' to M-n and M-p
>> respectively, but it would be nice if we could find some keys to bind
>> these commands to.
>
> Same.

I'll look into submitting a bug report to propose such a change.

>>> On the subject of choice fatigue, would we hesitate to include
>>> lsp-mode in NonGNU ELPA, now that Eglot is in the core? I feel that
>>> would be the wrong move.
>> FWIW I would argue against it.  Setting aside issues of
>> dependencies, it
>> is my impression that the "lsp-mode" tries to superficially convert
>> Emacs into some VSCode like experience, introducing a lot of transient
>> information that cannot be operated on normally, popup windows that
>> cannot be selected/persisted/searched or otherwise re-creating UI
>> features that already exist in Emacs.
>
> Are we going to police UIs now?

I wouldn't put it that way, but as mentioned above I do think that
pushing towards a consistent UI that aligns with Emacs strengths
(text-based, buffers in windows, ...) is worth the effort, even if some
projects have to change or die in the process.  E.g. a positive example:
I added support for the "dumb-jump" to use Xref instead of
re-implementing the UI with custom commands and popups.  People appear
to use that now.

> Let's remove Helm from NonGNU, then: its UI paradigm is also different
> from the core Emacs, and IMHO it's rather ugly. And swiper/ivy from
> ELPA, just because.

While I am not a fan of Helm, it was initially added to provide popular
packages that a number of people appeared to want to use.  Luckily these
packages fall into the category of providing the front-end of a shared
interface (completing-read; and that not without issues, because they
tend to abuse completing-read's text expansion idea by focusing on
narrowing and selecting).  And yes, there are packages that have hard
dependencies on Helm, but usually when people submit these kinds of
packages, we at least mention the idea of trying to generalise them, so
that the front- and back-end can be disentangled from one another.

> lsp-mode is not just eye candy anyway.
>
> Just as I've discovered last week (I'm not a heavy user of either), it
> has a handy test runner integration and more reliable errors reporting
> (for syntax, etc). And that's with Flymake.
>
> Also, it's average latency for completion was lower in my benchmarking
> not too long ago. Though that's probably the fault of Eglot's
> expensive pretty-printing in logging.
>
> And the popup windows are easily turned off.

I know that there are differences, and I hope that the situation
improves, but to mention another negative that probably disqualifies
adding the package just on its own: `lsp-install-server'.  The command
can download arbitrary executable files as servers and runs them
locally.  From what I see there is no reference to any software licenses
or where to find the source code.  To be fair, this is partially due to
the mentality that Microsoft had when writing VSCode (remember that a
number of the most popular extensions and servers written by Microsoft
are explicitly non-free software that must be used together with the
official signed release of VSCode), which the "lsp-mode" developers
appears to accept uncritically.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-20 11:48           ` Philip Kaludercic
@ 2024-02-20 20:04             ` Dmitry Gutov
  2024-02-21 14:38               ` Dmitry Gutov
  2024-02-21 17:00               ` Philip Kaludercic
  2024-02-22  8:41             ` Thierry Volpiatto
  2024-02-22  9:03             ` Po Lu
  2 siblings, 2 replies; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-20 20:04 UTC (permalink / raw)
  To: Philip Kaludercic, joakim; +Cc: Bozhidar Batsov, Emacs Devel

On 20/02/2024 13:48, Philip Kaludercic wrote:

> If Flycheck were to use the same interface as Flymake, then the
> situation would be better, as it would only be a different UI with
> perhaps some other priorities.

Flycheck uses macros to define checkers and output parsers. Perhaps one 
day those could expand to Flymake's functional interface under the 
covers, but for that to happen, it would help a lot if we were more 
welcoming.

>> It might be an improvement, but AFAIK Flycheck still has an order of a
>> magnitude more checkers.
>>
>> Offhand,
>> https://github.com/mohkale/flymake-collection/tree/release/src/checkers
>> doesn't include anything for Rust or Golang.
>>
>> And Flycheck has several for both.
> 
> This appears to be true, but this is not an inherent advantage, just the
> fact that people have invested effort into it.  It seems to be that a
> significant reason is that Flycheck has a convenient language for
> defining checkers, something that IIUC flymake-collection is also
> working on.  Giving this basis, we could look into perhaps even
> automatically translating the Checker specifications, which would help
> further "obsolete" Flycheck, given that this is apparently the only real
> "advantage" it provides (which again, is not architectural, just the
> accumulated labour over the last decade).

Nobody stops people from working on Flymake, improving the documentation 
and developer experience, and the list of built-in checkers.

In fact, I'm pretty sure this will happen faster with healthy 
competition in sight.

>>>> It also has a minor mode map, to invoke the errors buffer or jump
>>>> between the errors. Though the latter is easy-ish to port over.
>>> I agree, that that is an annoyance.  I have personally bound
>>> `flymake-goto-next-error' and `flymake-goto-prev-error' to M-n and M-p
>>> respectively, but it would be nice if we could find some keys to bind
>>> these commands to.
>>
>> Same.
> 
> I'll look into submitting a bug report to propose such a change.

Very good.

> I wouldn't put it that way, but as mentioned above I do think that
> pushing towards a consistent UI that aligns with Emacs strengths
> (text-based, buffers in windows, ...) is worth the effort, even if some
> projects have to change or die in the process.  E.g. a positive example:
> I added support for the "dumb-jump" to use Xref instead of
> re-implementing the UI with custom commands and popups.  People appear
> to use that now.

Note that when Xref was introduced, there were no existing protocols out 
there, in third-party packages or not, that could be used for the same 
purpose (abstraction over code navigation sources).

A counter-example is Projectile, which predated project.el, and which we 
included in NonGNU ELPA to no particular detriment.

>> Let's remove Helm from NonGNU, then: its UI paradigm is also different
>> from the core Emacs, and IMHO it's rather ugly. And swiper/ivy from
>> ELPA, just because.
> 
> While I am not a fan of Helm, it was initially added to provide popular
> packages that a number of people appeared to want to use.  Luckily these
> packages fall into the category of providing the front-end of a shared
> interface (completing-read; and that not without issues, because they
> tend to abuse completing-read's text expansion idea by focusing on
> narrowing and selecting).

Yes, Helm provides some support for completing-read, but it also has its 
own specific API which is bigger and more tailored for its UI, and is 
the reason there are Helm-specific plugins.

> And yes, there are packages that have hard
> dependencies on Helm, but usually when people submit these kinds of
> packages, we at least mention the idea of trying to generalise them, so
> that the front- and back-end can be disentangled from one another.

We can both accept Flycheck and suggest the maintainers work toward 
someday having a compatible API, at least on the functional level.

> I know that there are differences, and I hope that the situation
> improves, but to mention another negative that probably disqualifies
> adding the package just on its own: `lsp-install-server'.  The command
> can download arbitrary executable files as servers and runs them
> locally.

curl can download arbitrary executable files, and it's still free 
software. The question is which urls are pre-configured.

If we come to consider the inclusion of lsp-mode seriously (meaning, 
there would be some interest from the maintainers), I'm happy to discuss 
requesting that whatever proprietary servers are configured in (I think 
there is 1 proprietary option for PHP among the total 4 available, not 
sure what else) are split off into separate packages that we don't publish.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-20 20:04             ` Dmitry Gutov
@ 2024-02-21 14:38               ` Dmitry Gutov
  2024-02-21 15:02                 ` Stefan Monnier
  2024-02-21 17:01                 ` Adding Flycheck to NonGNU ELPA Philip Kaludercic
  2024-02-21 17:00               ` Philip Kaludercic
  1 sibling, 2 replies; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-21 14:38 UTC (permalink / raw)
  To: Philip Kaludercic, joakim; +Cc: Bozhidar Batsov, Emacs Devel, Stefan Monnier

On 20/02/2024 22:04, Dmitry Gutov wrote:
> On 20/02/2024 13:48, Philip Kaludercic wrote:
> 
>> If Flycheck were to use the same interface as Flymake, then the
>> situation would be better, as it would only be a different UI with
>> perhaps some other priorities.
> 
> Flycheck uses macros to define checkers and output parsers. Perhaps one 
> day those could expand to Flymake's functional interface under the 
> covers, but for that to happen, it would help a lot if we were more 
> welcoming.

So, unless unless there is a strong objection from one of Emacs's head 
maintainers, I think I will commence Flycheck's addition to NonGNU in 
the next few days.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 14:38               ` Dmitry Gutov
@ 2024-02-21 15:02                 ` Stefan Monnier
  2024-02-22 15:50                   ` Dmitry Gutov
  2024-02-21 17:01                 ` Adding Flycheck to NonGNU ELPA Philip Kaludercic
  1 sibling, 1 reply; 55+ messages in thread
From: Stefan Monnier @ 2024-02-21 15:02 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Philip Kaludercic, joakim, Bozhidar Batsov, Emacs Devel

> So, unless unless there is a strong objection from one of Emacs's head
> maintainers, I think I will commence Flycheck's addition to NonGNU in the
> next few days.

That would be very welcome, thanks.


        Stefan




^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-20 20:04             ` Dmitry Gutov
  2024-02-21 14:38               ` Dmitry Gutov
@ 2024-02-21 17:00               ` Philip Kaludercic
  2024-02-21 18:19                 ` Dmitry Gutov
  1 sibling, 1 reply; 55+ messages in thread
From: Philip Kaludercic @ 2024-02-21 17:00 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: joakim, Bozhidar Batsov, Emacs Devel

Dmitry Gutov <dmitry@gutov.dev> writes:

> On 20/02/2024 13:48, Philip Kaludercic wrote:
>
>> If Flycheck were to use the same interface as Flymake, then the
>> situation would be better, as it would only be a different UI with
>> perhaps some other priorities.
>
> Flycheck uses macros to define checkers and output parsers. Perhaps
> one day those could expand to Flymake's functional interface under the
> covers, but for that to happen, it would help a lot if we were more
> welcoming.

That is what flymake-collection is supposedly working on.

>>> It might be an improvement, but AFAIK Flycheck still has an order of a
>>> magnitude more checkers.
>>>
>>> Offhand,
>>> https://github.com/mohkale/flymake-collection/tree/release/src/checkers
>>> doesn't include anything for Rust or Golang.
>>>
>>> And Flycheck has several for both.
>> This appears to be true, but this is not an inherent advantage, just
>> the
>> fact that people have invested effort into it.  It seems to be that a
>> significant reason is that Flycheck has a convenient language for
>> defining checkers, something that IIUC flymake-collection is also
>> working on.  Giving this basis, we could look into perhaps even
>> automatically translating the Checker specifications, which would help
>> further "obsolete" Flycheck, given that this is apparently the only real
>> "advantage" it provides (which again, is not architectural, just the
>> accumulated labour over the last decade).
>
> Nobody stops people from working on Flymake, improving the
> documentation and developer experience, and the list of built-in
> checkers.
>
> In fact, I'm pretty sure this will happen faster with healthy
> competition in sight.

No, but effort is wasted on developing incompatible backends.  If
Flycheck could take a similar route like Company in recommending to
develop against the default/built-in interface (CAPF and Flymake
respectively), then I really wouldn't mind having a second UI, but
considering the misinformation that Flycheck still promote, I don't see
any interest from their side to converge to a common denominator.

>>>>> It also has a minor mode map, to invoke the errors buffer or jump
>>>>> between the errors. Though the latter is easy-ish to port over.
>>>> I agree, that that is an annoyance.  I have personally bound
>>>> `flymake-goto-next-error' and `flymake-goto-prev-error' to M-n and M-p
>>>> respectively, but it would be nice if we could find some keys to bind
>>>> these commands to.
>>>
>>> Same.
>> I'll look into submitting a bug report to propose such a change.
>
> Very good.
>
>> I wouldn't put it that way, but as mentioned above I do think that
>> pushing towards a consistent UI that aligns with Emacs strengths
>> (text-based, buffers in windows, ...) is worth the effort, even if some
>> projects have to change or die in the process.  E.g. a positive example:
>> I added support for the "dumb-jump" to use Xref instead of
>> re-implementing the UI with custom commands and popups.  People appear
>> to use that now.
>
> Note that when Xref was introduced, there were no existing protocols
> out there, in third-party packages or not, that could be used for the
> same purpose (abstraction over code navigation sources).

True, but that only made it easier.  If there had been some MELPA
package called "jumpy" of whatever, then some packages would support
xref, the others "jumpy", others again would have to try and support
both.  People would constantly be asking "what is the difference between
xref and jumpy", and others again wouldn't notice xref at all because
they assume that every feature in Emacs has to be installed via some
external package.

This also reminds me of another point: Xref, Flymake, CAPF, ... are all
interfaces, that don't have to bring with them implementations for all
kinds of languages.  That is the job of a major mode, and it is a lot
more reasonable for a major mode to implement this interface, if
provided by a core package, than if they had to use an third-party
package that is not even part of GNU ELPA.

> A counter-example is Projectile, which predated project.el, and which
> we included in NonGNU ELPA to no particular detriment.

FWIW I think having "Projectile" is a mistake as well (I didn't want to
voice the position at the time, because people were still belittling
NonGNU ELPA at the time), but at least the effect is not that
significant since it appears that not that many Projectile-based
packages?

>>> Let's remove Helm from NonGNU, then: its UI paradigm is also different
>>> from the core Emacs, and IMHO it's rather ugly. And swiper/ivy from
>>> ELPA, just because.
>> While I am not a fan of Helm, it was initially added to provide
>> popular
>> packages that a number of people appeared to want to use.  Luckily these
>> packages fall into the category of providing the front-end of a shared
>> interface (completing-read; and that not without issues, because they
>> tend to abuse completing-read's text expansion idea by focusing on
>> narrowing and selecting).
>
> Yes, Helm provides some support for completing-read, but it also has
> its own specific API which is bigger and more tailored for its UI, and
> is the reason there are Helm-specific plugins.

I know, having this kind of a parallel society of functionality is sad,
but as I said, it is a consequence of the way `completing-read' is used
and misunderstood.

Communicating with the package developers of these selection frameworks
to create a new interface would be an interesting task.

>> And yes, there are packages that have hard
>> dependencies on Helm, but usually when people submit these kinds of
>> packages, we at least mention the idea of trying to generalise them, so
>> that the front- and back-end can be disentangled from one another.
>
> We can both accept Flycheck and suggest the maintainers work toward
> someday having a compatible API, at least on the functional level.

I'd say that should be the sine qua non.  If I could decide, Flycheck
should be reduced to a UI, their interface should be deprecated and the
backends translated to Flymake.  That would have the best long-term
consequences for users.  But adding Flycheck just like that will
certainly just perpetuate the unnecessary schism and confusion.

>> I know that there are differences, and I hope that the situation
>> improves, but to mention another negative that probably disqualifies
>> adding the package just on its own: `lsp-install-server'.  The command
>> can download arbitrary executable files as servers and runs them
>> locally.
>
> curl can download arbitrary executable files, and it's still free
> software. The question is which urls are pre-configured.

The objection is not that lsp-mode is not free software, it is that it
doesn't respect their users by downloading arbitrary binaries from the
net and running them on their own machines, even if all the servers were
free (which I don't know, I haven't checked all of them).

> If we come to consider the inclusion of lsp-mode seriously (meaning,
> there would be some interest from the maintainers), I'm happy to
> discuss requesting that whatever proprietary servers are configured in
> (I think there is 1 proprietary option for PHP among the total 4
> available, not sure what else) are split off into separate packages
> that we don't publish.

My impression of the lsp-mode maintainers is that they have no interest
in collaborating with core development.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 14:38               ` Dmitry Gutov
  2024-02-21 15:02                 ` Stefan Monnier
@ 2024-02-21 17:01                 ` Philip Kaludercic
  2024-02-21 17:38                   ` Dmitry Gutov
  2024-02-21 17:40                   ` Stefan Monnier
  1 sibling, 2 replies; 55+ messages in thread
From: Philip Kaludercic @ 2024-02-21 17:01 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: joakim, Bozhidar Batsov, Emacs Devel, Stefan Monnier

Dmitry Gutov <dmitry@gutov.dev> writes:

> On 20/02/2024 22:04, Dmitry Gutov wrote:
>> On 20/02/2024 13:48, Philip Kaludercic wrote:
>> 
>>> If Flycheck were to use the same interface as Flymake, then the
>>> situation would be better, as it would only be a different UI with
>>> perhaps some other priorities.
>> Flycheck uses macros to define checkers and output parsers. Perhaps
>> one day those could expand to Flymake's functional interface under
>> the covers, but for that to happen, it would help a lot if we were
>> more welcoming.
>
> So, unless unless there is a strong objection from one of Emacs's head
> maintainers, I think I will commence Flycheck's addition to NonGNU in
> the next few days.

Before taking this step, can we please discuss the possibility of
creating a uniform interface?  As mentioned in my previous message, this
is the crux of my complaint, and I don't even know what Bozhidar
position on the matter is.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 17:01                 ` Adding Flycheck to NonGNU ELPA Philip Kaludercic
@ 2024-02-21 17:38                   ` Dmitry Gutov
  2024-02-21 18:05                     ` Philip Kaludercic
  2024-02-21 17:40                   ` Stefan Monnier
  1 sibling, 1 reply; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-21 17:38 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: joakim, Bozhidar Batsov, Emacs Devel, Stefan Monnier

On 21/02/2024 19:01, Philip Kaludercic wrote:
> Dmitry Gutov<dmitry@gutov.dev>  writes:
> 
>> On 20/02/2024 22:04, Dmitry Gutov wrote:
>>> On 20/02/2024 13:48, Philip Kaludercic wrote:
>>>
>>>> If Flycheck were to use the same interface as Flymake, then the
>>>> situation would be better, as it would only be a different UI with
>>>> perhaps some other priorities.
>>> Flycheck uses macros to define checkers and output parsers. Perhaps
>>> one day those could expand to Flymake's functional interface under
>>> the covers, but for that to happen, it would help a lot if we were
>>> more welcoming.
>> So, unless unless there is a strong objection from one of Emacs's head
>> maintainers, I think I will commence Flycheck's addition to NonGNU in
>> the next few days.
> Before taking this step, can we please discuss the possibility of
> creating a uniform interface?  As mentioned in my previous message, this
> is the crux of my complaint, and I don't even know what Bozhidar
> position on the matter is.

We've discussed it. Such possibility exists.

If we're going to make the implementation of it as a prerequisite for 
merging, however, I imagine that's just not going to happen. Flycheck's 
contributors will go back to their own bubble, and we'll stay in ours.

Those are my expectations both from experience, and from the current 
mood of the people involved.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 17:01                 ` Adding Flycheck to NonGNU ELPA Philip Kaludercic
  2024-02-21 17:38                   ` Dmitry Gutov
@ 2024-02-21 17:40                   ` Stefan Monnier
  1 sibling, 0 replies; 55+ messages in thread
From: Stefan Monnier @ 2024-02-21 17:40 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: Dmitry Gutov, joakim, Bozhidar Batsov, Emacs Devel

> Before taking this step, can we please discuss the possibility of
> creating a uniform interface?

That's orthogonal.


        Stefan




^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 17:38                   ` Dmitry Gutov
@ 2024-02-21 18:05                     ` Philip Kaludercic
  2024-02-21 18:07                       ` Dmitry Gutov
  2024-02-21 18:14                       ` Stefan Monnier
  0 siblings, 2 replies; 55+ messages in thread
From: Philip Kaludercic @ 2024-02-21 18:05 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: joakim, Bozhidar Batsov, Emacs Devel, Stefan Monnier

Dmitry Gutov <dmitry@gutov.dev> writes:

> On 21/02/2024 19:01, Philip Kaludercic wrote:
>> Dmitry Gutov<dmitry@gutov.dev>  writes:
>> 
>>> On 20/02/2024 22:04, Dmitry Gutov wrote:
>>>> On 20/02/2024 13:48, Philip Kaludercic wrote:
>>>>
>>>>> If Flycheck were to use the same interface as Flymake, then the
>>>>> situation would be better, as it would only be a different UI with
>>>>> perhaps some other priorities.
>>>> Flycheck uses macros to define checkers and output parsers. Perhaps
>>>> one day those could expand to Flymake's functional interface under
>>>> the covers, but for that to happen, it would help a lot if we were
>>>> more welcoming.
>>> So, unless unless there is a strong objection from one of Emacs's head
>>> maintainers, I think I will commence Flycheck's addition to NonGNU in
>>> the next few days.
>> Before taking this step, can we please discuss the possibility of
>> creating a uniform interface?  As mentioned in my previous message,
>> this
>> is the crux of my complaint, and I don't even know what Bozhidar
>> position on the matter is.
>
> We've discussed it. Such possibility exists.

Who is we?

> If we're going to make the implementation of it as a prerequisite for
> merging, however, I imagine that's just not going to
> happen. Flycheck's contributors will go back to their own bubble, and
> we'll stay in ours.

As you might guess, I don't consider this a problem.

> Those are my expectations both from experience, and from the current
> mood of the people involved.

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> Before taking this step, can we please discuss the possibility of
>> creating a uniform interface?
>
> That's orthogonal.

Not if the Flycheck maintainers have no interest, or are even opposed to
it.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 18:05                     ` Philip Kaludercic
@ 2024-02-21 18:07                       ` Dmitry Gutov
  2024-02-21 18:14                       ` Stefan Monnier
  1 sibling, 0 replies; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-21 18:07 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: joakim, Bozhidar Batsov, Emacs Devel, Stefan Monnier

On 21/02/2024 20:05, Philip Kaludercic wrote:

>> We've discussed it. Such possibility exists.
> 
> Who is we?

People in this thread. Mostly in public, and just a tiny bit in private.

>> If we're going to make the implementation of it as a prerequisite for
>> merging, however, I imagine that's just not going to
>> happen. Flycheck's contributors will go back to their own bubble, and
>> we'll stay in ours.
> 
> As you might guess, I don't consider this a problem.

I'm sorry to hear that.

>>> Before taking this step, can we please discuss the possibility of
>>> creating a uniform interface?
>>
>> That's orthogonal.
> 
> Not if the Flycheck maintainers have no interest, or are even opposed to
> it.

Let's attract them with honey, shouldn't we?



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 18:05                     ` Philip Kaludercic
  2024-02-21 18:07                       ` Dmitry Gutov
@ 2024-02-21 18:14                       ` Stefan Monnier
  2024-02-21 21:19                         ` Stefan Kangas
  1 sibling, 1 reply; 55+ messages in thread
From: Stefan Monnier @ 2024-02-21 18:14 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: Dmitry Gutov, joakim, Bozhidar Batsov, Emacs Devel

>>> Before taking this step, can we please discuss the possibility of
>>> creating a uniform interface?
>> That's orthogonal.
> Not if the Flycheck maintainers have no interest, or are even opposed to
> it.

Of course it's orthogonal.

Flycheck is a package that's well-written, popular, well-maintained, and
that respects the users's freedom, so there's no reason not to include
it in NonGNU ELPA, regardless if it comes with some bridge for Flymake.

But I'll grant you that it's not 100% orthogonal: If we want to get
a uniform interface between the two, the first thing to do would be to
encourage cooperation rather than to put up barriers, so including it in
NonGNU ELPA could help.


        Stefan




^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 17:00               ` Philip Kaludercic
@ 2024-02-21 18:19                 ` Dmitry Gutov
  2024-02-21 21:24                   ` Bozhidar Batsov
  0 siblings, 1 reply; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-21 18:19 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: joakim, Bozhidar Batsov, Emacs Devel

On 21/02/2024 19:00, Philip Kaludercic wrote:
> Dmitry Gutov <dmitry@gutov.dev> writes:
> 
>> On 20/02/2024 13:48, Philip Kaludercic wrote:
>>
>>> If Flycheck were to use the same interface as Flymake, then the
>>> situation would be better, as it would only be a different UI with
>>> perhaps some other priorities.
>>
>> Flycheck uses macros to define checkers and output parsers. Perhaps
>> one day those could expand to Flymake's functional interface under the
>> covers, but for that to happen, it would help a lot if we were more
>> welcoming.
> 
> That is what flymake-collection is supposedly working on.

Should I point out that Flycheck's staying out of built-in ELPA sources 
still didn't help Flymake grow a comparable library of checkers during 
the years that passed?

Mohsin's efforts are commendable, but I don't think either will take 
away from another. Because anyway, when writing a checker the hard[er] 
part is determining which commands to use and with which arguments, 
rather than the code that does it (which is normally fairly similar 
between checkers). Porting them over in either direction is easy enough.

> No, but effort is wasted on developing incompatible backends.  If
> Flycheck could take a similar route like Company in recommending to
> develop against the default/built-in interface (CAPF and Flymake
> respectively), then I really wouldn't mind having a second UI, but
> considering the misinformation that Flycheck still promote, I don't see
> any interest from their side to converge to a common denominator.

If there is wrong information in their public documentation or 
statements, we definitely should ask them to issue corrections.

>> Note that when Xref was introduced, there were no existing protocols
>> out there, in third-party packages or not, that could be used for the
>> same purpose (abstraction over code navigation sources).
> 
> True, but that only made it easier.  If there had been some MELPA
> package called "jumpy" of whatever, then some packages would support
> xref, the others "jumpy", others again would have to try and support
> both.  People would constantly be asking "what is the difference between
> xref and jumpy", and others again wouldn't notice xref at all because
> they assume that every feature in Emacs has to be installed via some
> external package.

Yes, people indeed ask questions. Just like they asked about the 
difference between lsp-mode and eglot, and still continue to do so. That 
did spur better competition for a time, with both sides playing catchup 
in different aspects.

I don't see how anybody is going to stop asking about Flycheck vs 
Flymake--they're still doing it now. And Flycheck has much better 
visibility in the community anyway.

> This also reminds me of another point: Xref, Flymake, CAPF, ... are all
> interfaces, that don't have to bring with them implementations for all
> kinds of languages.  That is the job of a major mode, and it is a lot
> more reasonable for a major mode to implement this interface, if
> provided by a core package, than if they had to use an third-party
> package that is not even part of GNU ELPA.

It's a good argument which would have probably worked better if the 
difference in development speed and release frequency between core Emacs 
and 3rd party packages weren't so big.

But we can still use it to encourage potential contributors to take up 
the effort.

One of the handy bits that Flycheck has, though, it the provision of 
several checkers for many of the languages. And (I think?) and interface 
the switch between them. That might not fit the major-mode-hook model so 
neatly; with Flymake, we usually limit ourselves to automatic detection 
and failover.

>>> I know that there are differences, and I hope that the situation
>>> improves, but to mention another negative that probably disqualifies
>>> adding the package just on its own: `lsp-install-server'.  The command
>>> can download arbitrary executable files as servers and runs them
>>> locally.
>>
>> curl can download arbitrary executable files, and it's still free
>> software. The question is which urls are pre-configured.
> 
> The objection is not that lsp-mode is not free software, it is that it
> doesn't respect their users by downloading arbitrary binaries from the
> net and running them on their own machines, even if all the servers were
> free (which I don't know, I haven't checked all of them).

I'm pretty sure it only does that when asked. And if said software is 
FLOSS, I don't see the problem--finding the sources is easy enough.

>> If we come to consider the inclusion of lsp-mode seriously (meaning,
>> there would be some interest from the maintainers), I'm happy to
>> discuss requesting that whatever proprietary servers are configured in
>> (I think there is 1 proprietary option for PHP among the total 4
>> available, not sure what else) are split off into separate packages
>> that we don't publish.
> 
> My impression of the lsp-mode maintainers is that they have no interest
> in collaborating with core development.

Not at the moment, and there are pretty obvious factors playing into it. 
But we should leave that door open.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 18:14                       ` Stefan Monnier
@ 2024-02-21 21:19                         ` Stefan Kangas
  2024-02-21 21:46                           ` Bozhidar Batsov
                                             ` (2 more replies)
  0 siblings, 3 replies; 55+ messages in thread
From: Stefan Kangas @ 2024-02-21 21:19 UTC (permalink / raw)
  To: Stefan Monnier, Philip Kaludercic
  Cc: Dmitry Gutov, joakim, Bozhidar Batsov, Emacs Devel, Steve Purcell

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> Flycheck is a package that's well-written, popular, well-maintained, and
> that respects the users's freedom, so there's no reason not to include
> it in NonGNU ELPA, regardless if it comes with some bridge for Flymake.

Agreed.

> But I'll grant you that it's not 100% orthogonal: If we want to get
> a uniform interface between the two, the first thing to do would be to
> encourage cooperation rather than to put up barriers, so including it in
> NonGNU ELPA could help.

Yup.  Historical kerfuffles notwithstanding, more collaboration and
interoperability can only help, whether or not that means that the
friendly competition[1] between flymake and flycheck remains or not.

One idea would be to change flymake so that it can support flycheck
backends natively, without needing any third-party packages.  That would
already go a long way to decrease the differences between the two
packages.  I'd definitely encourage work on that.

Another thing is that we could use a good built-in macro to define
flymake backends.

Perhaps Steve Purcell (added to CC) could be convinced to contribute his
excellent flymake-flycheck[2] and flymake-easy[3] packages to core?
This would kill two (or more) birds with one stone, and also remove some
of the gripes that some users have with flymake.

Footnotes:
[1]  If it hasn't always been friendly in the past, there's no reason not
     to work on making sure it's friendly going forward.

[2]  https://github.com/purcell/flymake-flycheck

[3]  https://github.com/purcell/flymake-easy



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 18:19                 ` Dmitry Gutov
@ 2024-02-21 21:24                   ` Bozhidar Batsov
  0 siblings, 0 replies; 55+ messages in thread
From: Bozhidar Batsov @ 2024-02-21 21:24 UTC (permalink / raw)
  To: Dmitry Gutov, Philip Kaludercic; +Cc: joakim, Emacs Devel

[-- Attachment #1: Type: text/plain, Size: 5826 bytes --]

I also think we're discussing some orthogonal issues here. Let's take things one step at a time - I'm open to discussing whatever concerns some people have about Flycheck and some form of collaboration with Flymake (e.g. common standard for checker definitions) down the road. 

Thanks to Dmitry and Stefan for supporting the inclusion of Flycheck to NonGNU ELPA!  

On Wed, Feb 21, 2024, at 7:19 PM, Dmitry Gutov wrote:
> On 21/02/2024 19:00, Philip Kaludercic wrote:
> > Dmitry Gutov <dmitry@gutov.dev> writes:
> > 
> >> On 20/02/2024 13:48, Philip Kaludercic wrote:
> >>
> >>> If Flycheck were to use the same interface as Flymake, then the
> >>> situation would be better, as it would only be a different UI with
> >>> perhaps some other priorities.
> >>
> >> Flycheck uses macros to define checkers and output parsers. Perhaps
> >> one day those could expand to Flymake's functional interface under the
> >> covers, but for that to happen, it would help a lot if we were more
> >> welcoming.
> > 
> > That is what flymake-collection is supposedly working on.
> 
> Should I point out that Flycheck's staying out of built-in ELPA sources 
> still didn't help Flymake grow a comparable library of checkers during 
> the years that passed?
> 
> Mohsin's efforts are commendable, but I don't think either will take 
> away from another. Because anyway, when writing a checker the hard[er] 
> part is determining which commands to use and with which arguments, 
> rather than the code that does it (which is normally fairly similar 
> between checkers). Porting them over in either direction is easy enough.
> 
> > No, but effort is wasted on developing incompatible backends.  If
> > Flycheck could take a similar route like Company in recommending to
> > develop against the default/built-in interface (CAPF and Flymake
> > respectively), then I really wouldn't mind having a second UI, but
> > considering the misinformation that Flycheck still promote, I don't see
> > any interest from their side to converge to a common denominator.
> 
> If there is wrong information in their public documentation or 
> statements, we definitely should ask them to issue corrections.
> 
> >> Note that when Xref was introduced, there were no existing protocols
> >> out there, in third-party packages or not, that could be used for the
> >> same purpose (abstraction over code navigation sources).
> > 
> > True, but that only made it easier.  If there had been some MELPA
> > package called "jumpy" of whatever, then some packages would support
> > xref, the others "jumpy", others again would have to try and support
> > both.  People would constantly be asking "what is the difference between
> > xref and jumpy", and others again wouldn't notice xref at all because
> > they assume that every feature in Emacs has to be installed via some
> > external package.
> 
> Yes, people indeed ask questions. Just like they asked about the 
> difference between lsp-mode and eglot, and still continue to do so. That 
> did spur better competition for a time, with both sides playing catchup 
> in different aspects.
> 
> I don't see how anybody is going to stop asking about Flycheck vs 
> Flymake--they're still doing it now. And Flycheck has much better 
> visibility in the community anyway.
> 
> > This also reminds me of another point: Xref, Flymake, CAPF, ... are all
> > interfaces, that don't have to bring with them implementations for all
> > kinds of languages.  That is the job of a major mode, and it is a lot
> > more reasonable for a major mode to implement this interface, if
> > provided by a core package, than if they had to use an third-party
> > package that is not even part of GNU ELPA.
> 
> It's a good argument which would have probably worked better if the 
> difference in development speed and release frequency between core Emacs 
> and 3rd party packages weren't so big.
> 
> But we can still use it to encourage potential contributors to take up 
> the effort.
> 
> One of the handy bits that Flycheck has, though, it the provision of 
> several checkers for many of the languages. And (I think?) and interface 
> the switch between them. That might not fit the major-mode-hook model so 
> neatly; with Flymake, we usually limit ourselves to automatic detection 
> and failover.
> 
> >>> I know that there are differences, and I hope that the situation
> >>> improves, but to mention another negative that probably disqualifies
> >>> adding the package just on its own: `lsp-install-server'.  The command
> >>> can download arbitrary executable files as servers and runs them
> >>> locally.
> >>
> >> curl can download arbitrary executable files, and it's still free
> >> software. The question is which urls are pre-configured.
> > 
> > The objection is not that lsp-mode is not free software, it is that it
> > doesn't respect their users by downloading arbitrary binaries from the
> > net and running them on their own machines, even if all the servers were
> > free (which I don't know, I haven't checked all of them).
> 
> I'm pretty sure it only does that when asked. And if said software is 
> FLOSS, I don't see the problem--finding the sources is easy enough.
> 
> >> If we come to consider the inclusion of lsp-mode seriously (meaning,
> >> there would be some interest from the maintainers), I'm happy to
> >> discuss requesting that whatever proprietary servers are configured in
> >> (I think there is 1 proprietary option for PHP among the total 4
> >> available, not sure what else) are split off into separate packages
> >> that we don't publish.
> > 
> > My impression of the lsp-mode maintainers is that they have no interest
> > in collaborating with core development.
> 
> Not at the moment, and there are pretty obvious factors playing into it. 
> But we should leave that door open.
> 
> 

[-- Attachment #2: Type: text/html, Size: 7883 bytes --]

^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 21:19                         ` Stefan Kangas
@ 2024-02-21 21:46                           ` Bozhidar Batsov
  2024-02-21 23:39                           ` Stefan Monnier
  2024-02-22  3:16                           ` Dmitry Gutov
  2 siblings, 0 replies; 55+ messages in thread
From: Bozhidar Batsov @ 2024-02-21 21:46 UTC (permalink / raw)
  To: Stefan Kangas, Stefan Monnier, Philip Kaludercic
  Cc: Dmitry Gutov, joakim, Emacs Devel, Steve Purcell

[-- Attachment #1: Type: text/plain, Size: 2612 bytes --]

> One idea would be to change flymake so that it can support flycheck
> backends natively, without needing any third-party packages.  That would
> already go a long way to decrease the differences between the two
> packages.  I'd definitely encourage work on that.
> 
> Another thing is that we could use a good built-in macro to define
> flymake backends.
> 
> Perhaps Steve Purcell (added to CC) could be convinced to contribute his
> excellent flymake-flycheck[2] and flymake-easy[3] packages to core?
> This would kill two (or more) birds with one stone, and also remove some
> of the gripes that some users have with flymake.

Pretty reasonable ideas IMO. 

> Yup.  Historical kerfuffles notwithstanding, more collaboration and
> interoperability can only help, whether or not that means that the
> friendly competition[1] between flymake and flycheck remains or not.

No argument from me. 

On Wed, Feb 21, 2024, at 10:19 PM, Stefan Kangas wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
> 
> > Flycheck is a package that's well-written, popular, well-maintained, and
> > that respects the users's freedom, so there's no reason not to include
> > it in NonGNU ELPA, regardless if it comes with some bridge for Flymake.
> 
> Agreed.
> 
> > But I'll grant you that it's not 100% orthogonal: If we want to get
> > a uniform interface between the two, the first thing to do would be to
> > encourage cooperation rather than to put up barriers, so including it in
> > NonGNU ELPA could help.
> 
> Yup.  Historical kerfuffles notwithstanding, more collaboration and
> interoperability can only help, whether or not that means that the
> friendly competition[1] between flymake and flycheck remains or not.
> 
> One idea would be to change flymake so that it can support flycheck
> backends natively, without needing any third-party packages.  That would
> already go a long way to decrease the differences between the two
> packages.  I'd definitely encourage work on that.
> 
> Another thing is that we could use a good built-in macro to define
> flymake backends.
> 
> Perhaps Steve Purcell (added to CC) could be convinced to contribute his
> excellent flymake-flycheck[2] and flymake-easy[3] packages to core?
> This would kill two (or more) birds with one stone, and also remove some
> of the gripes that some users have with flymake.
> 
> Footnotes:
> [1]  If it hasn't always been friendly in the past, there's no reason not
>      to work on making sure it's friendly going forward.
> 
> [2]  https://github.com/purcell/flymake-flycheck
> 
> [3]  https://github.com/purcell/flymake-easy
> 
> 

[-- Attachment #2: Type: text/html, Size: 3931 bytes --]

^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 21:19                         ` Stefan Kangas
  2024-02-21 21:46                           ` Bozhidar Batsov
@ 2024-02-21 23:39                           ` Stefan Monnier
  2024-02-22  9:15                             ` Stefan Kangas
  2024-02-22  3:16                           ` Dmitry Gutov
  2 siblings, 1 reply; 55+ messages in thread
From: Stefan Monnier @ 2024-02-21 23:39 UTC (permalink / raw)
  To: Stefan Kangas
  Cc: Philip Kaludercic, Dmitry Gutov, joakim, Bozhidar Batsov,
	Emacs Devel, Steve Purcell

> Perhaps Steve Purcell (added to CC) could be convinced to contribute his
> excellent flymake-flycheck[2] and flymake-easy[3] packages to core?

We could start by adding them to GNU ELPA.

Adding things in core can make things more complicated (e.g. if development
keeps happening outside of core, synchronization between the two can't
be fully automatic, and if we want to release ELPA packages from core,
it requires extra care when working in core to try and avoid adding
dependencies by accident, like I did recently with `map.el`).


        Stefan




^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 21:19                         ` Stefan Kangas
  2024-02-21 21:46                           ` Bozhidar Batsov
  2024-02-21 23:39                           ` Stefan Monnier
@ 2024-02-22  3:16                           ` Dmitry Gutov
  2024-02-22  7:15                             ` Bozhidar Batsov
  2024-02-22 10:14                             ` Steve Purcell
  2 siblings, 2 replies; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-22  3:16 UTC (permalink / raw)
  To: Stefan Kangas, Stefan Monnier, Philip Kaludercic
  Cc: joakim, Bozhidar Batsov, Emacs Devel, Steve Purcell

On 21/02/2024 23:19, Stefan Kangas wrote:

> Another thing is that we could use a good built-in macro to define
> flymake backends.
> 
> Perhaps Steve Purcell (added to CC) could be convinced to contribute his
> excellent flymake-flycheck[2] and flymake-easy[3] packages to core?
> This would kill two (or more) birds with one stone, and also remove some
> of the gripes that some users have with flymake.

There doesn't seem much point in having flymake-flycheck in the core 
when flycheck is still required to use most of its backends (they're 
part of the package). It also depends on flycheck at runtime anyway.

flymake-easy has another problem: IIUC it hasn't been updated for 10 
years, and as such only uses the obsolete Flymake protocol (one we keep 
in flymake-proc.el for compatibility). It also employs defadvice.

Back to flymake-flycheck, I wonder if it would be a better idea to have 
it as part of the flycheck package itself (fewer things to install and 
enable separately). But then it's not obvious at which point the 
checkers should be made available to flymake. If that happens when 
flycheck-mode is enabled, that would be too late: at that point the user 
has seemingly indicated that they want to use flycheck as UI as well.

> [2]  https://github.com/purcell/flymake-flycheck
> 
> [3]  https://github.com/purcell/flymake-easy




^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-22  3:16                           ` Dmitry Gutov
@ 2024-02-22  7:15                             ` Bozhidar Batsov
  2024-02-22 10:15                               ` Steve Purcell
  2024-02-22 11:54                               ` Dmitry Gutov
  2024-02-22 10:14                             ` Steve Purcell
  1 sibling, 2 replies; 55+ messages in thread
From: Bozhidar Batsov @ 2024-02-22  7:15 UTC (permalink / raw)
  To: Dmitry Gutov, Stefan Kangas, Stefan Monnier, Philip Kaludercic
  Cc: joakim, Emacs Devel, Steve Purcell

[-- Attachment #1: Type: text/plain, Size: 1869 bytes --]

I can look at the options here at a later point. I haven't had much time to think about the future, given that I've assumed the Flycheck maintenance relatively soon. My short-term focus is harvesting some low-hanging fruit (like the package inclusion on NonGNU ELPA).

Compiling a reasonable long-term vision for the future (including some form of built-in interop with Flymake) will take some time and I think it'd better to discuss this separately.

> On 21/02/2024 23:19, Stefan Kangas wrote:
> 
> > Another thing is that we could use a good built-in macro to define
> > flymake backends.
> > 
> > Perhaps Steve Purcell (added to CC) could be convinced to contribute his
> > excellent flymake-flycheck[2] and flymake-easy[3] packages to core?
> > This would kill two (or more) birds with one stone, and also remove some
> > of the gripes that some users have with flymake.
> 
> There doesn't seem much point in having flymake-flycheck in the core 
> when flycheck is still required to use most of its backends (they're 
> part of the package). It also depends on flycheck at runtime anyway.
> 
> flymake-easy has another problem: IIUC it hasn't been updated for 10 
> years, and as such only uses the obsolete Flymake protocol (one we keep 
> in flymake-proc.el for compatibility). It also employs defadvice.
> 
> Back to flymake-flycheck, I wonder if it would be a better idea to have 
> it as part of the flycheck package itself (fewer things to install and 
> enable separately). But then it's not obvious at which point the 
> checkers should be made available to flymake. If that happens when 
> flycheck-mode is enabled, that would be too late: at that point the user 
> has seemingly indicated that they want to use flycheck as UI as well.
> 
> > [2]  https://github.com/purcell/flymake-flycheck
> > 
> > [3]  https://github.com/purcell/flymake-easy
> 
> 
> 

[-- Attachment #2: Type: text/html, Size: 2719 bytes --]

^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-20 11:48           ` Philip Kaludercic
  2024-02-20 20:04             ` Dmitry Gutov
@ 2024-02-22  8:41             ` Thierry Volpiatto
  2024-02-22 11:57               ` Dmitry Gutov
  2024-02-22  9:03             ` Po Lu
  2 siblings, 1 reply; 55+ messages in thread
From: Thierry Volpiatto @ 2024-02-22  8:41 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: joakim, Dmitry Gutov, Bozhidar Batsov, Emacs Devel

Philip Kaludercic <philipk@posteo.net> writes:

>> Let's remove Helm from NonGNU, then: its UI paradigm is also different
>> from the core Emacs, and IMHO it's rather ugly.

[Not sure who wrote this] but anyway,

saying a package is ugly just because it provides a different UI than
Emacs is unfair at best.  Helm is and is still one of the best
completion package (but not only) around here and I made a lot of work
for this, so please be respectful of my work or provide constructive critics.

>> And swiper/ivy from ELPA, just because.

Same here, a very good package and there is a lot of work behind this, so...

> While I am not a fan of Helm, it was initially added to provide popular
> packages that a number of people appeared to want to use.  Luckily these
> packages fall into the category of providing the front-end of a shared
> interface (completing-read; and that not without issues, because they
> tend to abuse completing-read's text expansion idea by focusing on
> narrowing and selecting).  And yes, there are packages that have hard
> dependencies on Helm, but usually when people submit these kinds of
> packages, we at least mention the idea of trying to generalise them, so
> that the front- and back-end can be disentangled from one another.

Helm is providing a full support on Emacs completion mechanism
(completing-read, completion-in-region etc...), Emacs
styles included.

-- 
Thierry



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-20 11:48           ` Philip Kaludercic
  2024-02-20 20:04             ` Dmitry Gutov
  2024-02-22  8:41             ` Thierry Volpiatto
@ 2024-02-22  9:03             ` Po Lu
  2 siblings, 0 replies; 55+ messages in thread
From: Po Lu @ 2024-02-22  9:03 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: joakim, Dmitry Gutov, Bozhidar Batsov, Emacs Devel

Philip Kaludercic <philipk@posteo.net> writes:

> I wouldn't put it that way, but as mentioned above I do think that
> pushing towards a consistent UI that aligns with Emacs strengths
> (text-based, buffers in windows, ...) is worth the effort, even if some
> projects have to change or die in the process.  E.g. a positive example:
> I added support for the "dumb-jump" to use Xref instead of
> re-implementing the UI with custom commands and popups.  People appear
> to use that now.

These are all valid considerations with packages destined for Emacs, but
our standards for NonGNU ELPA should be drastically the opposite, and
much more accommodating.  So long as a package works and doesn't
infringe on the GNU project's basic non-negotiable requirements, there's
little reason to delay uploading packages to allow time for implementing
adjustments we propose.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 23:39                           ` Stefan Monnier
@ 2024-02-22  9:15                             ` Stefan Kangas
  0 siblings, 0 replies; 55+ messages in thread
From: Stefan Kangas @ 2024-02-22  9:15 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: Philip Kaludercic, Dmitry Gutov, joakim, Bozhidar Batsov,
	Emacs Devel, Steve Purcell

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> Perhaps Steve Purcell (added to CC) could be convinced to contribute his
>> excellent flymake-flycheck[2] and flymake-easy[3] packages to core?
>
> We could start by adding them to GNU ELPA.
>
> Adding things in core can make things more complicated (e.g. if development
> keeps happening outside of core, synchronization between the two can't
> be fully automatic, and if we want to release ELPA packages from core,
> it requires extra care when working in core to try and avoid adding
> dependencies by accident, like I did recently with `map.el`).

No objections here.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-22  3:16                           ` Dmitry Gutov
  2024-02-22  7:15                             ` Bozhidar Batsov
@ 2024-02-22 10:14                             ` Steve Purcell
  2024-02-22 14:29                               ` Dmitry Gutov
  1 sibling, 1 reply; 55+ messages in thread
From: Steve Purcell @ 2024-02-22 10:14 UTC (permalink / raw)
  To: Dmitry Gutov
  Cc: Stefan Kangas, Stefan Monnier, Philip Kaludercic, joakim,
	Bozhidar Batsov, Emacs Devel



> On 22 Feb 2024, at 03:16, Dmitry Gutov <dmitry@gutov.dev> wrote:
> 
> flymake-easy has another problem: IIUC it hasn't been updated for 10 years, and as such only uses the obsolete Flymake protocol (one we keep in flymake-proc.el for compatibility). It also employs defadvice.


The defadvice issue is easily fixed, but in general I can’t tell if the package is defunct or would still be useful for people if it had a refresh. I suspect the latter.




^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-22  7:15                             ` Bozhidar Batsov
@ 2024-02-22 10:15                               ` Steve Purcell
  2024-02-22 11:54                               ` Dmitry Gutov
  1 sibling, 0 replies; 55+ messages in thread
From: Steve Purcell @ 2024-02-22 10:15 UTC (permalink / raw)
  To: Bozhidar Batsov
  Cc: Dmitry Gutov, Stefan Kangas, Stefan Monnier, Philip Kaludercic,
	joakim, Emacs Devel

[-- Attachment #1: Type: text/plain, Size: 605 bytes --]



> On 22 Feb 2024, at 07:15, Bozhidar Batsov <bozhidar@batsov.dev> wrote:
> 
> I can look at the options here at a later point. I haven't had much time to think about the future, given that I've assumed the Flycheck maintenance relatively soon. My short-term focus is harvesting some low-hanging fruit (like the package inclusion on NonGNU ELPA).
> 
> Compiling a reasonable long-term vision for the future (including some form of built-in interop with Flymake) will take some time and I think it'd better to discuss this separately.


Agree, happy to be pulled into any discussions if it helps.

[-- Attachment #2: Type: text/html, Size: 1985 bytes --]

^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-22  7:15                             ` Bozhidar Batsov
  2024-02-22 10:15                               ` Steve Purcell
@ 2024-02-22 11:54                               ` Dmitry Gutov
  1 sibling, 0 replies; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-22 11:54 UTC (permalink / raw)
  To: Bozhidar Batsov, Stefan Kangas, Stefan Monnier, Philip Kaludercic
  Cc: joakim, Emacs Devel, Steve Purcell

On 22/02/2024 09:15, Bozhidar Batsov wrote:
> 
> Compiling a reasonable long-term vision for the future (including some 
> form of built-in interop with Flymake) will take some time and I think 
> it'd better to discuss this separately.

Naturally.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-22  8:41             ` Thierry Volpiatto
@ 2024-02-22 11:57               ` Dmitry Gutov
  0 siblings, 0 replies; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-22 11:57 UTC (permalink / raw)
  To: Thierry Volpiatto, Philip Kaludercic; +Cc: joakim, Bozhidar Batsov, Emacs Devel

On 22/02/2024 10:41, Thierry Volpiatto wrote:
> Philip Kaludercic <philipk@posteo.net> writes:
> 
>>> Let's remove Helm from NonGNU, then: its UI paradigm is also different
>>> from the core Emacs, and IMHO it's rather ugly.
> 
> [Not sure who wrote this] but anyway,
> 
> saying a package is ugly just because it provides a different UI than
> Emacs is unfair at best.  Helm is and is still one of the best
> completion package (but not only) around here and I made a lot of work
> for this, so please be respectful of my work or provide constructive critics.

Sorry, that was my message, but it was sent in private, and it was 
mostly hyperbole aimed to make a point. I didn't intend for it to be 
answered in public.

>>> And swiper/ivy from ELPA, just because.
> 
> Same here, a very good package and there is a lot of work behind this, so...

Ditto.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-22 10:14                             ` Steve Purcell
@ 2024-02-22 14:29                               ` Dmitry Gutov
  2024-02-23 16:20                                 ` Spencer Baugh
  0 siblings, 1 reply; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-22 14:29 UTC (permalink / raw)
  To: Steve Purcell
  Cc: Stefan Kangas, Stefan Monnier, Philip Kaludercic, joakim,
	Bozhidar Batsov, Emacs Devel

On 22/02/2024 12:14, Steve Purcell wrote:
> 
>> On 22 Feb 2024, at 03:16, Dmitry Gutov<dmitry@gutov.dev>  wrote:
>>
>> flymake-easy has another problem: IIUC it hasn't been updated for 10 years, and as such only uses the obsolete Flymake protocol (one we keep in flymake-proc.el for compatibility). It also employs defadvice.
> 
> The defadvice issue is easily fixed, but in general I can’t tell if the package is defunct or would still be useful for people if it had a refresh. I suspect the latter.

I think there is demand for it, but code-wise, it might need a full rewrite.

It also might make sense to contribute the improved helper to flymake.el 
directly, rather than have it as an external package - then the built-in 
modes could also use it.

Because what I have to do at the moment, is copy ruby-flymake--helper 
with minor variations to use for each backend, and that's not ideal.

Meanwhile the users of flymake-easy who target older versions of Flymake 
(including the current release) could continue to use the existing 
version, since the obsolete API is still supported (I think), just not 
quite recommended.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-21 15:02                 ` Stefan Monnier
@ 2024-02-22 15:50                   ` Dmitry Gutov
  2024-02-22 16:57                     ` Philip Kaludercic
  0 siblings, 1 reply; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-22 15:50 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Philip Kaludercic, joakim, Bozhidar Batsov, Emacs Devel

On 21/02/2024 17:02, Stefan Monnier wrote:
>> So, unless unless there is a strong objection from one of Emacs's head
>> maintainers, I think I will commence Flycheck's addition to NonGNU in the
>> next few days.
> That would be very welcome, thanks.

All right, I've made the push: 
https://git.savannah.gnu.org/cgit/emacs/nongnu.git/commit/

It should build sometime within 24 hours.

Bozhidar, see the recipe in the diff, if any exclusions should be added, 
the syntax is there (and also in the file's commentary at the top).

What could be also added, is a way to build the manual to be included 
with the package. I'm not sure how easy that would be to do, though, 
with your current documentation setup.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-22 15:50                   ` Dmitry Gutov
@ 2024-02-22 16:57                     ` Philip Kaludercic
  2024-02-22 17:10                       ` Dmitry Gutov
  0 siblings, 1 reply; 55+ messages in thread
From: Philip Kaludercic @ 2024-02-22 16:57 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Stefan Monnier, joakim, Bozhidar Batsov, Emacs Devel

Dmitry Gutov <dmitry@gutov.dev> writes:

> On 21/02/2024 17:02, Stefan Monnier wrote:
>>> So, unless unless there is a strong objection from one of Emacs's head
>>> maintainers, I think I will commence Flycheck's addition to NonGNU in the
>>> next few days.
>> That would be very welcome, thanks.
>
> All right, I've made the push:
> https://git.savannah.gnu.org/cgit/emacs/nongnu.git/commit/

Here is a more permanent link for posterity:

https://git.savannah.gnu.org/cgit/emacs/nongnu.git/commit/?id=7c06709972291413f18b750248b141293415cd42

>
> It should build sometime within 24 hours.
>
> Bozhidar, see the recipe in the diff, if any exclusions should be
> added, the syntax is there (and also in the file's commentary at the
> top).

Ideally this information shouldn't be tracked in nongnu.git, but in an
.elpaignore file within the repository.

> What could be also added, is a way to build the manual to be included
> with the package. I'm not sure how easy that would be to do, though,
> with your current documentation setup.

It appears they use sphinx, which can generate TeXinfo output[0], though
I personally would recommend looking into translating the documentation
into a more standard format like Org or directly to TeXinfo.

[0] https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-texinfo-output



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-22 16:57                     ` Philip Kaludercic
@ 2024-02-22 17:10                       ` Dmitry Gutov
  2024-02-22 17:29                         ` Bozhidar Batsov
  0 siblings, 1 reply; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-22 17:10 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: Stefan Monnier, joakim, Bozhidar Batsov, Emacs Devel

On 22/02/2024 18:57, Philip Kaludercic wrote:
> Dmitry Gutov <dmitry@gutov.dev> writes:
> 
>> On 21/02/2024 17:02, Stefan Monnier wrote:
>>>> So, unless unless there is a strong objection from one of Emacs's head
>>>> maintainers, I think I will commence Flycheck's addition to NonGNU in the
>>>> next few days.
>>> That would be very welcome, thanks.
>>
>> All right, I've made the push:
>> https://git.savannah.gnu.org/cgit/emacs/nongnu.git/commit/
> 
> Here is a more permanent link for posterity:
> 
> https://git.savannah.gnu.org/cgit/emacs/nongnu.git/commit/?id=7c06709972291413f18b750248b141293415cd42

Thank you.

>>
>> It should build sometime within 24 hours.
>>
>> Bozhidar, see the recipe in the diff, if any exclusions should be
>> added, the syntax is there (and also in the file's commentary at the
>> top).
> 
> Ideally this information shouldn't be tracked in nongnu.git, but in an
> .elpaignore file within the repository.

That's a good point. It would be even better if MELPA supported 
.elpaignore too, but either way, adjusting ignores through this file is 
usually easier for an external package's maintainer.

>> What could be also added, is a way to build the manual to be included
>> with the package. I'm not sure how easy that would be to do, though,
>> with your current documentation setup.
> 
> It appears they use sphinx, which can generate TeXinfo output[0], though
> I personally would recommend looking into translating the documentation
> into a more standard format like Org or directly to TeXinfo.
> 
> [0] https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-texinfo-output

Last I read, they decided against TeXinfo due to what format an average 
contributor would find easier to use. But anyway, it's up to Bozhidar now.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-22 17:10                       ` Dmitry Gutov
@ 2024-02-22 17:29                         ` Bozhidar Batsov
  2024-02-23 16:07                           ` Docs on ELPA (was Re: Adding Flycheck to NonGNU ELPA) Spencer Baugh
  0 siblings, 1 reply; 55+ messages in thread
From: Bozhidar Batsov @ 2024-02-22 17:29 UTC (permalink / raw)
  To: Dmitry Gutov, Philip Kaludercic; +Cc: Stefan Monnier, joakim, Emacs Devel

[-- Attachment #1: Type: text/plain, Size: 2324 bytes --]

Thanks for the updates!

Regarding the docs - I was thinking of converting them to something like AsciiDoc or org-mode, but that'd require me to find a new way to host them as ReadTheDocs supports only RST and Markdown. That's why I've put this item on the backburner for now. I try to find some time to look into the various conversion option (or generating TexInfo from the current docs). 

On Thu, Feb 22, 2024, at 6:10 PM, Dmitry Gutov wrote:
> On 22/02/2024 18:57, Philip Kaludercic wrote:
> > Dmitry Gutov <dmitry@gutov.dev> writes:
> > 
> >> On 21/02/2024 17:02, Stefan Monnier wrote:
> >>>> So, unless unless there is a strong objection from one of Emacs's head
> >>>> maintainers, I think I will commence Flycheck's addition to NonGNU in the
> >>>> next few days.
> >>> That would be very welcome, thanks.
> >>
> >> All right, I've made the push:
> >> https://git.savannah.gnu.org/cgit/emacs/nongnu.git/commit/
> > 
> > Here is a more permanent link for posterity:
> > 
> > https://git.savannah.gnu.org/cgit/emacs/nongnu.git/commit/?id=7c06709972291413f18b750248b141293415cd42
> 
> Thank you.
> 
> >>
> >> It should build sometime within 24 hours.
> >>
> >> Bozhidar, see the recipe in the diff, if any exclusions should be
> >> added, the syntax is there (and also in the file's commentary at the
> >> top).
> > 
> > Ideally this information shouldn't be tracked in nongnu.git, but in an
> > .elpaignore file within the repository.
> 
> That's a good point. It would be even better if MELPA supported 
> .elpaignore too, but either way, adjusting ignores through this file is 
> usually easier for an external package's maintainer.
> 
> >> What could be also added, is a way to build the manual to be included
> >> with the package. I'm not sure how easy that would be to do, though,
> >> with your current documentation setup.
> > 
> > It appears they use sphinx, which can generate TeXinfo output[0], though
> > I personally would recommend looking into translating the documentation
> > into a more standard format like Org or directly to TeXinfo.
> > 
> > [0] https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-texinfo-output
> 
> Last I read, they decided against TeXinfo due to what format an average 
> contributor would find easier to use. But anyway, it's up to Bozhidar now.
> 
> 

[-- Attachment #2: Type: text/html, Size: 3716 bytes --]

^ permalink raw reply	[flat|nested] 55+ messages in thread

* Docs on ELPA (was Re: Adding Flycheck to NonGNU ELPA)
  2024-02-22 17:29                         ` Bozhidar Batsov
@ 2024-02-23 16:07                           ` Spencer Baugh
  2024-02-23 16:13                             ` Philip Kaludercic
  0 siblings, 1 reply; 55+ messages in thread
From: Spencer Baugh @ 2024-02-23 16:07 UTC (permalink / raw)
  To: Bozhidar Batsov
  Cc: Dmitry Gutov, Philip Kaludercic, Stefan Monnier, joakim,
	Emacs Devel

"Bozhidar Batsov" <bozhidar@batsov.dev> writes:
> Thanks for the updates!
>
> Regarding the docs - I was thinking of converting them to something like AsciiDoc or org-mode, but that'd require me to find a new
> way to host them as ReadTheDocs supports only RST and Markdown. That's why I've put this item on the backburner for now. I try
> to find some time to look into the various conversion option (or generating TexInfo from the current docs). 

Hm, maybe the web interface for GNU and NonGNU ELPA should support
hosting web-rendered Texinfo manuals?  That would make it easier to
evaluate packages without installing them, and also solve Flycheck's
documentation hosting issue.

Since this would require ELPA to build the Texinfo manuals, perhaps we
could also use this to make a package-view-docs command (or something)
in Emacs which will fetch and view the manual for a package that is not
yet installed.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Docs on ELPA (was Re: Adding Flycheck to NonGNU ELPA)
  2024-02-23 16:07                           ` Docs on ELPA (was Re: Adding Flycheck to NonGNU ELPA) Spencer Baugh
@ 2024-02-23 16:13                             ` Philip Kaludercic
  2024-02-23 23:37                               ` Adam Porter
  2024-02-24 23:25                               ` Stefan Monnier
  0 siblings, 2 replies; 55+ messages in thread
From: Philip Kaludercic @ 2024-02-23 16:13 UTC (permalink / raw)
  To: Spencer Baugh
  Cc: Bozhidar Batsov, Dmitry Gutov, Stefan Monnier, joakim,
	Emacs Devel

Spencer Baugh <sbaugh@janestreet.com> writes:

> "Bozhidar Batsov" <bozhidar@batsov.dev> writes:
>> Thanks for the updates!
>>
>> Regarding the docs - I was thinking of converting them to something like AsciiDoc or org-mode, but that'd require me to find a new
>> way to host them as ReadTheDocs supports only RST and Markdown. That's why I've put this item on the backburner for now. I try
>> to find some time to look into the various conversion option (or generating TexInfo from the current docs). 
>
> Hm, maybe the web interface for GNU and NonGNU ELPA should support
> hosting web-rendered Texinfo manuals?  That would make it easier to
> evaluate packages without installing them, and also solve Flycheck's
> documentation hosting issue.

It does, e.g. Compat directs directly to elpa.gnu.org:
https://elpa.gnu.org/packages/doc/compat/compat.html

> Since this would require ELPA to build the Texinfo manuals, 

It just renders them in HTML, I don't know of any .info files being
available outside of the tarballs.

>                                                             
>                                                             perhaps we
> could also use this to make a package-view-docs command (or something)
> in Emacs which will fetch and view the manual for a package that is not
> yet installed.

Something similar I had in mind was a variation on package-install that
wouldn't persist the installation, and instead of extracting the files
into .../elpa/, would store them in a /tmp/ sub-directory.  That would
go further than what you are describing, but would make trying out a
package easier.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-22 14:29                               ` Dmitry Gutov
@ 2024-02-23 16:20                                 ` Spencer Baugh
  2024-02-23 17:58                                   ` Eli Zaretskii
  2024-02-23 21:09                                   ` Dmitry Gutov
  0 siblings, 2 replies; 55+ messages in thread
From: Spencer Baugh @ 2024-02-23 16:20 UTC (permalink / raw)
  To: Dmitry Gutov
  Cc: Steve Purcell, Stefan Kangas, Stefan Monnier, Philip Kaludercic,
	joakim, Bozhidar Batsov, Emacs Devel

Dmitry Gutov <dmitry@gutov.dev> writes:
> On 22/02/2024 12:14, Steve Purcell wrote:
>> 
>>> On 22 Feb 2024, at 03:16, Dmitry Gutov<dmitry@gutov.dev>  wrote:
>>>
>>> flymake-easy has another problem: IIUC it hasn't been updated for 10 years, and as such only uses the obsolete Flymake protocol (one we keep in flymake-proc.el for compatibility). It also employs defadvice.
>> The defadvice issue is easily fixed, but in general I can’t tell if
>> the package is defunct or would still be useful for people if it had
>> a refresh. I suspect the latter.
>
> I think there is demand for it, but code-wise, it might need a full rewrite.
>
> It also might make sense to contribute the improved helper to
> flymake.el directly, rather than have it as an external package - then
> the built-in modes could also use it.
>
> Because what I have to do at the moment, is copy ruby-flymake--helper
> with minor variations to use for each backend, and that's not ideal.
>
> Meanwhile the users of flymake-easy who target older versions of
> Flymake (including the current release) could continue to use the
> existing version, since the obsolete API is still supported (I think),
> just not quite recommended.

From looking at ruby-flymake--helper, maybe it would be best to have a
new helper for working with processes.  It looks like
ruby-flymake--helper just wants to:

1. Send the current buffer text to a process.
2. When the process exits cleanly, call a callback with all the
process's output.

It seems like we could add a helper that supports that.  Then
ruby-flymake--helper would disappear in favor of some
process-run-and-call function.

Or... IMO, even better than a helper would be using Elisp threads for
this.  Then there's no need for any callback stuff.  Really, threads are
a natural fit for flymake, since flymake already provides a UI which can
display data computed asynchronously by threads, and that's IMO the
hardest part of using threads.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-23 16:20                                 ` Spencer Baugh
@ 2024-02-23 17:58                                   ` Eli Zaretskii
  2024-02-23 21:09                                   ` Dmitry Gutov
  1 sibling, 0 replies; 55+ messages in thread
From: Eli Zaretskii @ 2024-02-23 17:58 UTC (permalink / raw)
  To: Spencer Baugh
  Cc: dmitry, steve, stefankangas, monnier, philipk, joakim, bozhidar,
	emacs-devel

> From: Spencer Baugh <sbaugh@janestreet.com>
> Cc: Steve Purcell <steve@sanityinc.com>,  Stefan Kangas
>  <stefankangas@gmail.com>,  Stefan Monnier <monnier@iro.umontreal.ca>,
>  Philip Kaludercic <philipk@posteo.net>,  joakim@verona.se,  Bozhidar
>  Batsov <bozhidar@batsov.dev>,  Emacs Devel <emacs-devel@gnu.org>
> Date: Fri, 23 Feb 2024 11:20:00 -0500
> 
> Or... IMO, even better than a helper would be using Elisp threads for
> this.  Then there's no need for any callback stuff.

Caveat: if the callback needs to display something, you could still
have a problem with threads.

> Really, threads are a natural fit for flymake, since flymake already
> provides a UI which can display data computed asynchronously by
> threads, and that's IMO the hardest part of using threads.

Emacs Lisp threads are not really asynchronous.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Adding Flycheck to NonGNU ELPA
  2024-02-23 16:20                                 ` Spencer Baugh
  2024-02-23 17:58                                   ` Eli Zaretskii
@ 2024-02-23 21:09                                   ` Dmitry Gutov
  1 sibling, 0 replies; 55+ messages in thread
From: Dmitry Gutov @ 2024-02-23 21:09 UTC (permalink / raw)
  To: Spencer Baugh
  Cc: Steve Purcell, Stefan Kangas, Stefan Monnier, Philip Kaludercic,
	joakim, Bozhidar Batsov, Emacs Devel

On 23/02/2024 18:20, Spencer Baugh wrote:

>  From looking at ruby-flymake--helper, maybe it would be best to have a
> new helper for working with processes.  It looks like
> ruby-flymake--helper just wants to:
> 
> 1. Send the current buffer text to a process.
> 2. When the process exits cleanly, call a callback with all the
> process's output.
> 
> It seems like we could add a helper that supports that.  Then
> ruby-flymake--helper would disappear in favor of some
> process-run-and-call function.

Some kind of helper that covers the existing variations is indeed what I 
was thinking of. Though maybe (additionally) a macro version with a 
terse syntax would appeal to some, too.

> Or... IMO, even better than a helper would be using Elisp threads for
> this.  Then there's no need for any callback stuff.  Really, threads are
> a natural fit for flymake, since flymake already provides a UI which can
> display data computed asynchronously by threads, and that's IMO the
> hardest part of using threads.

I'm not sure about Lisp threads for this particular purpose because they 
carry their own complexity (flakier error handling, for example), and 
the asynchrony requirement is solved by the current callback-based 
interface. I think threads can bring more value where you would be able 
to write code in a sequential fashion, while having it executed 
asynchronously (unrelatedly, one of the subjects you touched on in 
bug#69188). But maybe I'm wrong, you're welcome to show otherwise, maybe 
with a code example.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Docs on ELPA (was Re: Adding Flycheck to NonGNU ELPA)
  2024-02-23 16:13                             ` Philip Kaludercic
@ 2024-02-23 23:37                               ` Adam Porter
  2024-02-24  8:04                                 ` Philip Kaludercic
  2024-02-24 23:25                               ` Stefan Monnier
  1 sibling, 1 reply; 55+ messages in thread
From: Adam Porter @ 2024-02-23 23:37 UTC (permalink / raw)
  To: philipk; +Cc: emacs-devel

> Something similar I had in mind was a variation on package-install that
> wouldn't persist the installation, and instead of extracting the files
> into .../elpa/, would store them in a /tmp/ sub-directory.  That would
> go further than what you are describing, but would make trying out a
> package easier.

FYI, that exists in the form of the `try' package available on MELPA. 
It works well.  Maybe it could be added to GNU ELPA.  Or maybe a 
`package-try' command could be added to package.el.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Docs on ELPA (was Re: Adding Flycheck to NonGNU ELPA)
  2024-02-23 23:37                               ` Adam Porter
@ 2024-02-24  8:04                                 ` Philip Kaludercic
  2024-02-25 12:32                                   ` Corwin Brust
  0 siblings, 1 reply; 55+ messages in thread
From: Philip Kaludercic @ 2024-02-24  8:04 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-devel

Adam Porter <adam@alphapapa.net> writes:

>> Something similar I had in mind was a variation on package-install that
>> wouldn't persist the installation, and instead of extracting the files
>> into .../elpa/, would store them in a /tmp/ sub-directory.  That would
>> go further than what you are describing, but would make trying out a
>> package easier.
>
> FYI, that exists in the form of the `try' package available on
> MELPA.

I am surprised to hear that someone had to write a package for that,
when the basic functionality can be provided by

--8<---------------cut here---------------start------------->8---
(defun package-install-temporarily (pkg)
  (interactive
   (progn
     (package--archives-initialize)
     (list (intern (completing-read "Try: " package-archive-contents)))))
  (let ((package-user-dir (make-temp-file "package-tmp" t nil)))
    (package-install pkg t)))
--8<---------------cut here---------------end--------------->8---

(and if we extracted the interactive part from package-install, then it
would be even shorter).  Another idea would be to provide a generic
temporary package prefix command or minor mode.

>        It works well.  Maybe it could be added to GNU ELPA.  Or maybe
> a `package-try' command could be added to package.el.

That name is a bit short, and it is not clear what is meant.  Try to
install a package, try to find a package, etc.



^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Docs on ELPA (was Re: Adding Flycheck to NonGNU ELPA)
  2024-02-23 16:13                             ` Philip Kaludercic
  2024-02-23 23:37                               ` Adam Porter
@ 2024-02-24 23:25                               ` Stefan Monnier
  2024-02-25 10:06                                 ` Philip Kaludercic
  1 sibling, 1 reply; 55+ messages in thread
From: Stefan Monnier @ 2024-02-24 23:25 UTC (permalink / raw)
  To: Philip Kaludercic
  Cc: Spencer Baugh, Bozhidar Batsov, Dmitry Gutov, joakim, Emacs Devel

> It does, e.g. Compat directs directly to elpa.gnu.org:
> https://elpa.gnu.org/packages/doc/compat/compat.html

BTW, any help setting up some CSS styling there would be welcome
(probably following the CSS styling used for Texinfo docs on on
www.gnu.org).


        Stefan




^ permalink raw reply	[flat|nested] 55+ messages in thread

* Re: Docs on ELPA (was Re: Adding Flycheck to NonGNU ELPA)
  2024-02-24 23:25                               ` Stefan Monnier
@ 2024-02-25 10:06                                 ` Philip Kaludercic
  0 siblings, 0 replies; 55+ messages in thread
From: Philip Kaludercic @ 2024-02-25 10:06 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: Spencer Baugh, Bozhidar Batsov, Dmitry Gutov, joakim, Emacs Devel

[-- Attachment #1: Type: text/plain, Size: 345 bytes --]

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> It does, e.g. Compat directs directly to elpa.gnu.org:
>> https://elpa.gnu.org/packages/doc/compat/compat.html
>
> BTW, any help setting up some CSS styling there would be welcome
> (probably following the CSS styling used for Texinfo docs on on
> www.gnu.org).

Do we need more than this:


[-- Attachment #2: Type: text/plain, Size: 912 bytes --]

diff --git a/elpa-admin.el b/elpa-admin.el
index e1e0d2dd1e..f45c8586a0 100644
--- a/elpa-admin.el
+++ b/elpa-admin.el
@@ -43,6 +43,7 @@
 (defvar elpaa--name "NonGNU")
 (defvar elpaa--gitrepo "emacs/nongnu.git")
 (defvar elpaa--url "https://elpa.gnu.org/nongnu/")
+(defvar elpaa--css-url "https://www.gnu.org/software/emacs/manual.css")
 
 (defvar elpaa--branch-prefix "elpa/")
 (defvar elpaa--release-branch-prefix "elpa-release/")
@@ -2471,7 +2472,7 @@ directory; one of archive, archive-devel."
 	 (html-file (expand-file-name destname html-dir))
 	 (html-xref-file
 	  (expand-file-name destname (file-name-directory html-dir))))
-    (elpaa--makeinfo docfile html-file '("--html"))
+    (elpaa--makeinfo docfile html-file (list "--html" (format "--css-ref=%s" elpaa--css-url)))
     ;; FIXME: Use `push' in Emacs≥28
     (plist-put (cdr pkg-spec)
                :internal--html-docs

[-- Attachment #3: Type: text/plain, Size: 23 bytes --]


-- 
Philip Kaludercic

^ permalink raw reply related	[flat|nested] 55+ messages in thread

* Re: Docs on ELPA (was Re: Adding Flycheck to NonGNU ELPA)
  2024-02-24  8:04                                 ` Philip Kaludercic
@ 2024-02-25 12:32                                   ` Corwin Brust
  0 siblings, 0 replies; 55+ messages in thread
From: Corwin Brust @ 2024-02-25 12:32 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: Adam Porter, emacs-devel

On Sat, Feb 24, 2024 at 2:04 AM Philip Kaludercic <philipk@posteo.net> wrote:
>
>
> That name is a bit short, and it is not clear what is meant.  Try to
> install a package, try to find a package, etc.
>

If this need only be a function, perhaps "package-preview" would be more clear.



^ permalink raw reply	[flat|nested] 55+ messages in thread

end of thread, other threads:[~2024-02-25 12:32 UTC | newest]

Thread overview: 55+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-19 14:51 Adding Flycheck to NonGNU ELPA Bozhidar Batsov
2024-02-19 17:44 ` Philip Kaludercic
2024-02-19 18:08   ` Bozhidar Batsov
2024-02-19 18:48     ` Eli Zaretskii
2024-02-19 19:18       ` Bozhidar Batsov
2024-02-19 18:53     ` Philip Kaludercic
2024-02-19 19:17       ` Bozhidar Batsov
2024-02-19 19:41         ` Philip Kaludercic
2024-02-19 19:32       ` Dmitry Gutov
2024-02-19 22:32         ` joakim
2024-02-20 11:48           ` Philip Kaludercic
2024-02-20 20:04             ` Dmitry Gutov
2024-02-21 14:38               ` Dmitry Gutov
2024-02-21 15:02                 ` Stefan Monnier
2024-02-22 15:50                   ` Dmitry Gutov
2024-02-22 16:57                     ` Philip Kaludercic
2024-02-22 17:10                       ` Dmitry Gutov
2024-02-22 17:29                         ` Bozhidar Batsov
2024-02-23 16:07                           ` Docs on ELPA (was Re: Adding Flycheck to NonGNU ELPA) Spencer Baugh
2024-02-23 16:13                             ` Philip Kaludercic
2024-02-23 23:37                               ` Adam Porter
2024-02-24  8:04                                 ` Philip Kaludercic
2024-02-25 12:32                                   ` Corwin Brust
2024-02-24 23:25                               ` Stefan Monnier
2024-02-25 10:06                                 ` Philip Kaludercic
2024-02-21 17:01                 ` Adding Flycheck to NonGNU ELPA Philip Kaludercic
2024-02-21 17:38                   ` Dmitry Gutov
2024-02-21 18:05                     ` Philip Kaludercic
2024-02-21 18:07                       ` Dmitry Gutov
2024-02-21 18:14                       ` Stefan Monnier
2024-02-21 21:19                         ` Stefan Kangas
2024-02-21 21:46                           ` Bozhidar Batsov
2024-02-21 23:39                           ` Stefan Monnier
2024-02-22  9:15                             ` Stefan Kangas
2024-02-22  3:16                           ` Dmitry Gutov
2024-02-22  7:15                             ` Bozhidar Batsov
2024-02-22 10:15                               ` Steve Purcell
2024-02-22 11:54                               ` Dmitry Gutov
2024-02-22 10:14                             ` Steve Purcell
2024-02-22 14:29                               ` Dmitry Gutov
2024-02-23 16:20                                 ` Spencer Baugh
2024-02-23 17:58                                   ` Eli Zaretskii
2024-02-23 21:09                                   ` Dmitry Gutov
2024-02-21 17:40                   ` Stefan Monnier
2024-02-21 17:00               ` Philip Kaludercic
2024-02-21 18:19                 ` Dmitry Gutov
2024-02-21 21:24                   ` Bozhidar Batsov
2024-02-22  8:41             ` Thierry Volpiatto
2024-02-22 11:57               ` Dmitry Gutov
2024-02-22  9:03             ` Po Lu
2024-02-19 19:33     ` Dmitry Gutov
2024-02-19 19:47       ` Bozhidar Batsov
2024-02-19 19:55         ` Dominik Schrempf
2024-02-19 23:21         ` Dmitry Gutov
2024-02-20  6:17           ` Bozhidar Batsov

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).