In my opinion this decision belongs to active developers: they are the
users of the source tree and the build tools, so they are entitled to
make the changes to feel confortable.

So, if active developers prefer to have a single branch, then you have
my +1 for this.

IIRC Robert was the main supporter of the split, so maybe he has
something to say...

And maybe they could be merged until we get to a more stable solution,
and then splitted again once they are stable enough.

The important thing is that a clear dependency is kept between modules
and you don't introduce cyclic dependencies.

Stefano

PS: I'm happy to read there is something new on the james 3 codebase!

On 1 September 2015 at 14:29, Benoit Tellier <be...@minet.net> wrote:
> For me this is a +1.
>
> I think there is several issue with today organization :
>
>
>
>  - Some projects are not really separated. For instance, if I want to add
> QUOTA support, I will modify Mailbox interfaces, but also change things in
> protocols.
>
>
>
>  - Having separated modules that are eavily changed makes build hard. Today,
> you can either :
>       - build manually each projects in the correct order and install the
> given jar in your .m2 repository. This is long, error prone, and not
> documented.
>       - develop or rely on third party projects for aggregating this ( what
> we have done in james-parent ). This is not part of the Apache project so
> relying on it seems strange to me. Moreover this tool is designed for our
> needs ( our James with a Cassandra back-end ), with tools we like ( docker
> ).
>    I think both of these options are not the good ones. We easily see that
> modules like protocols, james, mailbox and mpt can't be built separately.
>
>
>
>  - Work-flow is hard. Before starting working with Antoine and Matthieu I
> was working on a PoC for IMAP quota, modifying mailbox and protocols project
> on separated intelliJ instances. Each time I modified something in mailbox,
> I needed to compile it, install it with maven and reload maven in the
> protocol project, slowing me down a lot.
>
>
>
>  - Apache CI is broken. Quite normal as building James is not trivial.
>
>
>
>  - Library version can easily diverge between projects. It may be unseen at
> compile time and with unit test but can cause serious problems at runtime.
> Each time we modify a library version, we have to modify it on each other
> James projects. This is error prone.
>
>
>
>  - Finally, there is the issue that started this thread. There might be
> duplication between mailbox code and james-server-data-* one. In the
> Cassandra example, we developed tools for creating tables, index, custom
> types... That we want to use in both the cassandra-mailbox and
> james-server-data-cassandra. We don't want to duplicate it, we don't want
> dependencies between both projects. The only solution with separated
> projects is to introduce an other separated project introducing these tools
> ( what we started to develop ). This is not a separated case : We can have
> uses of messages queue in several places : mailqueue, mailbox event system,
> ... .
>
>
>
> Merging modules together (mailbox, james, protocols and mpt for me ) solves
> all these issue elegantly and makes it easier to contribute to James.
>
>
> Le 01/09/2015 11:29, Stephen Brewin a écrit :
>>
>> On 01/09/2015 08:18, Matthieu Baechler wrote:
>>>
>>> Thank you for your answer Stephen. It looks like we agree one this
>>> proposal.
>>>
>>> Can I take your answer for a +1 ?
>>
>> +1 for restructuring
>>
>> We should discuss transitioning to GIT separately
>>
>> --Steve
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
>> For additional commands, e-mail: server-dev-h...@james.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
> For additional commands, e-mail: server-dev-h...@james.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to