unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* OK to put lisp/progmodes/flymake.el in ELPA as a :core package?
@ 2018-12-03 12:08 João Távora
  2018-12-03 14:29 ` Stefan Monnier
  0 siblings, 1 reply; 8+ messages in thread
From: João Távora @ 2018-12-03 12:08 UTC (permalink / raw)
  To: emacs-devel; +Cc: k.michal

Hi,

The subject should summarize my question.  I've done some work in
flymake.el (bugfixes and some new features) that shouldn't have to wait
for Emacs 27, so I think this is a nice way for users in Emacs
26.1 and upcoming 26.2 to see those changes.

The only thing that's slightly putting me off is flymake.el's
requirement of lisp/progmodes/flymake-proc.el _after_ the `provide`
statement.  It's odd, but shouldn't be a problem, right?  I can also
remove it but that would break out-of-the-box compatibility with "old"
flymake.

So, if no-one opposes I will be commiting this in the near future:

    Date:   Mon Dec 3 11:58:59 2018 +0000
     
        * externals-list ("flymake"): Add new :core package.
     
    diff --git a/externals-list b/externals-list
    index 6f7d623f7..146a33baf 100644
    --- a/externals-list
    +++ b/externals-list
    @@ -76,6 +76,7 @@
      ("ergoemacs-mode"	:external "https://github.com/ergoemacs/ergoemacs-mode.git")
      ("exwm"		:external "https://github.com/ch11ng/exwm.git")
      ("f90-interface-browser" :subtree "https://github.com/wence-/f90-iface")
    + ("flymake"		:core "lisp/progmodes/flymake.el")
      ("fountain-mode"	:external "https://github.com/rnkn/fountain-mode")
      ("ggtags"		:subtree "https://github.com/leoliu/ggtags")
      ("gnome-c-style"	:subtree "https://github.com/ueno/gnome-c-style.git")

and also

    Date:   Mon Dec 3 11:52:38 2018 +0000
     
        Prepare flymake.el for distribution in ELPA
        
        * lisp/progmodes/flymake.el: Add Package-Requires.  Bump version to
          1.0.1
     
    diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
    index 5352cc3fe6..ada8d27911 100644
    --- a/lisp/progmodes/flymake.el
    +++ b/lisp/progmodes/flymake.el
    @@ -4,7 +4,8 @@
     
     ;; Author:  Pavel Kobyakov <pk_at_work@yahoo.com>
     ;; Maintainer: João Távora <joaotavora@gmail.com>
    -;; Version: 1.0
    +;; Package-Requires: ((emacs "26.1"))
    +;; Version: 1.0.1
     ;; Keywords: c languages tools
     
     ;; This file is part of GNU Emacs.


João



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

* Re: OK to put lisp/progmodes/flymake.el in ELPA as a :core package?
  2018-12-03 12:08 OK to put lisp/progmodes/flymake.el in ELPA as a :core package? João Távora
@ 2018-12-03 14:29 ` Stefan Monnier
  2018-12-06  0:19   ` João Távora
  0 siblings, 1 reply; 8+ messages in thread
From: Stefan Monnier @ 2018-12-03 14:29 UTC (permalink / raw)
  To: emacs-devel

> The only thing that's slightly putting me off is flymake.el's
> requirement of lisp/progmodes/flymake-proc.el _after_ the `provide`
> statement.  It's odd, but shouldn't be a problem, right?

It's sub-optimal, but sometimes it's better then the other options.
In any case I don't see why it should be a problem for GNU ELPA packaging.

> So, if no-one opposes I will be commiting this in the near future:

No objection on my side,


        Stefan




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

* Re: OK to put lisp/progmodes/flymake.el in ELPA as a :core package?
  2018-12-03 14:29 ` Stefan Monnier
@ 2018-12-06  0:19   ` João Távora
  2018-12-06  2:09     ` Stefan Monnier
  0 siblings, 1 reply; 8+ messages in thread
From: João Távora @ 2018-12-06  0:19 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

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

>> The only thing that's slightly putting me off is flymake.el's
>> requirement of lisp/progmodes/flymake-proc.el _after_ the `provide`
>> statement.  It's odd, but shouldn't be a problem, right?
>
> It's sub-optimal, but sometimes it's better then the other options.
> In any case I don't see why it should be a problem for GNU ELPA packaging.
>
>> So, if no-one opposes I will be commiting this in the near future:
>
> No objection on my side,

Hmmn,

I've done this, and GNU ELPA has already built version 1.0.1 of the
package as intended.

But how do I install it from Emacs 26.1, iow, how do I upgrade it?

1. This doesn't work:

   emacs -Q
   (package-initialize)
   (package-refresh-contents)
   (package-install 'flymake)

Presumably because in Emacs 26.1 flymake is already a "built-in" package
(though at version 0.3)

2. If I do it interactively from the package menu, it works.  Go
into the menu with M-x list-package, mark flymake 1.0.1 with 'i', then
type x.

3. This does work but seems pretty brittle

(package-initialize)
(package-refresh-contents)
(package-install #s(package-desc flymake
                (1 0 1)
                "A universal on-the-fly syntax checker"
                ((emacs
                  (26 1)))
                single "gnu" nil
                ((:url . "http://elpa.gnu.org/packages/flymake.html")
                 (:keywords "c" "languages" "tools"))
                nil))

