Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [egit-dev] How to build [EJ]Git?

Robin Rosenberg <robin.rosenberg@xxxxxxxxxx> wrote:
> onsdagen den 6 januari 2010 14.15.38 skrev  Thomas Hallgren:
> > Would you be interested in what Buckminster could do to build egit/jgit?

This conversation keeps going around in circles.  But.

I didn't actually try to use Buckminster to do the builds.
It might work.  In theory.

For JGit my requirements on the build process are basically:

* Stable build tool.  Alpha products which can't compile our simple
  code need not apply.

* Produce OSGi bundles for consumption by P2.
* Must use proper Import-Package lines in the manifest.

* Produce Maven pom files for consumption by Maven 2.x consumers.
* Must use proper <dependency> lines so transient dependencies are
  correctly identified by consumer and used.

* Must run from command line.
* Must run from Hudson CI.
* Must not require baroque installation of itself.

* Must deploy artifacts to a Maven 2.x repository.
* Must deploy artifacts to a P2 repository.

* Must be documented well enough that a new contributor to JGit can
  "dig into" the build process and make changes if they need to.


Right now, Tycho doesn't meet these.

Athena being a pile of Ant scripts which I can't find very good
documentation on failed a lot of these points.  Sure it might be
able to build the P2 repository, but installation is a bit insane.
(Check out files from CVS in order to fire a build for a Git
implementation?  Really?)

Maven 2.x gets as close as I could find without writing my own
obsecure tools which would fail the documentation and installation
requirements.  :-)


Given how difficult JSch is to work with, and my committer status
on the Apache MINA SSHD project, I may within the next year split
the TransportSSH apart into two different implementations and start
to also offer not just the JSch based client, but also a MINA SSHD
based client.  Doing that will create a _much_ larger dependency
chain for that particular section of JGit.

So I am looking for a buil tool that is going to understand and
know how to deal with this larger dependency chain, without making
me go off and rewrite the downstream project's build processes
from scratch.

Unfortunately, due to the Eclipse foundation policies regarding
imports of 3rd party code into Orbit, I may have no choice but to
import MINA SSHD and all of its dependencies, and rewrite their
build processes anyway, just so I can link against it as an optional
dependency for our non-Eclipse IDE based consumers.

> > We build it the same way headlessly as it is built in your workspace. No
> > manifest generation etc. is needed.
> 
> Before the Eclipse files were removed an the maven stuff was brought in I could
> do headless builds too (PDE build) so publishing a new version was no problem
> at all. It was a simple command. I guess buckminster does essentially that, 
> but perhaps without the ugly Ant scripts PDE build needs, plus my wrappers
> for setting parameters.
> 
> git://rosenberg.homelinux.net/EGIT-pdebuild
> git://rosenberg.homelinux.net/JGIT-pdebuild

Wow.  This is the first I've heard of you having an automated build.
Here I thought you were building the update site by hand from the UI.

Why wasn't this part of the project?

-- 
Shawn.


Back to the top