Commit Graph

1881 Commits

Author SHA1 Message Date
Nicolas Sebrecht
43dbe1578c imaplib2: bump to v2.41
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-18 21:54:36 +01:00
Nicolas Sebrecht
cf2a2c769c offlineimap(1): fix formatting
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-17 12:40:34 +01:00
Nicolas Sebrecht
11fd0eb5a4 --help: put a bit more informations
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-17 12:27:34 +01:00
Nicolas Sebrecht
dd2a70fc68 website-doc.sh: learn to export Changelog's definitions
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-17 02:39:44 +01:00
Nicolas Sebrecht
c89d17dacb CONTRIBUTING: know the status of the patches after submission
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-15 22:49:19 +01:00
Nicolas Sebrecht
10aa7c19e6 CONTRIBUTING: fix links
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-15 19:41:17 +01:00
Nicolas Sebrecht
b9d647a4a2 CONTRIBUTING: add section "for the impatients"
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-15 19:39:18 +01:00
Nicolas Sebrecht
cb3f13a331 Changelogs: improve website formatting
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-14 13:55:34 +01:00
Nicolas Sebrecht
6be2656350 doc: move non-API documentation to the website
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-14 01:07:01 +01:00
Nicolas Sebrecht
5eeea9ed83 improve documentation
- README
- restrict sphinx documentation to the API
- update the Makefiles

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-13 19:10:48 +01:00
Nicolas Sebrecht
09fca0ccb1 remove obsolete documentation
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-13 18:51:14 +01:00
Nicolas Sebrecht
2c259369c0 man: offlineimapui: minor typo fix
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-13 18:45:51 +01:00
Nicolas Sebrecht
5478481617 Makefile: avoid packaging the website and the wiki
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-13 18:42:53 +01:00
Nicolas Sebrecht
e8280e642c fix scripts/get-repository.sh to match website/render.sh
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-12 17:54:15 +01:00
Nicolas Sebrecht
65274312a6 README: improve description
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-12 17:53:28 +01:00
Nicolas Sebrecht
7292342cd0 scripts: merge get-website.sh and get-wiki.sh into scripts/get-repository.sh
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-12 15:32:17 +01:00
Nicolas Sebrecht
fcd22a201f get-website/wiki.sh: improve scripts and messages
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-11 11:38:56 +01:00
Nicolas Sebrecht
6d72fd74af Merge branch 'holomorph-remoteuser' into next 2015-03-10 23:06:17 +01:00
Mark Oteiza
a629b4e0e7 do not error if remoteuser is not configured
Signed-off-by: Mark Oteiza <mvoteiza@udel.edu>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-10 23:06:09 +01:00
Nicolas Sebrecht
4d0a7eae42 website-doc.sh: write releases in reversed chronological order
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-10 18:31:18 +01:00
Nicolas Sebrecht
3a00ddaa84 docs: minor improvements
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-10 16:49:53 +01:00
Nicolas Sebrecht
8229800e0c Changelogs: move format back to markdown/kramdown to be more compatible with Jekyll
Learn how to export them to the website.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-10 16:33:30 +01:00
Nicolas Sebrecht
c9ce43313f fix the Makefile(s)
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-10 16:33:30 +01:00
Nicolas Sebrecht
f4579d9660 learn how to fork the wiki
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-10 16:33:30 +01:00
Nicolas Sebrecht
0b43418911 docs: full refactoring of the MANUAL
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-10 16:33:30 +01:00
Nicolas Sebrecht
7c7e7f92b1 website: learn to build the sphinx documentation
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-10 15:52:46 +01:00
Nicolas Sebrecht
f46f08ecf8 README: deep cleanup
Documentation refactorized.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-10 15:52:46 +01:00
Nicolas Sebrecht
d5cea50370 doc: move all sources to the same directory
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-10 15:52:46 +01:00
Nicolas Sebrecht
bbc84ead0f move some documentation to the website
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-10 15:52:46 +01:00
Nicolas Sebrecht
171a7a0797 allow fetching the website in our git work tree
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-10 04:00:03 +01:00
Janna Martl
25513e9038 fix: don't loose local mails because of maxage
Suppose messages A and B were delivered to the remote folder at
"maxage + 1" days ago.

A was downloaded to the local folder "maxage + 1" days ago, but B was only
downloaded "maxage - 1" days ago (contrived scenario to illustrate the two
things that could happen). The behavior was that B gets deleted from the local
folder, but A did not. The expected behavior is that neither is deleted.

Starting where Base.py: __syncmessagesto_delete(self, dstfolder, statusfolder)
is called where:
 - self is the remote folder
and
 - dstfolder is the local folder.

It defines deletelist to be the list of messages in the status folder
messagelist that aren't in the remote folder messagelist with

  not self.uidexists(uid)

A and B are both in the status folder. They're also both *NOT* in the remote
folder messagelist: this list is formed in IMAP.py: cachemessagelist(), which
calls _msgs_to_fetch(), which only asks the IMAP server for messages that are
"< maxage" days old.