The reason I want to do this programatically is so I can test eglot, a
package that depends on flymake, from a "make check" target in a
Makefile.

João






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

* Re: OK to put lisp/progmodes/flymake.el in ELPA as a :core package?
  2018-12-06  0:19   ` João Távora
@ 2018-12-06  2:09     ` Stefan Monnier
  2018-12-06  6:43       ` João Távora
  0 siblings, 1 reply; 8+ messages in thread
From: Stefan Monnier @ 2018-12-06  2:09 UTC (permalink / raw)
  To: emacs-devel

> (package-install #s(package-desc flymake
>                 (1 0 1)
>                 "A universal on-the-fly syntax checker"
>                 ((emacs
>                   (26 1)))
>                 single "gnu" nil
>                 ((:url . "http://elpa.gnu.org/packages/flymake.html")
>                  (:keywords "c" "languages" "tools"))
>                 nil))

You can try something like

    (package-install (cadr (assoc 'flymake package-archive-contents)))

which should be a bit less brittle.


        Stefan




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

* Re: OK to put lisp/progmodes/flymake.el in ELPA as a :core package?
  2018-12-06  2:09     ` Stefan Monnier
@ 2018-12-06  6:43       ` João Távora
  2018-12-06 13:03         ` Stefan Monnier
  0 siblings, 1 reply; 8+ messages in thread
From: João Távora @ 2018-12-06  6:43 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

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

On Thu, Dec 6, 2018, 02:10 Stefan Monnier <monnier@iro.umontreal.ca wrote:

> > (package-install #s(package-desc flymake
> >                 (1 0 1)
> >                 "A universal on-the-fly syntax checker"
> >                 ((emacs
> >                   (26 1)))
> >                 single "gnu" nil
> >                 ((:url . "http://elpa.gnu.org/packages/flymake.html")
> >                  (:keywords "c" "languages" "tools"))
> >                 nil))
>
> You can try something like
>
>     (package-install (cadr (assoc 'flymake package-archive-contents)))
>
> which should be a bit less brittle.
>

Oh thanks, that's much nicer!

Should it be a separate function? Package-install-most-recent or package
upgrade?

João

>

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

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

* Re: OK to put lisp/progmodes/flymake.el in ELPA as a :core package?
  2018-12-06  6:43       ` João Távora
@ 2018-12-06 13:03         ` Stefan Monnier
  2018-12-06 14:53           ` João Távora
  0 siblings, 1 reply; 8+ messages in thread
From: Stefan Monnier @ 2018-12-06 13:03 UTC (permalink / raw)
  To: João Távora; +Cc: emacs-devel

> Should it be a separate function? Package-install-most-recent or package
> upgrade?

Maybe a new `package-get-latest`, so you can do

    (package-install (package-get-latest))

Especially if package-get-latest can be extracted from existing code
(and hence used there was well).


        Stefan



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

* Re: OK to put lisp/progmodes/flymake.el in ELPA as a :core package?
  2018-12-06 13:03         ` Stefan Monnier
@ 2018-12-06 14:53           ` João Távora
  2018-12-06 19:28             ` Stefan Monnier
  0 siblings, 1 reply; 8+ messages in thread
From: João Távora @ 2018-12-06 14:53 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

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

On Thu, Dec 6, 2018, 13:03 Stefan Monnier <monnier@iro.umontreal.ca wrote:

> > Should it be a separate function? Package-install-most-recent or package
> > upgrade?
>
> Maybe a new `package-get-latest`, so you can do
>
>     (package-install (package-get-latest))
>
> Especially if package-get-latest can be extracted from existing code
> (and hence used there was well).


But won't that upgrade all the packages? Or would you give
package-get-latest it an optional arg PACKAGE?

João

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

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

* Re: OK to put lisp/progmodes/flymake.el in ELPA as a :core package?
  2018-12-06 14:53           ` João Távora
@ 2018-12-06 19:28             ` Stefan Monnier
  0 siblings, 0 replies; 8+ messages in thread
From: Stefan Monnier @ 2018-12-06 19:28 UTC (permalink / raw)
  To: João Távora; +Cc: emacs-devel

>>     (package-install (package-get-latest))
> But won't that upgrade all the packages?

Sorry, I dropped the arg, I meant:


    (package-install (package-get-latest 'flymake))

[ You could have guessed by noticing that I used the singular spelling
  of "latest".  ]


        Stefan



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

end of thread, other threads:[~2018-12-06 19:28 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-03 12:08 OK to put lisp/progmodes/flymake.el in ELPA as a :core package? João Távora
2018-12-03 14:29 ` Stefan Monnier
2018-12-06  0:19   ` João Távora
2018-12-06  2:09     ` Stefan Monnier
2018-12-06  6:43       ` João Távora
2018-12-06 13:03         ` Stefan Monnier
2018-12-06 14:53           ` João Távora
2018-12-06 19:28             ` Stefan Monnier

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).