Bug #5076
openMinimize the number of files downloaded from the Ptolemy repository.
0%
Description
(12) Minimize the number of files downloaded from the Ptolemy repository.
Ptolemy is a very large project that consists of a large number of files. Many of these files are not useful to Kepler, but they nonetheless significantly slow down Eclipse and IDEA. It should be possible to design the build system so that it does not download a majority of the files that are not actually useful for Kepler. One approach would be to divide Ptolemy into modules. Another would be to divide the Ptolemy repository into parts and download those parts either into separate modules or one or more special modules.
Related issues
Updated by Christopher Brooks over 14 years ago
Ptolemy currently is deployable as a number of jar files that do not
include the source code.
The Ptolemy project has a proposal to get funding to use OSGi to componentize
Ptolemy. This funding is likely, but until it is a done deal, the work
will not happen. This work is scheduled to begin in late Summer, 2011, but
could happen earlier.
The short term solution would be to use the current Ptolemy makefile
infrastructure to generate the list of jars:
svn co https://source.eecs.berkeley.edu/svn/chess/ptII/trunk ptII
cd ptII
export PTII=`pwd`
./configure
make >& make.out
make install jar_dist >& install.out &
make echo_jars JARS=PTINY_KEPLER_JNLP_JARS | grep .jar | awk -F \" '{print $2}'
The last rule produces the following jar files:
../../jar_dist/ptolemy/actor/gui/jnlp/PtinyKeplerApplication.jar
../../jar_dist/doc/docConfig.jar
../../jar_dist/lib/diva.jar
../../jar_dist/lib/kieler.jar
../../jar_dist/ptolemy/ptsupport.jar
../../jar_dist/ptolemy/vergil/vergil.jar
../../jar_dist/ptolemy/domains/domains.jar
../../jar_dist/ptolemy/actor/parameters/demo/demo.jar
../../jar_dist/ptolemy/matlab/matlab.jar
../../jar_dist/ptolemy/matlab/demo/demo.jar
../../jar_dist/lib/matlab.jar
../../jar_dist/doc/codeDoc.jar
../../jar_dist/doc/design/usingVergil/usingVergil.jar
../../jar_dist/lib/jython.jar
../../jar_dist/lib/ptcolt.jar
../../jar_dist/ptolemy/actor/lib/colt/colt.jar
../../jar_dist/ptolemy/actor/lib/colt/demo/demo.jar
../../jar_dist/ptolemy/actor/lib/comm/demo/demo.jar
../../jar_dist/ptolemy/actor/lib/hoc/demo/demo.jar
../../jar_dist/ptolemy/actor/lib/javasound/demo/demo.jar
../../jar_dist/ptolemy/actor/lib/jni/demo/demo.jar
../../jar_dist/ptolemy/actor/lib/python/python.jar
../../jar_dist/ptolemy/actor/lib/python/demo/demo.jar
../../jar_dist/ptolemy/actor/lib/security/demo/demo.jar
../../jar_dist/ptolemy/actor/ptalon/antlr/antlr.jar
../../jar_dist/ptolemy/actor/ptalon/demo/demo.jar
../../jar_dist/ptolemy/actor/ptalon/ptalon.jar
../../jar_dist/ptolemy/domains/continuous/demo/demo.jar
../../jar_dist/ptolemy/domains/continuous/doc/doc.jar
../../jar_dist/ptolemy/domains/ct/demo/demo.jar
../../jar_dist/ptolemy/domains/ct/doc/doc.jar
../../jar_dist/ptolemy/domains/fsm/doc/doc.jar
../../jar_dist/ptolemy/domains/fsm/demo/demo.jar
../../jar_dist/ptolemy/domains/modal/doc/doc.jar
../../jar_dist/ptolemy/domains/modal/demo/demo.jar
../../jar_dist/ptolemy/domains/sdf/demo/demo.jar
../../jar_dist/ptolemy/domains/sdf/doc/doc.jar
../../jar_dist/ptolemy/data/type/demo/demo.jar
../../jar_dist/ptolemy/data/unit/demo/demo.jar
../../jar_dist/ptolemy/domains/ddf/demo/demo.jar
../../jar_dist/ptolemy/domains/ddf/doc/doc.jar
../../jar_dist/ptolemy/domains/de/demo/demo.jar
../../jar_dist/ptolemy/domains/de/doc/doc.jar
../../jar_dist/ptolemy/domains/hdf/demo/demo.jar
../../jar_dist/ptolemy/domains/hdf/doc/doc.jar
../../jar_dist/ptolemy/domains/pn/demo/demo.jar
../../jar_dist/ptolemy/domains/pn/doc/doc.jar
../../jar_dist/ptolemy/domains/rendezvous/demo/demo.jar
../../jar_dist/ptolemy/domains/rendezvous/doc/doc.jar
../../jar_dist/ptolemy/domains/sr/demo/demo.jar
../../jar_dist/ptolemy/domains/sr/doc/doc.jar
../../jar_dist/ptolemy/moml/demo/demo.jar
../../jar_dist/ptolemy/vergil/kernel/attributes/demo/demo.jar
This is 106 jar files. 106 modules seems like too many. See
https://kepler-project.org/developers/reference/ptolemy-package-dependencies
for a list of possible modules.
I'm strongly opposed to creating a copy of the Ptolemy tree because it
makes updating a nightmare. For example, the ptolemy/module-info/revision.txt
has not been updated in almost a month, see bug 4324. This means that
any bug fixes or changes in functionality in Ptolemy are not present
in the Kepler devel tree.
It seems like a good interim solution would be to use ant to invoke the
Ptolemy makefile build system to create the jars and then group the jars
into a module. This would take less time, probably around 32 hrs.
I'd be willing to hack up some rules that would build a few jar files
that would match the module dependencies in
https://kepler-project.org/developers/reference/ptolemy-package-dependencies
The OSGi solution would take a few months and is scheduled for next year so
would probably not happen for Kepler-2.1
Updated by Christopher Brooks over 14 years ago
As per Kepler leadership discussion, moving this to 2.X.Y. Note that
we will have Kepler devel telcon to discuss 2.1, so I'm leaving this as
blocking 5064.