unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stephen Berman <stephen.berman@gmx.net>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel@gnu.org
Subject: Re: New version of todo-mode.el (announcement + user guide)
Date: Tue, 11 Jun 2013 20:36:35 +0200	[thread overview]
Message-ID: <87mwqwpk98.fsf@rosalinde.fritz.box> (raw)
In-Reply-To: <jwvr4g9ijo9.fsf-monnier+emacs@gnu.org> (Stefan Monnier's message of "Mon, 10 Jun 2013 20:20:18 -0400")

On Mon, 10 Jun 2013 20:20:18 -0400 Stefan Monnier <monnier@iro.umontreal.ca> wrote:

>> I'd consider doing that if the Emacs maintainers decide not to accept
>> this package, but my hope is that they will accept it and then
>
> I don't see any problem with you switching to this new fancier
> todo-mode.el, with the only request that you try to preserve some
> compatibility with todo files made with the old mode.

Thank you for the vote of confidence.  Regarding compatibility, as
explained in the last section of the user guide I posted, the way the
new and old todo file formats treat the item date header makes them
practically incompatible.  However, I've provided a command which
converts a copy of an old-style todo file into new-style one and a copy
of an old-style `todo-file-done' file into a new-style todo archive
file.  I've tested this with the default value of the date/time header
string used by the old version, and it should also work with custom
values that satisfy certain conditions, but this would need more testing
and it's not unlikely that some manual post-editing would be necessary.
I hope this is an acceptable approach.  If so, then I have a number of
questions about how to proceed:

- The first thing to decide is where and under what name to install the
  new version.  Should I simply replace the old version?  This would
  essentially force users of the old version to convert to and learn to
  use the new version.  In principle, that should not be a problem, but
  since I'm the only one who's used the new version so far, there are
  certain to be use cases and configurations I didn't test well enough
  or even think of at all, so there could well be a period of
  instability for these users.
- Alternatively, I could install the new version alongside the old
  version.  In fact, the code I posted is ready for this, since the file
  is called todos.el and it uses the prefix "todos-", so it can be
  loaded without interfering with the old version.  This would allow
  people to test the new version while still being able to use the old
  version.  The disadvantage of this is inertia: since people wouldn't
  have to use the new version, it may get less testing.
- A third alternative is to install the new version as posted with the
  new name and prefix in place of the old version and move that to
  lisp/obsolete/, so people could still use it but would have more
  incentive to use the new version.

- Although I eliminated, changed or reimplemented almost all the code in
  the old version, there are bits here and there that I've retained, as
  well as the basic concepts and UI of handling todo lists.  So should
  the original author, Oliver Seidel, still be listed as an author, or
  is it sufficient to acknowledge him in the commentary (as I do in the
  code I posted)?

- If Glenn Morris approves, can I install the patch I included for
  diary-lib.el?  Without this, if a todo file is included in the Emacs
  diary, then when a todo item appears as an entry in the Fancy Diary
  display and you click on it, you may not jump to the right item in the
  todo file.  It's not a showstopper, but should be supported for proper
  integration with the diary.  But maybe there's a better way of getting
  the right behavior than this patch.  (BTW, I think this issue already
  exists for the current version of todo-mode.el.)

- The code makes use of a powerset function, which Emacs doesn't have.
  I tried but couldn't come up with my own algorithm but found a
  recursive Common Lisp implementation and an iterative one in C on a
  website whose content is licensed under the GFDL.  I reimplemented the
  latter in Elisp, so at least the code is not literally copied.  Is
  this a cause for concern with respect to copyright assignment?

- I've tried to follow the Emacs coding conventions and used checkdoc,
  but one of the things I'm uncertain about is the new "<prefix>--"
  convention.  Since this is not a general-purpose library, basically
  every function and variable in it is not meant for use by other
  packages.  On the other hand, some clearly internal functions, such as
  the powerset function, could be used by other packages, but more
  likely they would be redefined using the package prefix.  So for the
  time being I haven't applied this convention but I'd be happy to do so
  in specific cases, or if the guidelines for using it can be spelled
  out more precisely.

- I also have a question about documentation.  The user guide I posted
  is certainly too long and detailed for the commentary section of the
  source code, and I guess also for the Emacs manual.  Should I try to
  destill it down to a reasonable manual entry, added to the diary
  chapter?  If so, I'd be grateful for suggestions about what to omit or
  how to make it otherwise suitable.  Alternatively, if it is deemed
  worthwhile including all the information, it could be added as
  separate manual.

Steve Berman



  reply	other threads:[~2013-06-11 18:36 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-09 23:31 New version of todo-mode.el (announcement + user guide) Stephen Berman
2013-06-10 13:24 ` Bastien
2013-06-10 14:35   ` Stephen Berman
2013-06-10 14:49     ` Bastien
2013-06-10 20:51       ` New version of todo-mode.el (code) Stephen Berman
2013-08-30 18:31         ` Jambunathan K
2013-09-08 21:09           ` Stephen Berman
2013-06-10 14:52     ` New version of todo-mode.el (announcement + user guide) Óscar Fuentes
2013-06-10 20:52       ` Stephen Berman
2013-06-11  0:20         ` Stefan Monnier
2013-06-11 18:36           ` Stephen Berman [this message]
2013-06-11 21:48             ` Stefan Monnier
2013-06-12 21:37               ` Stephen Berman
2013-06-13  1:06                 ` Stefan Monnier
2013-06-13 20:53                   ` Stephen Berman
2013-06-12 17:28             ` Glenn Morris
2013-06-12 21:26               ` Stefan Monnier
2013-06-12 21:37               ` Stephen Berman
2013-06-13  1:18                 ` Stefan Monnier
2013-06-13 20:53                   ` Stephen Berman
2013-06-14  0:21                     ` Stefan Monnier
2013-06-14 21:37                       ` Stephen Berman
2013-06-15  0:40                         ` Glenn Morris
2013-06-15  1:49                         ` Stefan Monnier
2013-06-15 12:52                           ` Stephen Berman
2013-06-16  0:44                             ` Stefan Monnier
2013-06-16 22:52                               ` Stephen Berman
2013-06-17  0:37                                 ` Stefan Monnier
2013-06-17 19:50                                 ` Glenn Morris
2013-06-17 22:33                                   ` Stephen Berman
2013-06-12 18:30             ` Wolfgang Jenkner
2013-06-12 21:38               ` Stephen Berman
2013-06-13  1:24                 ` Wolfgang Jenkner
2013-06-13 20:54                   ` Stephen Berman
2013-06-13 10:59 ` Vitalie Spinu
2013-06-13 20:54   ` Stephen Berman
2013-08-31  3:55 ` Jambunathan K

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87mwqwpk98.fsf@rosalinde.fritz.box \
    --to=stephen.berman@gmx.net \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).