fixed up entry from 2004-05-27:
[gnus] / todo
1 ;; Also know as the "wish list".  Some are done. For the others, no
2 ;; promise when to be implemented.
3
4 * Go through the todo list and remove items already done.
5
6 * Use a new custom type (`define-widget') for posting-style in `gnus-cus.el'
7   (G c) and for `gnus-posting-styles'.  Maybe some allowed types are still
8   missing.
9
10 * Add proper doc strings to functions and variables explained in the manual
11   (info "(gnus)Gnus Utility Functions")
12
13 * Add Message-IDs or URLs refering to relevant discussions on lists and
14   newsgroups.
15
16 * Use nicer icons, especially group, summary and message mode
17
18   Only basic and frequently used commands should have an icons.
19   Maybe use Gnome icons if we can (copyright assignment?). See
20   http://theotp1.physik.uni-ulm.de/~ste/comp/emacs/gnus/tool-bar/ for a
21   suggestion.
22
23 * Maybe Gnus should support the LIST SUBSCRIPTIONS, see RFC 2980.
24
25 * Merge `message-extra-wide-headers' and ` message-header-synonyms'?
26
27 * Maybe texi/emacs-mime.texi could be divided into user-visible stuff and
28   reference manual for the MIME library.
29
30   Related: Bill Wohler's article on mh-e-user.
31   http://thread.gmane.org/29067.1138078896@olgas.newt.com
32
33 * Fix `change servers' command, see David Kastrup's message.
34   http://thread.gmane.org/x54qewqxz4.fsf@lola.goethe.zz
35
36 * texi/gnus-coding.texi should be fixed.
37
38 * gnus-topic-kill-region
39   From Colin Marquardt <colin.marquardt@usa.alcatel.com>
40   
41   I noticed that when re-arranging topics, C-k yanks a topic just fine
42   (runs gnus-topic-kill-group).
43
44   However, my habit is to do marking and the yanking the region, so I
45   would run C-w on the marked topic. But C-w runs
46   gnus-group-kill-region and doesn't yank the topic (for groups it
47   works fine).
48
49   So could we have a gnus-topic-kill-region, or a
50   gnus-group-kill-region which handles topics as well?
51
52 * Speed up sorting in summary buffer if there is a limit.
53   
54   Suggested by Daniel Ortmann <ortmann@isl.net>.
55
56 * Investigate the memory usage of Gnus. 
57
58   But it does seem strange that Gnus would use some 15meg for this.  I
59   think that is worth investigating.  I suspect that bugs or bad
60   design are causing waste; they could be in Gnus, or in Emacs. -- RMS
61
62 * Google group digest
63   
64   The result of Google group search return a thread. Is it a digest
65   format?
66
67 * NOV caching.
68   
69   Implement NOV caching with Gnus Agent.
70
71 * Allow specification of server in Newsgroups header
72   
73   [Kai wrote]
74
75   WIBNI I could put `Newsgroups: nntp+quimby:bla' into a message and
76   Gnus would know to post this message on my server `nntp:quimby' into
77   the group bla?  I think this would be way cool.
78
79   But Gnus would have to rewrite the Newsgroups header before actually
80   sending the posting.
81
82   Thanks for Micha Wiedenmann for this suggestion.
83
84 * Parsing of the common list confirmation requests so that Gnus can
85    prepare the response with a single command.  Including LISTSERV
86    periodic ping messages and the like.
87
88 * Parsing of the subscription notice to stash away details like what
89    address you're subscribed to the list under (and automatically send
90    mail to the list using that address, when you send mail inside the list
91    group), what address to mail to unsubscribe, and the list info message
92    if available.  Hitting the "get FAQ" command inside a mailing list
93    group should display that stashed copy of the info message.
94
95 * Some help in coming up with good split rules for mailing lists, as
96    automated as possible.  Splitting on To and Cc is almost always not
97    what I want, since it can misfile messages and since if I'm cc'd on
98    list mail I want to get both copies, one in my personal mailbox and one
99    in the list mailbox.  I know other people handle it other ways, but I
100    prefer it that way.  Accordingly, some way to semi-automatically
101    generate split rules based on Sender, Mailing-List, Return-Path,
102    X-Loop, and all of the other random headers that often work would be
103    very cool.
104
105 * Support for zipped folders for all backends this makes sense for.
106   Most likely using jka-compr. (It has been suggested that this do
107   work but I think it should be verified for all backends.)
108
109 * Agent (Can someone write some subtopics here? I don't use it myself
110   so I don't know what is lacking.)
111
112 * Support for encrypted folders. Even if the mail arrives unencrypted
113   Gnus should be able to encrypt the *folder* for added safety. This
114   should go for both Gnus' own folders and the folders Gnus reads from
115   (e.g. /var/spool/mail/${USER}). All backends this makes sense for.
116
117   [John Wiegley's article <200011030445.VAA08277@localhost.dynodns.net>,
118    posted on gnu.emacs.gnus does this.
119    Also, gnus-article-encrypt `K E' encrypts the article body.]
120
121 * Splitting .newsrc.eld so the history is in one file and the
122   configuration is in another. To help those that reads at two
123   locations (e.g. work and home) and want to have the same
124   configuration.
125
126 * gnus-uu-decode should complain if one or more parts of a series post
127   (ie, "part N of X") is missing, and optionally tick what parts are
128   there for decoding in a later session.
129
130 * Additional article marking, and an ability to affect marks placed
131   during e.g. mail acquisition.  I want to be able to notice the
132   subject "fast money" or "web traffic", automatically mark it with a
133   `$', and score it into oblivion.  (But I fear that wanting to change
134   marks with mail-source-* and nnmail-* functions will represent a
135   philosophical conflict with the rest of Gnus' management of article
136   marks.  mail-source-* and nnmail-* currently hack around with files
137   under ~/Mail and leave traces in ~/Mail/active, but don't affect
138   things stored in .newsrc.eld.)
139
140 * A much better interface to nnmail-split-methods.  I don't know how
141   I'd like this done, but I know that the current method of manually
142   hacking regexps is pretty untenable for new users.  My boss, who is
143   tenured faculty at CMU and CEO & CTO at JPRC, and whose research
144   work has involved Lisp for the last 25 years, is trying to implant
145   himself in a Gnus mail environment, and this is a big sticking point
146   even for him.
147
148 * PGP-supported encryption of entire nnml & nnmh groups.  There are
149   people with whom I exchange mail routinely who don't send w/PGP, but
150   I'd really rather that the content not be left lying around
151   unencrypted.  Hook into article acquisition the way jka-compr
152   supposedly does, to auto-decrypt every message read.
153
154   [See Support for encrypted folders.]
155
156 * Baby's First Mail In Gnus.  Some set of functions that the
157   new-to-mail-in-Gnus user can invoke which will query the user
158   appropriately for the basic information required to establish mail
159   handling, leaving the appropriate traces in .gnus.  Perhaps a
160   customize buffer would be appropriate.
161   - Where does your mail come from?
162   - If some server, what is your POP/IMAP protocol identity?
163   - What is your identity when sending mail, as opposed to posting to
164     Usenet?
165   - Here are some basic concepts of mail groups (list a few:
166     personal mail, company-wide mail, mailing lists, garbage dumps,
167     receptacles for outbound copies of what one sends; which ones do
168     you want to instantiate, and what mail should land in each?
169     [/viz./ problem of nnmail-split-methods interface.]
170
171   [Probably `assistant.el' will provide this.  But it's development is
172   stalled.]
173
174 * Full integration of nnir into Gnus.  Generic hooks for adding new
175   external nnir sources.  I use a couple experimental, in-house tools
176   (JPRC is a research lab, occupied with document analysis and machine
177   learning) and adding new search engines to nnir by hacking the main
178   nnir.el module is rather clunky.
179
180 * Manual ordering of articles in an nnml folder.
181
182   That is, keystrokes to move articles (or whole threads) up or down
183   in the *Summary* buffer relative to the other articles.  The order
184   would be persistent (e.g., across gnus sessions).
185
186   With this ability, an nnml folder would make for a good to-do list.
187
188 * Since many uses Gnus to store to do lists I think it is time for an
189   nntodo. (I know Kai already written one, maybe use that for a start?)
190
191 * nnsql backend, which would allow messages or folders to be imported
192   in a local (My|Postgre|?)SQL RDBMS.
193
194 * "posting profiles" ideally accessible from a popup menu; allowing
195   choice between predefined profiles of
196   from,name,organization,etc. Example: I'm at home, but need to reply
197   to a work mail; i can hit 'R', then use this command to switch to my
198   'work' profile for purposes of this one reply. (This might already
199   be possible with current Gnus, but I don't think so.)
200
201 * Better handling of the mail retrieving / splitting feature:
202   - the variables <backend>-get-new-mail should not exist anymore. Mail
203     retrieving should be a separate matter.
204   - we should be able to split mails to groups AND backends at the same time.
205   - meanwhile, we should still be able to associate certain mail sources with
206     certain backends.
207
208 * A better interface to the agent download scoring rules, like the one
209   for the other scoring rules.
210
211 * Editing of messages in the agents cache.
212
213 * More article marks (like '!' or '?').
214   Maybe user defined marks that can be displayed as any choosen charakter,
215   so one could do things like limiting on, to do whatever one likes with
216   these articles.
217
218 * A possibility to add notes to messages. If thouse could include links
219   to other (stored) messages this would be very practical.
220
221 * Allow article editing in groups which do not support it, but
222   emulating it via deleting the old article and entering the new one
223   into the group.  This would be very useful to support `T ^' (say) in
224   nnimap groups.
225
226 * Allow user to specify which kinds of groups should be displayed.
227   For example, I want to display all the groups that are displayed
228   now, plus those which have cached messages in them.  (Gnus does
229   display those with ticked messages but not those with
230   cached-but-unticked ones.)  This would become even more important
231   when we allow labels.
232
233 * Create new data type `article identifier' and use that instead of
234   article numbers.  A first implementation could offer something like
235   (num . 4711) but this could be extended.  This would be useful for
236   using servers with *really* large numbers -- there we could have a
237   bignum type.  It might also be useful for the nnweb and nnultimate
238   thingies where article identifiers are not really numbers.
239
240 * Allow use of digests to keep related articles.  Normally, you use
241   groups to group together articles which are thematically related.
242   But sometimes, you have so many themes that this becomes
243   impractical.  WIBNI I could have digests in a group, and there was a
244   way to add a new article to one of the digests in that group?
245
246   Or maybe what I really want is a way to tell Gnus that a specific
247   thread should always be hidden (as in `T h') by default, while most
248   other threads are not hidden by default.  Hm.
249
250 * New backend nnbabylfolder.  There is also nnbabyl which is like
251   nnmbox but uses babyl format, but there is no babyl format
252   equivalent of nnfolder.
253
254 * Make movement commands in summary buffer independent of `move after
255   mark' behavior when marking articles.  Currently, if you don't want
256   `E' to move to the next unread article, you have to set
257   gnus-summary-goto-unread to nil, and then there is no way to move to
258   the next or previous unread article.
259
260   This one has two sub-tasks.  Providing the commands is one thing,
261   finding out useful key bindings for them is another.  I think we
262   could provide the commands first while not changing the behavior of
263   the key bindings; then different people can experiment with
264   different key binding schemes until we find something which suits
265   many people.
266
267 * `Move to next/previous/first article' is a misnomer, since ticked
268   articles are also unread but not moved to by these commands.  Should
269   the terminology be fixed or the documentation, or what?
270
271 * Allow sorting of threads by newest article rather than by root of
272   thread.  Consider the following thread structure:
273
274     root1       Jan 1
275       leaf1     Jan 4
276     root2       Jan 2
277       leaf2     Jan 3
278
279   These two threads are sorted this way because root1 is older than
280   root2.  I want an option to sort them the other way round because
281   leaf1 is newer than leaf2.
282
283 * Improve editing of MIME messages.  I would like to use html-mode to
284   edit the body of a text/html message, and enriched-mode for
285   text/enriched messages, and so on.  This should go for multipart
286   messages as well.  This is probably a hard one since Emacs currently
287   does not allow several major modes per buffer.  But maybe it would
288   be nice to hack Emacs to provide this infrastructure so that Gnus
289   can make use of it?  This would also make it possible to provide
290   nifty commands for editing the headers, for example, rather than
291   relying on commands which do the same thing everywhere.
292   message-x.el is really just a half-assed attempt at doing it, and
293   while it is useful, that's not the way it should be done.
294
295   I think Francisco Potort\e,Al\e(B already did something like this?
296
297 * Provide commands for editing MML tags.  For example, there could be
298   a command mml-add-tag-attribute which prompts me for an attribute
299   name (with completion, from the set filename, type, ...), and then
300   for a value.  (This is like `C-c +' in psgml.)  Or there could be a
301   command which showed me all the attributes in an MML tag and allows
302   me to use TAB to move between them, and then to edit each attribute
303   value.  (This is like `C-c C-a' in psgml.)
304
305 * Have Gnus automagically set group parameters for mailing list
306   groups.  For example, if I have a splitting rule that automatically
307   sorts ding@gnus.org into mail.ding, then Gnus should clue in, set
308   the to-list parameter to 'ding@gnus.org', and set total-expire.
309   (This is probably Hard (TM).  And of course the user should be able
310   to configure what parameters exactly get set.)
311
312 * Along the same lines, automagically detect broken reply-to's.  (But
313   don't auto-detect users legitimately setting a reply-to header that
314   points back to the list.)
315
316 * Make it easier to change parameters on a set of groups,
317   e.g. set/clear gcc-self on process-marked groups.
318
319 * Make it easier/possible to migrate between primary select-methods,
320   if that concept is going to be kept.  Right now I have only one
321   group on my primary server, and I'd kind of like to change from nntp
322   to nnml, but apparently this doesn't work well.
323
324 * Make it possible to refer to uniquely-named groups without
325   select-method prefix (e.g. mail.misc instead of nnml:mail.misc).
326
327 * Allow a user-defined picons directory for personal groups.
328
329 * Annotations as discussed last autumn. Be able to make comments to
330   articles for all bakends. The comments amybe should go into a
331   seperate "backend", like nndraft.
332
333 * Catchup on a topic and all its subtopics. I.e.