Hello and thanks for contributing! A nitpick for the commit message. It should be:
gnu: Add emacs-undo-tree. (capital "Add" and a period in the end) > From: Dmitry Bogatov <kact...@gnu.org> > > * gnu/packages/emacs.scm (emacs-undo-tree): New variable Also a period here -----------------------------------------^ > --- > gnu/packages/emacs.scm | 36 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > > diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm > index 7d95f55..2fd39a3 100644 > --- a/gnu/packages/emacs.scm > +++ b/gnu/packages/emacs.scm > @@ -1007,6 +1007,42 @@ and stored in memory.") > (description "This package provides a modern list API library for > Emacs.") > (license license:gpl3+))) > > +;; Version in source is 0.6.6, but both source repository > +;; and web-site , pkgnamerefers to 0.6.4. ;; and web-site, pkgname refers to 0.6.4. Typos ^^^^^^, also what is "pkgname"? Just a "package name" or something specific? Actually, I think this commentary is not needed (besides I see no sign of 0.6.6 in the resulting "undo-tree.el" file – only 0.6.4). > +(define-public emacs-undo-tree > + (package > + (name "emacs-undo-tree") > + (version "0.6.4") > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url "http://dr-qubit.org/git/undo-tree.git") > + (commit "release/0.6.4"))) I'm not sure if we need to use git-fetch method, since there is <http://www.dr-qubit.org/undo-tree/undo-tree-0.6.4.el>. However, currently emacs-build-system cannot be used for packages that consist only of a single "*.el" file, and the recipes for such packages are more complicated (see, for example, "emacs-let-alist" package). So I think using git-fetch is OK here. What do people think? Also you need to add a line like this: (file-name (string-append name "-" version "-checkout")) to 'origin'. Otherwise the resulting name of a store directory will be: /gnu/store/…-git-checkout while it is more pleasant to have: /gnu/store/…-emacs-undo-tree-0.6.4-checkout > + (sha256 > + (base32 > + "0b6hnv6bq1g5np5q2yw9r9aj1cxpp14akm21br7vpb7wp01fv4b3")))) > + (build-system emacs-build-system) > + (home-page "http://www.dr-qubit.org/emacs.php") > + (synopsis "Treat undo history as a tree") > + ^^^^ No need for the empty line after synopsis. > + (description "Emacs has a powerful undo system. Unlike the standard > +undo/redo system in most software, it allows you to recover *any* past state > +of a buffer (whereas the standard undo/redo system can lose past states as > +soon as you redo). However, this power comes at a price: many people find > Emacs' > +undo system confusing and difficult to use, spawning a number of packages > that > +replace it with the less powerful but more intuitive undo/redo system. > + > +Both the loss of data with standard undo/redo, and the confusion of Emacs' > +undo, stem from trying to treat undo history as a linear sequence of changes. > +It's not. The `undo-tree-mode' provided by this package replaces Emacs' undo We use texinfo markup for package descriptions, so it's better to use @code{undo-tree-mode} instead of `undo-tree-mode'. > +system with a system that treats undo history as what it is: a branching tree > +of changes. This simple idea allows the more intuitive behaviour of the > +standard undo/redo system to be combined with the power of never losing any > +history. An added side bonus is that undo history can in some cases be stored > +more efficiently, allowing more changes to accumulate before Emacs starts > +discarding history.") I realize that you take it from "undo-tree.el", but I think this description is too long, I would reduce it a bit (but maybe it's ok). Also our convention is to use 2 spaces between sentences (as reported by 'guix lint emacs-undo-tree'). -- Alex