all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Support for bringing package change logs to the user's attention
@ 2018-05-25 11:47 Christopher Done
  2018-05-25 11:50 ` Christopher Done
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Christopher Done @ 2018-05-25 11:47 UTC (permalink / raw)
  To: emacs-devel

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

Hi all,

As the author and maintainer of several Emacs Lisp packages, I'd like to
discuss how change logs are brought to the user's attention.

The simple problem for me is that users never know what cool new things
have been added, or what bugs have been fixed, unless they're really
keeping an eye out for it. People often seem just update all their
packages. New things aren't obviously discoverable.

There are three main kinds of Emacs package users that I'm aware of:

1. People who have a ~/.emacs.d with the packages/.el files that they've
   downloaded and made a copy of locally.

2. People who put their ~/.emacs.d under version control and pull
   packages down via that.

3. People who install Emacs packages via the package system in Emacs.

(Personally, I am in the (2) set of people. I searched through the Emacs
manual about packages and didn't find anything about change logs... tell me
if I missed something!)

I would like that there be explicit support for:

A. When I load an Emacs package that is newer than last time, that Emacs
   automatically brings up to my attention a buffer with "what's new" in
   the package.

B. Once I've acknowledged by a button or key press that I've really read
   the changes, then I never see the buffer again unless I explicitly
   ask to see it again.

For example: To handle the (3) type of person, you could put such
support into package-install, by simply writing to some kind of
~/.emacs.d/seen.el file with (("package" . version) ...) inside that
lets Emacs know that I've seen the changelog, and I don't need to be
bothered about it again. Alternatively it could be put in a
customization variable and written to .emacs. I'm not sure about the
implementation, but the UX is the important part.

For people who do the (1) and (2) method, there isn't explicitly an
"install" step. A bunch of Elisp files are loaded up and that's all. I'm
not sure what we can do for them. Perhaps not much and that's OK. I'm
open to ideas, though.

We could have the package system look for a CHANGELOG file, or a ;;;
Changes section in the file. It would parse up the latest entries since the
last seen version and open a buffer to show the user, e.g.

0.1.31:
* C-c C-p now massages your feet while gcc is compiling
        * The bug with overlays being slow is now fixed.

Parsing isn't always a nice solution, but that's already done to some
extent anyway. The alternative would be having the author write some
Elisp with the changelog, but that seems like duplication of work to me.

It would of course have an option to turn it off if people don't care
what changed in any of their packages.

What do you think? I'm asking here because I think it'd be a valuable
addition to Emacs and would be best if it had buy-in from general package
writers and the Emacs maintainers.

Chris

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

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

* Re: Support for bringing package change logs to the user's attention
  2018-05-25 11:47 Support for bringing package change logs to the user's attention Christopher Done
@ 2018-05-25 11:50 ` Christopher Done
  2018-05-25 14:26   ` Drew Adams
  2018-05-25 14:31 ` Aaron Ecay
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 13+ messages in thread
From: Christopher Done @ 2018-05-25 11:50 UTC (permalink / raw)
  To: Chris Done; +Cc: emacs-devel

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

Sorry, the obvious approach of simply opening the CHANGELOG file would
absolutely be sufficient here. No parsing neccessary if we do
that. Changelogs are usually written in descending order.

Chris

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

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

* RE: Support for bringing package change logs to the user's attention
  2018-05-25 11:50 ` Christopher Done
@ 2018-05-25 14:26   ` Drew Adams
  0 siblings, 0 replies; 13+ messages in thread
From: Drew Adams @ 2018-05-25 14:26 UTC (permalink / raw)
  To: chrisdone; +Cc: emacs-devel

> Sorry, the obvious approach of simply opening the CHANGELOG file
> would absolutely be sufficient here. No parsing neccessary if
> we do that. Changelogs are usually written in descending order.

