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