Hello,

Thanks for this email. I had back in the days similar issues when trying
to build the various James related projects and can recall how
frustrating it was.

I do believe that every developer or people interested in the James
project should be able to build it, and test it easily.

In the recent years we contributed an integration test suite (most
notably for distributed James) that is quite expensive to run. It
requires docker, in order to mimic as much as possible real world usage.

We had a trial at not requiring (ignoring) tests requiring docker but I
am unsure of the status of it. And it don't address memory integration
tests that don't have external dependencies and are still expensive to run.

I would then tend to agree with you proposal.

We have some components implementation with complex testing dependencies
(say mailbox-cassandra relies on a dockerized Cassandra for its unit
tests), which had allowed us to achieve a high confidence with that
component. I'm unsure these components tests should be OPT-IN. Yet they
add to the build entry barrier.

Would a solution be relying on a `mvn clean package --project XXX
--also-make` be acceptable as a developper, and then leave the hard,
long testing work to a continuous integration server?

Otherwise, I think reducing the count of Guice servers would help
reducing build complexity.

I also think some advanced features could live as extensions, part of
James project source code but bundled in separate Jars that would then
be added to the classpath. That way building a server would only require
building its core components.

Sorry, I don't know what is going wrong for the compilation error you
have attached to your mail.

Cheers,

Benoit

On 09/06/2020 05:00, Eugen Stan wrote:
> Hello,
> 
> It's been a while since I wrote on this list. I just tried to build
> James locally and failed.
> 
> I `git clone`d master and `mvn clean package` using adoptopenjdk 11 .
> 
> The compilation fails on my machine (Debian Buster+Testing). That is
> however besides the point.
> 
> I noticed the integration tests are ran as part of the normal build.
> Especially Casandra, ActiveMQ and DB integration tests.
> 
> These have a habbit of taking a lot of time and personally I believe
> they should be OPT-IN.
> 
> I don't use Casandra and ActiveMQ and I don't test on them. It's fine
> that we have integration tests but they should be activated on CI or
> locally for interested parties.
> 
> I believe we need to improve the developer experience a bit and this is
> my proposal that I would like to discuss with everyone.
> 
> 
> I propose we make integration tests OPT-IN behind a maven profile ?!
> 
> I propose we document how people can OPT-IN FOR them.
> 
> What are other ways of making a James build slimmer ?!
> 
> 
> This is the error that I get locally. If someone can give me some clues
> on what is happening I would appreciate it. Thanks,
> 
> ----
> 
> [ERROR] Failed to execute goal
> net.alchim31.maven:scala-maven-plugin:3.4.4:compile
> (scala-compile-first) on project event-sourcing-event-store-api: wrap:
> org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException:
> Could not resolve following dependencies:
> [org.apache.james:event-sourcing-pojo:jar:tests:3.6.0-SNAPSHOT (test)]:
> Could not resolve dependencies for project
> org.apache.james:event-sourcing-event-store-api:jar:3.6.0-SNAPSHOT:
> Failure to find
> org.apache.james:event-sourcing-pojo:jar:tests:3.6.0-SNAPSHOT in
> https://jcenter.bintray.com was cached in the local repository,
> resolution will not be reattempted until the update interval of central
> has elapsed or updates are forced -> [Help 1]
> [ERROR]
> [ERROR] To see the full stack trace of the errors, re-run Maven with the
> -e switch.
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
> [ERROR]
> [ERROR] For more information about the errors and possible solutions,
> please read the following articles:
> [ERROR] [Help 1]
> http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
> [ERROR]
> [ERROR] After correcting the problems, you can resume the build with the
> command
> [ERROR]   mvn <args> -rf :event-sourcing-event-store-api
> ----
> 
> 
> Regards,
> 

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