Re: build/test
Rob - what's actually slow? (I tried to "mvn test" but got a compile
error - see next message.)
We have a few slow points in the test suite (e.g. SDB) that would be
worth dropping for a development build. The only trouble I see is that
sometimes I do a "mvn deploy" build from my machine to push out a fix to
user when Jenkins is being slow.
I wish there were some maven magic whereby profile was a function of
goal. Or -DskipTests for some targets and not others.
Andy
However it is a slow build at ~5 mins or a modern machine like my
2011
MacBook Pro, and much longer on older/heavily contended machines like
Apache build servers. Therefore my concern is whether developers are
willing to stomach a longer build on their local machines?
One thought I had was about using maven profiles, right now I have
the
following in my local uncommitted top level POM:
<profiles>
<profile>
<!--
This is the dev profile, it only builds the common modules and
does not build the slow building JDBC modules or the distribution packages
-->
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>jena-parent</module>
<module>jena-iri</module>
<module>jena-core</module>
<module>jena-arq</module>
<module>jena-tdb</module>
<module>jena-text</module>
<module>jena-sdb</module>
<module>jena-fuseki</module>
<!-- Slow to build - exclude from default dev build -->
<!-- <module>jena-jdbc</module>-->
<module>apache-jena-libs</module>
<!-- Don't build distro package every time -->
<!-- <module>apache-jena</module> -->
</modules>
</profile>
<profile>
<!--
This is the complete profile, it builds everything including slow building
modules and
the distribution packages.
This profile should be enabled when cutting a release
-P apache-release,complete
-->
<id>complete</id>
<modules>
<module>jena-parent</module>
<module>jena-iri</module>
<module>jena-core</module>
<module>jena-arq</module>
<module>jena-tdb</module>
<module>jena-text</module>
<module>jena-sdb</module>
<module>jena-fuseki</module>
<module>jena-jdbc</module>
<module>apache-jena-libs</module>
<module>apache-jena</module>
</modules>
</profile>
</profiles>
Would people be OK with going with something like this? It would mean that by
default we only build the common modules and then when we come to do releases
or want a more thorough build we can build the complete thing (or even add a
third release specific profile?). We may want to have a little more discussion
about which modules go in which profile and how many profiles we want to have.
I can commit what I have now and people can iterate on it?
Getting back to JDBC specifics, no there is not any website documentation yet.
However the javadoc is pretty comprehensive so with a couple of basic web pages
written up may be sufficient, I will try and at least stub those pages out
today.
Rob