The open TODO list for imapfw, with no particular order.
- [ ]
This Todo list is deprecated. Check out the wiki instead.
- The framework: introduce the 3 ways to get things done (dict-based
actions, rascal-based actions with
imapfw.api
and as a master-library) [assigned @nicolas33]. - Design of syncAccounts. [assigned @nicolas33].
- The controllers. [assigned: @nicolas33].
- Use ZCA? No:
imapfw.interface
- Use typing.
- Controllers, drivers: improve getOwnerName() method name.
- Put types into
imapfw.annotation
. - Rename runners of engines to Engine.run.
- Complete interfaces.
- Signature checking.
-
__getattr__
: declare interfaces in docstring. - Make all modules use
imapfw.interface
. - Unit tests for
imapfw.interface
. - Bind interfaces documentation to providers.
- add CONTRIBUTING.
- Sometimes, exceptions are delayed in logs: print reason ASAP and raise.
- Remove passwords from logs.
- Support asyncio.
- Quick sync.
- Unit tests for object imported from rascal
actions.testrascal
.- Accounts.
- Repositories.
- Controllers.
- Drivers.
- More unit tests!
- Tests with Fake driver.
- Tests against a story-based IMAP server (rely on Comedy.
- A library/CLI based on triggers for story-based testing.
- [ ]
- [ ]
- [ ]
- Implement
drivers.maildir
- Implement
drivers.imap
- Support Gmail. Might be better as a controller!
- Have version number, maintainer, contact, etc. Force redefinition in any child.
- Support imaplib3. (WIP @nicolas33)
- Write a new "home-made" imapc library.
- Support other imap libraries?
- Intermediate DSL to easily create apps and actions in the rascal?
- Store exceptions in a cache.
- Add context to errors (like previous requests to drivers).
- Embedd the rascal.
- Support per-session errors.
- Diff of the cache.
- Diff of the repositories.
- Introduce decorator to debug classes.
- SyncArchitect: honor rascal on exception.
- New
actions.testrascal
to unit tests the rascal objects. - Improve
actions.examine
.- Output in whatever format like Markdown.
-
actions.convert
convert a repository into another: a one pass-sync without cache. -
actions.errors
to read/delete/send stored errors.
-
actions.offlineimap
to run with OfflineIMAP's configuration file.- Parse configuration file.
- Support SQLite cache.
-
actions.shell
for interactive sessions.- let play with both sides of account.
- let play with a repository.
- introduce engines.shell to put a shell as engine.
- Provide DSL for easy use?
-
actions.user
to run an action defined in the rascal.- Provide DSL for easy use?
- Introduce a generic cache sub-system.
- Support namespaces.
- Complete
actions.syncAccounts
.
- Have version number, maintainer, contact, etc. Force redefinition in any child.
-
Transcode
: handle UTF-7 right. -
ReadOnly
: turn a repository in read-only mode. -
NameTrans
: well-known feature. :-) -
Fake
: static fake of end-drivers. Amazingly usefull while developing! WIP: @nicolas33 -
PartialFake
: same asFake
but won't fake everything.
-
Debug
: support "-d drivers" to debug drivers.- automagically add the Debug controller when "-d drivers" is enabled.
-
Adventure
: story-based fake end-drivers: rely on Comedy. -
Duplicate
: dups either side to another repository. Sounds like "chaining" repositories. -
Sieve
: a Sieve updater. -
Eveis
(palindrome of Sieve): dynamically filter new mails on client side with Sieve language. -
Partials
: partial fetches for large bodies.- Optionally discard large attachements.
-
Prefetch
: allow pre-fetching some data. (Really usefull?)
-
Allow tuning the UI.
- Introduce
--logfile
. - CLI options for logging loggers.
- Make use of logging filters disable debug messages.
- Better intregation with logging formatters.
- Introduce
-
Colorized output.
- Global review.
- Generate documentation (sphinx) for the website (like in offlineimap).
- Make a new website (Jekyll based for Github).