I like a `;;; Change Log:' entry in an Elisp file (or
in a separate file, in the case of a multi-file Elisp
package).  IOW, I'm in favor of change-log histories,
whether in the code-files themselves, as separate files,
or recorded in a vc system.

However, I think there was a lot more in your first
message.  You made some good suggestions and posed some
good questions, which are worth thinking about - they go
beyond just pointing users to existing development change
logs.

I'm in favor, for example, of providing users with a quick
What's New view of the delta from either the last available
version or the last version that the given user has.  And
doing so from both a code-changes point of view and a
feature/behavior-changes point of view.

Ideally, we'd provide different ways for a user to see
what's changed, between an arbitrary two points in the
evolution, and at different granularities of view.

The granularity thing is important for users: a
development change-log entry does not necessarily
express the effect of a change from a user point of
view.  Some reading between the lines and rumination
are needed (along with some trial and error), to
discover what's really changed.

IOW, change logs are great for implementors, but they
are not the only, and not often the best, way for
users to see what's changed.

No, I don't have any particular ideas about what might
be done to help users here.

But yes, I think there's lots of room for helping.
Emacs has a great user-help system, in general.  But
it doesn't yet offer much to help users see what's
new or what's changed.

Discovery is not just a one-time, newbie/novice thing
for a given feature.  It's a recurring thing: discover
what's changed and how it affects your use of Emacs
and what you can do with it.



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

* Re: Support for bringing package change logs to the user's attention
  2018-05-25 11:47 Support for bringing package change logs to the user's attention Christopher Done
  2018-05-25 11:50 ` Christopher Done
@ 2018-05-25 14:31 ` Aaron Ecay
  2018-05-25 16:40 ` Eric Abrahamsen
  2018-05-28 20:34 ` John Wiegley
  3 siblings, 0 replies; 13+ messages in thread
From: Aaron Ecay @ 2018-05-25 14:31 UTC (permalink / raw)
  To: chrisdone, emacs-devel

Hi Chris,

2018ko maiatzak 25an, Christopher Done-ek idatzi zuen:

[...]

> I would like that there be explicit support for:
> 
> A. When I load an Emacs package that is newer than last time, that Emacs
>    automatically brings up to my attention a buffer with "what's new" in
>    the package.

Itʼs not automatic, but the ‘customize-changed’ function displays the
user customization options that have been added or changed between some
(specified) past version of emacs and the running version.

The drawbacks are:
- You just see a buffer full of options, not a narrative like a NEWS
  file that groups changes logically and/or in order of importance.
- It only works for emacs core, not packages (but bug#31383 is a request
  to change that).
- As mentioned it is not automatic (though Iʼm sure that there are
  people for whom an automated change announcement itself would be
  considered a drawback...).

Just FYI...

-- 
Aaron Ecay



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

* Re: Support for bringing package change logs to the user's attention
  2018-05-25 11:47 Support for bringing package change logs to the user's attention Christopher Done
  2018-05-25 11:50 ` Christopher Done
  2018-05-25 14:31 ` Aaron Ecay
@ 2018-05-25 16:40 ` Eric Abrahamsen
  2018-05-25 17:16   ` Noam Postavsky
  2018-05-28 20:34 ` John Wiegley
  3 siblings, 1 reply; 13+ messages in thread
From: Eric Abrahamsen @ 2018-05-25 16:40 UTC (permalink / raw)
  To: emacs-devel

Christopher Done <chrisdone@gmail.com> writes:

> Hi all,
>
> As the author and maintainer of several Emacs Lisp packages, I'd like
> to
> discuss how change logs are brought to the user's attention.

[...]

The package format section of the README in Elpa already mentions:

- A "News:" section (or "NEWS" file) can/should be used to list the
  user-visible changes of each version.

It's not clear to me that anything is actually done with that
information. The relevant parsing function, if there were one, would be
in lisp-mnt.el, but it doesn't look like anything currently exists. But
if this were done, it would be good to stick to the News:/NEWS
convention, and add something to lisp-mnt.el that finds that (some of
the utility functions already in that file will make it easier).

It might not be necessarily to write a seen.el file: the package update
mechanism could maybe keep track of what version is being uninstalled as
the new one is installed, and then show the news that corresponds to the
diff. When updating many packages at once, it could collect news from
each one and show them in a single buffer.

Eric




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

