Hi,

I just waned to explain the work we (Erwan Guyomarc'h and me) have done
on quota so far, and what will follow next.

I will also try to write this kind of mail more often, to offer more
readability on my work on James.

The goal of our project is to solve most issues related to Sieve :

 - allow users to manage their sieve scripts
 - use these Sieve Script upon mail delivery
 - validate RFC-5228 (http://tools.ietf.org/html/rfc5228) compliance
(and by the way have at least tests that validate LocalDelivery )
 - Implement RFC-5230 (https://tools.ietf.org/html/rfc5230) : Vacation
extension (and document the full process for implementing SIEVE extensions)

Why solving these issue ?  -> We think Sieve integration in James is a
critical blocker for the (upcoming) 3.0 .

To sum up, we identified / created the following tickets related to
these goals :

    JAMES-1373 Test and document jsieve in server 3.0b4
    JAMES-1614 SieveRepository should be located in the data-* directory
    JAMES-1615 Write a SieveDefaultRepository that correspond to the
today defaut behaviour
    JAMES-1616 Generalize unit tests for SieveRepository
    JAMES-1617 Implement a Cassandra SIEVE repository
    JAMES-1618 Create a manage sieve server
    JAMES-1619 Write tests for mail delivery
    JAMES-1620 Proove JSIEVE integration in JAMES works
    JAMES-1645 As an administrator, I should be able to administrate
Sieve Quotas
    PROTOCOLS-68 Add sievemanager as protocols module
    PROTOCOLS-112 Manage SIEVE interpreter should be RFC compliant
    MPT-23 Write MPT tests for Manage SIEVE
    JSIEVE-94 Nullpointer in SieveMailAdapter#post()
    JSIEVE-73 Ensure Body Extension Functions As Per Specification
    JSIEVE-79 Implement a mechanism for users to manage their Sieve
scripts via SMTP
    JSIEVE-96 How to deploy Sieve scripts
    JSIEVE-86 Potential bidirectional dependency between jsieve manager
and server
    JSIEVE-77 Interfaces describing the operations required for managing
per user Sieve Scipts and default implementations.
    JSIEVE-103 - Implement vacation mode
<https://issues.apache.org/jira/browse/JSIEVE-103>





So far, we already committed :

    JAMES-1614 SieveRepository should be located in the data-* directory
    JAMES-1615 Write a SieveDefaultRepository that correspond to the
today default behavior
    PROTOCOLS-68 Add sievemanager as protocols module




We opened reviews for :
   
    https://github.com/apache/james-project/pull/20

        JAMES-1619 Write tests for mail delivery

        Comment : The diff is small and reviewing it should not be
complicated.

    https://github.com/apache/james-project/pull/22
    https://github.com/apache/james-jsieve/pull/5

        JAMES-1615 Write a SieveDefaultRepository that correspond to the
today default behavior

        Comment : Retro compatibility with today behavior.
        This PR also integrate
        We want a user to be able to choose his SieveRepository using
Spring (still a little work to be done)
        And we want to use the configured SieveRepository in order to
retrieve user script upon mail receival.
        (Agree ticket is not well named, I gonna fix it)
   
    https://github.com/chibenwa/james-project/pull/8
    https://github.com/apache/james-jsieve/pull/4

        JAMES-1620 Proove JSIEVE integration in JAMES works

        Comment : To avoid a merging hell, I put all the diffs on the
same branch. I opened this PR on my repo in order to allow one to review
only this part of the history.

        I only found two issues with Sieve integration :
          - on size handling (it is minor)
          - on address handling (a method name was misinterpreted)


    https://github.com/apache/james-project/pull/19

        JAMES-1618 Create a manage sieve server
        MPT-23 Write MPT tests for Manage SIEVE
   
        Comment : I know this PR is not the more readable in the world.
I had really hard time trying to make the code more readable. The
history is not clean, I agree, but the final result is.
        On future PRs I will work on this point.
        Maybe I should also have shorter iterations, to avoid coming
with too huge diffs. I don't like the idea of committing still useless
code but maybe I can open intermediary reviews.
        However, review can still be done using the full diff and by
activating the github split view. I don't know if it helps.
        If you have suggestions...





What will follow next ?

    JAMES-1617 Implement a Cassandra SIEVE repository

        Erwan is working on it.

    JAMES-1645 As an administrator, I should be able to administrate
Sieve Quotas

        I am going to do some CLI tomorrow :-)

    JSIEVE-94 Nullpointer in SieveMailAdapter#post()

        Definitely this needs to be investigated. It should not take us
too much time, so....

    JSIEVE-73 Ensure Body Extension Functions As Per Specification

        Today, Body extension is not RFC-5173 compliant at all. Using
MIME4J, something usefull can come out of this with some work so that we
can fully support this extension.

    JSIEVE-103 - Implement vacation mode
<https://issues.apache.org/jira/browse/JSIEVE-103>

        This is more to explore, discover and document how to write
Sieve extensions, test it, and integrate it in James

    JAMES-1373 Test and document jsieve in server 3.0b4

        Tests are in review
(https://github.com/chibenwa/james-project/pull/8)
        Documentation will come after the Vacation extension implementation.

       

Benoit

Reply via email to