[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
Re: [egit-dev] How to build [EJ]Git?
 | 
On Jan 6, 2010, at 15:42, Jason van Zyl wrote:
On 2010-01-06, at 10:23 AM, Alex Blewitt wrote:
So, we've got EGit which builds manifest-first, and JGit which  
builds pom-first? That sounds like a recipe for disaster. Surely it  
would be better to do them both in the same way, so that you don't  
have to have two sets of instructions, one for each?
I think this is the way it should be done actually. Go read Shawn's  
diatribe on the review commits. I think he's right in most cases.  
The JGit artifact needs to be a good Maven artifact and a lot of  
people looking at just JGit don't care about Eclipse or anything  
OSGi related.
That's fine, I have no objections to the Maven artefact being  
something that is consumable outside of OSGi. But then again, all OGSi  
JARs are consumable outside OSGi as normal JARs anyway. The only  
difference between the two is whether there's any code dependencies on  
OSGi, and I don't see anyone ever having suggested that that was the  
case.
The other point to note is that consumers != developers. A maven  
build, even if it's Manifest first, is still something that's  
buildable by the commandline outside of Eclipse. So people who want to  
integrate/use JGit are entitled to do so outside of an Eclipse/OGSi  
environment with no problems.
It will likely just turn folks off having to deal with the extra  
complication. The approach we would like to take here is make the  
maven-bundle-plugin more efficient and integrate it with PDE. Stuart  
works at Sonatype so this is fully within our realm to complete.
The extra complication, of having two project styles, is already here.  
Having one way of building them makes sense. It makes absolutely no  
sense to remove Eclipse metadata from an SCM just because some people  
might not use Eclipse. There's no reason to not have it, and just  
ignore it if it doesn't make sense to you. I've edited files by hand  
with Vi before when doing updates to an Eclipse project without even  
caring where it was come from. I've also multi-sourced projects to  
include Eclipse and NetBeans and IntelliJ data in the same project to  
allow developers to use whatever tool they're comfortable with. Yes,  
it means that if you need to make a dependency change, there's  
multiple places that it needs to be done - but JGit is almost  
obsessive about not introducing more dependencies than is absolutely  
necessary.
I suspect in the Eclipse world, it's only EGit that will consume  
JGit. That doesn't prevent other IDEs from consuming JGit, but I  
don't think that is relevant - development of JGit is mostly done  
in Eclipse.
I don't think that's true.
Really? Hands up anyone who develops JGit outside of Eclipse right  
now ...
So, what was the purpose behind being a 'normal' Maven build?
Proper POM that's easily maintainable, and having a build that  
doesn't expose any OSGi for other integrators. JGit will be  
integrated into IDEA and Netbeans I'm sure.
Manifest-first doesn't expose OSGi for other integrators. It's just a  
different format. Again, this doesn't prevent integration into IDEA  
and NetBeans, either from a consumer perspective or from a developer  
perspective.
As a maven-bundle-plugin project the manifest is generated. Though  
I think creating a BND file which represents the final manifest  
would be better ...
If we're doing that, we might as well use Manifest-first  
development. After all, the only difference is syntax - you still  
have a file you must manage/maintain in SCM.
Seriously go read the review commit log from Shawn about having to  
deal with the manifest-first mode for JGit. I don't think it can be  
at this point.
Based on what assertion? There seems no technical reason why we need  
to do this in order to develop JGit. All there are are  
misunderstandings which can be rectified.
We'll make it work, and it's another important bridge between POM- 
first and manifest-first builds. We don't mind getting that work.  
Cases like this are going to be pretty normal for a few years.
Why don't we just have something that works now? We seem to have  
bazooka'd ourselves in the foot at this point to make it more  
difficult to develop. I'm all for Maven and Tycho, but this seems to  
be absolutely the worst way to convince Eclipse(.org) that building  
OSGi artefacts with Maven is a sensible way of doing things.
I believe the right way it is:
JGit = POM-first
EGit = Manifest-first
I believe this prevents people working on JGit, and by extension,  
EGit. Whether it's correct from a purists perspective or not is a  
different matter.
And we'll just have to make it work in the workspace.
This seems to be a big distraction in terms of time and effort purely  
to satisfy a philosophical argument that detracts from being able to  
do work on E/JGit. Even before both moved to Eclipse, it was still  
possible to build these as Eclipse projects. Now we don't even have  
that.
Sure it's wrong, but integrating POM-first and Manifest-first in  
Eclipse is new territory and we're happy to do the work. But  
ultimately this is your project, we're just trying to help so choose  
the tool that works best for you.
I appreciate the help, and I look forward to this working. But this  
still doesn't answer the observation that doing JGit one way and EGit  
the other way is wrong. That, I believe , is the decision that needs  
to be unmade in order to move forwards, rather than wasting time  
solving meta-problems.
Alex
PS The JGit list is separate; however, when one was created, it didn't  
seem to copy over the membership. This sounds like the kind of  
decision that should cc both mailing lists for respective input.