Paolo Castagna wrote:
> Hi,
> I've added a JenaDist module here:
> https://svn.apache.org/repos/asf/incubator/jena/Jena2/JenaDist/trunk/
>
> The aim of this module is to create the Apache Jena distribution
> (including jena-core, jena-iri, jena-arq, jena-larq and jena-tdb).
>
> It is not perfect, but it's better than nothing.
Still not perfect, but some progress:
- Files created have been renamed to:
- apache-jena-2.6.5-incubating-SNAPSHOT-distribution.zip
- apache-jena-2.6.5-incubating-SNAPSHOT-source-release.zip
- apache-jena-2.6.5-incubating-SNAPSHOT-jar-with-dependencies.jar
- apache-jena-2.6.5-incubating-SNAPSHOT-one-jar.jar
- apache-jena-2.6.5-incubating-SNAPSHOT-jar-with-dependencies.jar
is a single jar which includes jena-core, jena-arq, jena-iri, jena-larq
and jena-tdb as well as their dependencies.
- apache-jena-2.6.5-incubating-SNAPSHOT-one-jar.jar
is a single jar which includes jena-core, jena-arq, jena-iri, jena-larq
and jena-tdb but not their dependencies.
- classes/* directories have been filtered out from the -source-release.zip
- BUILD.txt with instructions on how to use jena-dist has been added
target audience: release manager
- README.txt with description of what the -distribution.zip and
-source-release.zip files contain as well as instructions on how to use
"install" Apache Jena has been added. Target audience: Jena users.
- An example of output produced running "mvn -Papache-release deploy" is here:
https://repository.apache.org/content/repositories/snapshots/org/apache/jena/apache-jena/2.6.5-incubating-SNAPSHOT/
I did not test it with mvn -Papache-release release:prepare and
mvn -Papache-release release:perform since these commands will change
pom.xml removing -SNAPSHOT from the versions and tag the source on SVN
appropriately. It's possible to revert from that.
Running with mvn install | mvn package should be fine.
- TODO.txt with pending tasks/improvements and a known issue has been added
jena-dist does not remove the need for a Jena release process document:
https://cwiki.apache.org/confluence/display/JENA/ProcessRelease
Two good examples are:
- http://sling.apache.org/site/release-management.html
- https://cwiki.apache.org/WHIRR/how-to-release.html
jena-dist does not interfere with the independent life cycle of each of
the Jena modules (i.e. jena-core, jena-iri, jena-arq, jena-larq, jena-tdb,
etc.). It is possible, for example, to release jena-arq without the need to
use or interact with jena-dist.
The aim of jena-dist is to produce the -distribution.zip and
-source-release.zip files above as well as a single jar with|without
dependencies.
jena-dist is an attempt to satisfy the goals stated here [1], in particular:
+ Balance cost of change and benefit
==> no change to the existing modules, 1 day+night
+ A single download zip file for using Jena as a library
==> [2] (~ 26 MB)
+ A single jar file for using Jena as a library
==> [3,4] with|without dependencies
Currently not satisfied goal is:
+ a single obviously-named Maven artifact - at the moment, a single
dependency to pull is e.g. TDB because that pulls in the rest,
which isn't exactly obvious.
At the moment, I am not sure how best to achieve this and if it is better
to have something separate or it can be done directly in jena-dist.
There is still a <moduleSets> vs. <dependencySets> investigation to evaluate
pros/cons. Maybe it's possible to use <dependencies> and satisfy this goal
as well.
I left JenaDist where it is now in SVN, but if a better and simpler solution
comes along, I am happy to scrap it (== move it back to the Scratch area).
Consider JenaDist as a practical/pragmatic proposal which, if does not work
for us, we can simply drop.
An example of a similar approach is available here:
https://svn.apache.org/repos/asf/maven/maven-3/trunk/apache-maven/
... it's the Maven module to build the Apache Maven distribution:
http://www.apache.org/dist/maven/source/
Paolo
[1] http://markmail.org/thread/tqyj7qzklnxsz2kc
[2]
https://repository.apache.org/content/repositories/snapshots/org/apache/jena/apache-jena/2.6.5-incubating-SNAPSHOT/apache-jena-2.6.5-incubating-20111122.161500-2-distribution.zip
[3]
https://repository.apache.org/content/repositories/snapshots/org/apache/jena/apache-jena/2.6.5-incubating-SNAPSHOT/apache-jena-2.6.5-incubating-20111122.161500-2-jar-with-dependencies.jar
[4]
https://repository.apache.org/content/repositories/snapshots/org/apache/jena/apache-jena/2.6.5-incubating-SNAPSHOT/apache-jena-2.6.5-incubating-20111122.161500-2-one-jar.jar