* Re: Support for bringing package change logs to the user's attention
  2018-05-25 16:40 ` Eric Abrahamsen
@ 2018-05-25 17:16   ` Noam Postavsky
  2018-05-25 17:51     ` Eric Abrahamsen
  0 siblings, 1 reply; 13+ messages in thread
From: Noam Postavsky @ 2018-05-25 17:16 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: Emacs developers

On 25 May 2018 at 12:40, Eric Abrahamsen <eric@ericabrahamsen.net> wrote:

> The package format section of the README in Elpa already mentions:
>
> - A "News:" section (or "NEWS" file) can/should be used to list the
>   user-visible changes of each version.
>
> It's not clear to me that anything is actually done with that
> information.

It shows up on the GNU ELPA web page of the package, at least:

https://elpa.gnu.org/packages/yasnippet.html (scroll down to "News")



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

* Re: Support for bringing package change logs to the user's attention
  2018-05-25 17:16   ` Noam Postavsky
@ 2018-05-25 17:51     ` Eric Abrahamsen
  2018-05-26 21:07       ` Stefan Monnier
  0 siblings, 1 reply; 13+ messages in thread
From: Eric Abrahamsen @ 2018-05-25 17:51 UTC (permalink / raw)
  To: emacs-devel

Noam Postavsky <npostavs@gmail.com> writes:

> On 25 May 2018 at 12:40, Eric Abrahamsen <eric@ericabrahamsen.net> wrote:
>
>> The package format section of the README in Elpa already mentions:
>>
>> - A "News:" section (or "NEWS" file) can/should be used to list the
>>   user-visible changes of each version.
>>
>> It's not clear to me that anything is actually done with that
>> information.
>
> It shows up on the GNU ELPA web page of the package, at least:
>
> https://elpa.gnu.org/packages/yasnippet.html (scroll down to "News")

Oh, interesting. It looks like the server does look for either a NEWS
file or a ";;; News:" section in the package file, but it doesn't seem
to do any further parsing. I guess it would be an additional (boring)
bit of work to write elisp to try to extract version-specific sections
from that text.

Eric




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

* Re: Support for bringing package change logs to the user's attention
  2018-05-25 17:51     ` Eric Abrahamsen
@ 2018-05-26 21:07       ` Stefan Monnier
  2018-05-26 21:48         ` Eric Abrahamsen
  0 siblings, 1 reply; 13+ messages in thread
From: Stefan Monnier @ 2018-05-26 21:07 UTC (permalink / raw)
  To: emacs-devel

>>> - A "News:" section (or "NEWS" file) can/should be used to list the
>>>   user-visible changes of each version.
>>> It's not clear to me that anything is actually done with that
>>> information.

It's used, but indeed it should be used more.

Some additional places where it could be used come to mind:
- in the automatic email notification sent to gnu.emacs.sources
- when viewing a package in package-list-packages
- as suggested by Christopher, when upgrading an installed package.


-- Stefan




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

* Re: Support for bringing package change logs to the user's attention
  2018-05-26 21:07       ` Stefan Monnier
@ 2018-05-26 21:48         ` Eric Abrahamsen
  2018-05-26 21:59           ` Stefan Monnier
  0 siblings, 1 reply; 13+ messages in thread
From: Eric Abrahamsen @ 2018-05-26 21:48 UTC (permalink / raw)
  To: emacs-devel

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

>>>> - A "News:" section (or "NEWS" file) can/should be used to list the
>>>>   user-visible changes of each version.
>>>> It's not clear to me that anything is actually done with that
>>>> information.
>
> It's used, but indeed it should be used more.
>
> Some additional places where it could be used come to mind:
> - in the automatic email notification sent to gnu.emacs.sources
> - when viewing a package in package-list-packages
> - as suggested by Christopher, when upgrading an installed package.

Is there a standard format for differentiating versions? The first and
third use that you mention above would benefit from being able to parse
out a specific range of versions. A quick scan of NEWS files in Elpa
shows a fairly random assortment of approaches to formatting versions
and dates...




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

* Re: Support for bringing package change logs to the user's attention
  2018-05-26 21:48         ` Eric Abrahamsen
@ 2018-05-26 21:59           ` Stefan Monnier
  2018-05-27  3:15             ` Van L
  0 siblings, 1 reply; 13+ messages in thread
From: Stefan Monnier @ 2018-05-26 21:59 UTC (permalink / raw)
  To: emacs-devel

> Is there a standard format for differentiating versions?

No.


        Stefan




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

* Re: Support for bringing package change logs to the user's attention
  2018-05-26 21:59           ` Stefan Monnier
