Well, I hope this subject does not get lost for the OSGi-dev list ...
I do think this is a very relevant subject for OSGi developments that
goes much wider than PDE, even though PDE is a primary player in
this area.
Kind regards,
Peter Kriens
JV> I'm including pde-build-dev in the To: list in hopes of moving
JV> this to a more proper place. Please send replies to that list. :)
JV> Jeff,
JV> I think for optimal performance, the build server would keep a
JV> local copy of the repository and simply perform an update on it,
JV> instead of checking out projects each time. Our current system
JV> keeps local checkouts of each project, but it does so in a way
JV> that requires per-project updating. The optimal way would be to
JV> tell the builder to checkout a particular subversion path ( e.g.
JV> ,http://svn.company.com/osgi-project/bundles) which contains some
JV> or all of the bundles within subdirectories (e.g.,
JV> http://svn.company.com/osgi-project/bundles/com.company.somebundle),
JV> and then determine which bundles are contained within, if any. If
JV> the bundles path contained 150 bundle subdirectories, it would be
JV> much faster to update the root bundles path than to update each of
JV> the 150 bundles paths individually.
JV> Perhaps our SVN environment is slow for some reason, or JavaSVN
JV> is slow, I haven't investigated very closely. At any rate, I
JV> would imagine an extended PDE Build would allow stuff like this to be
configurable.
JV> -Jeremy
JV> On 4/30/07, Jeff McAffer <[EMAIL PROTECTED]> wrote:
JV>
JV> There are a number of changes in 3.3 but fundamentally the
JV> structure is the same. As for your performance issue...
JV> Interesting. per-project check out with SVN is slow? that does
JV> not bode well for incremental building of only those parts that
JV> need to be built. The incremental approach seems to imply that
JV> you would only check out the projects that need building and those
JV> which are already built can just be used directly.
JV>
JV> In any event, with the new provisioning work that we are doing in
JV> Equinox we are looking to see if there are opportunities to
JV> improve the overall build story. Input from other people with
JV> realworld build problems (and solutions) would be great. That
JV> should likely go on the equinox-dev or pde-build-dev lists as appropriate.
JV>
JV> Jeff
JV>
JV>
JV>
JV>
JV> "Jeremy Volkman" <[EMAIL PROTECTED]>
JV> Sent by: [EMAIL PROTECTED]
JV> 04/30/2007 11:35 AM
JV>
JV> Please respond to
JV> OSGi Developer Mail List <[email protected]>
JV>
JV>
JV> To
JV> "OSGi Developer Mail List" <[email protected]>
JV> cc
JV>
JV>
JV> Subject
JV> Re: [osgi-dev] Continuous Integration of OSGi Bundles
JV>
JV>
JV>
JV>
JV>
JV> Jeff,
JV>
JV> Perhaps I'll look towards starting with the current PDE build,
JV> then. I'll try to catch up on its lists. Are you aware of any
JV> large changes since 3.2 was released?
JV>
JV> The PDE part of our build really isn't the problem. The problem
JV> is that I'm storing each bundle as a project checked out into an
JV> Eclipse workspace (all headlessly). Updating the projects from
JV> subversion is much like highlighting all projects in a workspace
JV> and selecting Team -> Update: the update happens
JV> project-per-project. The much more efficient way to do this would
JV> be to simply update the root directory of all the bundle projects,
JV> which Subversion does very well. However, this change would
JV> require some rearchitecting, and since we have other larger needs
JV> anyway we want to just redo the whole thing.
JV>
JV> One issue with the PDE export is that it's a mysterious black
JV> box of long running processes. I'm sure that PDE Build has better
JV> build output, since it's not intended as a UI operation. Also,
JV> the PDE export job fails completely if any of the bundles have
JV> unresolved manifests (with a CoreException). It will complete
JV> successfully if a bundle has compilation problems, though.
JV> Optimally the export job would treat manifest resolution failures like
compilation failures.
JV>
JV> Thanks,
JV> Jeremy
JV>
JV> On 4/30/07, Jeff McAffer <[EMAIL PROTECTED] > wrote:
JV> Jeremy,
JV>
JV> There has been some discussion in the area of updating PDE build
JV> to do much of what you have described. Currently however there
JV> are not enough people in that community to do the required work.
JV> Do you think you/your organization would have time to work in this area?
JV>
JV> Jeff
JV>
JV> p.s., In case you didn't know, the Export Deployable Plugins and
JV> Fragments option in the Eclipse UI actually runs PDE build under
JV> the covers. Not sure why performance is degrading. You might
JV> check that you are not doing a build in the workspace (Look at the
JV> Project > Build Automatically menu setting). That would be a
JV> waste since PDE build does its own build.
JV>
JV>
JV> "Jeremy Volkman" <[EMAIL PROTECTED] >
JV> Sent by: [EMAIL PROTECTED]
JV> 04/30/2007 10:22 AM
JV>
JV>
JV> Please respond to
JV> OSGi Developer Mail List <[email protected] >
JV>
JV>
JV>
JV>
JV> To
JV> [EMAIL PROTECTED]
JV> cc
JV>
JV>
JV> Subject
JV> [osgi-dev] Continuous Integration of OSGi Bundles
JV>
JV>
JV>
JV>
JV>
JV>
JV> Greetings,
JV>
JV> We're looking to re-implement/replace our current continuous
JV> integration system, which has been building our OSGi project for the
JV> past 10 months or so. The current builder was quickly hacked together
JV> over a period of a week, and we're starting to run into its
JV> limitations now that our project has surpassed 150 bundles.
JV>
JV> Some of the big requirements that we set for our current system were:
JV> 1. Automatic discovery of new bundle projects in the source
JV> repository. We didn't want to configure the builder each time we
JV> added a new bundle to the project.
JV> 2. Build as much as needed, but no more. Based on what was changed
JV> since the previous build, we wanted to use OSGi dependency analysis to
JV> figure out what needed to be built (i.e., changed bundles and bundles
JV> depending upon them). Because of this need, the builder must be able
JV> to fetch dependencies required for build from our bundle repository.
JV> 3. Resolve build dependencies based upon OSGi metadata (not, for
JV> instance, Maven dependencies).
JV> 4. Build Eclipse PDE bundle projects, since that's what we use as our
JV> development environment.
JV>
JV> To cover these requirements, we wrote a custom continuous integration
JV> system consisting of:
JV> 1. A repository scanner (written using JavaSVN) able to detect new
JV> projects in our repository; and
JV> 2. A bundle builder based around Eclipse PDE export operations.
JV>
JV> We did not use the PDE build system but rather do the equivalent of
JV> launching an Eclipse instance, selecting bundles and invoking "Export
JV> Deployable plug-ins and fragments".
JV>
JV> This system has worked fairly well for us. However, it's becoming
JV> slower and slower, and it is not easily extensible. We'd like to be
JV> able to make use of some existing builder for integrated
JV> testing/reporting/etc.
JV>
JV> I've noticed that a lot of people are using Maven to build OSGi
JV> bundles. However, as far as I can tell, Maven requires its own
JV> dependency format, and cannot be extended resolve based upon OSGi
JV> dependency metadata. Please correct me if this is incorrect.
JV>
JV> Does anyone have any systems similar to this, or any pointers to build
JV> systems that can be easily extended to support these types of
JV> features?
JV>
JV> Thanks,
JV> Jeremy Volkman
JV> _______________________________________________
JV> OSGi Developer Mail List
JV> [email protected]
JV> http://www2.osgi.org/mailman/listinfo/osgi-dev
JV>
JV>
JV> _______________________________________________
JV> OSGi Developer Mail List
JV> [email protected]
JV> http://www2.osgi.org/mailman/listinfo/osgi-dev
JV> _______________________________________________
JV> OSGi Developer Mail List
JV> [email protected]
JV> http://www2.osgi.org/mailman/listinfo/osgi-dev
JV> _______________________________________________
JV> OSGi Developer Mail List
JV> [email protected]
JV> http://www2.osgi.org/mailman/listinfo/osgi-dev
JV>
--
Peter Kriens Tel +33467542167
9C, Avenue St. Drézéry AOL,Yahoo: pkriens
34160 Beaulieu, France ICQ 255570717
Skype pkriens Fax +1 8153772599
_______________________________________________
OSGi Developer Mail List
[email protected]
http://www2.osgi.org/mailman/listinfo/osgi-dev