Project

General

Profile

Bug #5076

Minimize the number of files downloaded from the Ptolemy repository.

Added by David Welker about 9 years ago. Updated about 9 years ago.

Status:
New
Priority:
Normal
Assignee:
Category:
general
Target version:
Start date:
06/30/2010
Due date:
% Done:

0%

Estimated time:
Bugzilla-Id:
5076

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

Blocked by Kepler - Bug #5064: Kepler 2.1 Tracking BugNew06/30/2010

History

#1 Updated by Christopher Brooks about 9 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

#2 Updated by Christopher Brooks about 9 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.

#3 Updated by Redmine Admin over 6 years ago

Original Bugzilla ID was 5076

Also available in: Atom PDF