@ 2018-05-27  3:15             ` Van L
  0 siblings, 0 replies; 13+ messages in thread
From: Van L @ 2018-05-27  3:15 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel


> Stefan Monnier writes:
> 
>> Is there a standard format for differentiating versions?
> 
> No.

Can there be a package change-log link after the source-file link in the describe-function command?


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

* Re: Support for bringing package change logs to the user's attention
  2018-05-25 11:47 Support for bringing package change logs to the user's attention Christopher Done
                   ` (2 preceding siblings ...)
  2018-05-25 16:40 ` Eric Abrahamsen
@ 2018-05-28 20:34 ` John Wiegley
  2018-06-26 17:59   ` Ted Zlatanov
  3 siblings, 1 reply; 13+ messages in thread
From: John Wiegley @ 2018-05-28 20:34 UTC (permalink / raw)
  To: Christopher Done; +Cc: chrisdone, emacs-devel

>>>>> "CD" == Christopher Done <chrisdone@gmail.com> writes:

CD> I would like that there be explicit support for:

CD> A. When I load an Emacs package that is newer than last time, that
CD> Emacs automatically brings up to my attention a buffer with "what's new"
CD> in the package.

CD> B. Once I've acknowledged by a button or key press that I've really read
CD> the changes, then I never see the buffer again unless I explicitly ask to
CD> see it again.

I would suggest rather than this: for those who haven't opted out, Emacs would
present a y/n prompt saying 'There have been new features added to your Emacs
environment, would you like to hear about them?', and then list them by
package order in a buffer that allows further browsing where interested.

Because some of us using many packages, and update them in bulk using a
package manager, there can be days where I might have 50 updates. If each
package wanted to present me with its NEWS and await a keypress, it could take
several minutes to work through it all.

This is how some Nix packages do it: In the update log they note there is
"news to read", and then offer the command to read it, but without any request
for acknowledgment. We could perhaps add a similar message into the *scratch*
buffer on the splash screen on startup, rather than a y/n prompt.

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2



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

* Re: Support for bringing package change logs to the user's attention
  2018-05-28 20:34 ` John Wiegley
@ 2018-06-26 17:59   ` Ted Zlatanov
  0 siblings, 0 replies; 13+ messages in thread
From: Ted Zlatanov @ 2018-06-26 17:59 UTC (permalink / raw)
  To: Christopher Done; +Cc: chrisdone, emacs-devel

On Mon, 28 May 2018 13:34:24 -0700 "John Wiegley" <johnw@gnu.org> wrote: 

>>>>>> "CD" == Christopher Done <chrisdone@gmail.com> writes:
CD> I would like that there be explicit support for:

CD> A. When I load an Emacs package that is newer than last time, that
CD> Emacs automatically brings up to my attention a buffer with "what's new"
CD> in the package.

CD> B. Once I've acknowledged by a button or key press that I've really read
CD> the changes, then I never see the buffer again unless I explicitly ask to
CD> see it again.

JW> I would suggest rather than this: for those who haven't opted out, Emacs would
JW> present a y/n prompt saying 'There have been new features added to your Emacs
JW> environment, would you like to hear about them?', and then list them by
JW> package order in a buffer that allows further browsing where interested.

I agree 100% and would add "s: view source code differences across all
updates just installed, c: view customization differences across all
updates just installed, N: never bother me about this again, C-s: save
these notes to a file"

The same menu *before* the installation would be more useful as far as
inspecting source code and avoiding changes you are not ready to make.

Ted



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

end of thread, other threads:[~2018-06-26 17:59 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-25 11:47 Support for bringing package change logs to the user's attention Christopher Done
2018-05-25 11:50 ` Christopher Done
2018-05-25 14:26   ` Drew Adams
2018-05-25 14:31 ` Aaron Ecay
2018-05-25 16:40 ` Eric Abrahamsen
2018-05-25 17:16   ` Noam Postavsky
2018-05-25 17:51     ` Eric Abrahamsen
2018-05-26 21:07       ` Stefan Monnier
2018-05-26 21:48         ` Eric Abrahamsen
2018-05-26 21:59           ` Stefan Monnier
2018-05-27  3:15             ` Van L
2018-05-28 20:34 ` John Wiegley
2018-06-26 17:59   ` Ted Zlatanov

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.