Skip to content
This repository has been archived by the owner on Oct 7, 2022. It is now read-only.
Nicolas Sebrecht edited this page Apr 9, 2016 · 3 revisions

General

Refactoring

  • 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.

General improvements

  • Introduce CONTRIBUTING. [assigned @nicolas33]

Rascal

  • Expose IMAP timeout.
  • Sane & documented minimal rascal.

Features

  • Support asyncio?

Testing

  • Unit tests for object imported from rascal actions.testrascal.
    • Accounts.
    • Repositories.
    • Controllers.
    • Drivers.
  • Tests with Fake driver (full static responses).

Drivers

  • Support Gmail. Might be better as a controller!
  • Have version number, maintainer, contact, etc. Force redefinition in any child.

Controllers

  • Have version number, maintainer, contact, etc. Force redefinition in any child.

Required controllers

  • DryRun: Enable a --dry-run CLI option.
  • 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!
  • PartialFake: same as Fake but won't fake everything.

Crazy ideas of controllers

  • 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?)

Others

Documentation

  • Global review.
  • Generate documentation (sphinx) for the website (like in offlineimap).

Screencasts

  • Global design of syncAccounts.
  • The framework: introduce the 3 ways to get things done (dict-based actions, rascal-based actions with imapfw.api and as a master-library)
  • The controllers.
Clone this wiki locally