Back to Base.py __syncmessagesto_delete(), look at the call
folder.deletemessages(deletelist), where folder is the local folder. This ends
up calling Maildir.py deletemessage() for each message on the deletelist. But we
see that this methods returns (instead of deleting anything) if the message is
in the local folder's messagelist. This messagelist was created by Maildir.py's
cachemessagelist(), which calls _scanfolder(), which tries to exclude messages
based on maxage. So at this point, we *WANT* A and B to be excluded -- then they
will be spared from deletion. This maxage check calls _iswithinmaxage(), and
actually does the date comparison based on the time found at the beginning of
the message's filename. These filenames were originally created in Maildir.py's
new_message_filename(), which calls _gettimeseq() to get the current time (i.e.
the time of retrieval).

Upshot: A's filename has an older timestamp than B's filename. A is excluded
from the local folder messagelist in _scanfolder(), hence spared from deletion
in deletemessage(); B is not excluded, and is deleted.

This patch does not address the timezone issue. As for the IMAP/timezone issue,
a similar issue is discussed in the thunderbird bug tracker here:

https://bugzilla.mozilla.org/show_bug.cgi?id=886534

In the end, they're solving a different problem, but they agree that
there is really no reliable way of guessing the IMAP server's internal
timezone.

Signed-off-by: Janna Martl <janna.martl109@gmail.com>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-09 10:31:54 +01:00
Nicolas Sebrecht
846ebeb2aa docs: GitAdvanced: write the "sending pull request" section
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-07 20:05:17 +01:00
Nicolas Sebrecht
61d292bb85 add TODO.rst
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-07 19:56:05 +01:00
Nicolas Sebrecht
e303c6c5d0 rework documentation
- Add CONTRIBUTING.rst.
- Improve MAINTAINERS.rst.
- Split long HACKING.rst into:
  * dco.rst
  * GitAdvanced.rst

Update content.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-07 19:26:17 +01:00
Nicolas Sebrecht
2377353cae rfcs: update RFCs and provide better filenames
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-06 21:27:52 +01:00
Nicolas Sebrecht
5ecd557dfb doc: add IMAP RFCs
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-03-02 10:52:26 +01:00
Nicolas Sebrecht
efc4df1bd7 LocalStatusSQLite: labels: don't fail if database returns unexpected None value
This requires more researches. See
  https://github.com/OfflineIMAP/offlineimap/issues/103
.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-02-22 14:15:55 +01:00
Nicolas Sebrecht
ca06819e70 imaplibutil: add missing errno import
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-02-17 10:34:20 +01:00
夏恺(Xia Kai)
d36209a305 add proxy support powered by PySocks
Read proxy option in imapserver, instantiate a class in imaplibutil
using a self-defined keyword and a socket instance, and use this socket
instance to substitute the default socket instance used in imaplib2.

Signed-off-by: 夏恺(Xia Kai) <xiaket@gmail.com>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-02-17 10:34:20 +01:00
Nicolas Sebrecht
a1383da9b3 LocalStatusSQLite: provide information on what is failing for OperationalError
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-02-16 10:31:21 +01:00
Nicolas Sebrecht
73952b8c2c offlineimap.conf: say what is the default value for the sep option
Some style improvements.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-02-13 17:43:29 +01:00
Nicolas Sebrecht
cd962d40a8 MANUAL: add known issues entry about socktimeout for suspended sessions
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-02-13 17:32:24 +01:00
Nicolas Sebrecht
30499cf680 MANUAL: rename "KNOWN BUGS" TO "KNOWN ISSUES"
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-02-13 17:32:24 +01:00
Nicolas Sebrecht
655c2b1fb9 sqlite: provide offending filename when open fails
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-02-13 17:18:07 +01:00
Nicolas Sebrecht
9e63fa3784 fix: folder/*: never set self.messagelist to None
Empty the list by setting an empty dict.
Introduce BaseFolder().ismessagelistempty().

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-02-13 17:07:18 +01:00
Nicolas Sebrecht
baee2b6fd9 fix: folder/Base: missing """ for doc string
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-02-13 17:07:18 +01:00
Nicolas Sebrecht
95eb8697f9 folder: LocalStatus: avoid to redefine 'file'
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-02-10 17:35:44 +01:00
Nicolas Sebrecht
461554b7b1 more style consistency
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-02-10 17:25:00 +01:00
Abdo Roig-Maranges
5318af606e docs: expand documentation of the gmail labels syncing
- Suggest that this works well together with email indexing.

- Warn about modifying the labelsheader after a sync.

- In the example replace X-Gmail-Keywords by X-Keywords. I think this is
  misleading, since no email client will pick up X-Gmail-Keywords, while
  X-Keywords (the default) is recognized by some.

- add paragraph explaining special gmail labels.

Merge-request-from: Abdó Roig-Maranges
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2015-02-10 12:35:54 +01:00
Eygene Ryabinkin
fd79baade5 Merge branch 'next' of github.com:OfflineIMAP/offlineimap into next 2015-01-31 10:08:07 +03:00