Re: Maven and Continuous Integration

2005-12-20 Thread Lee Meador
I suspect the best way to think of it is that some of the company libraries
are treated like third party libraries and other company libraries are
treated differently because they are being worked on.

You don't update compiled or source for, say, Spring that often. When you do
update its a big enough deal to change version numbers for your build that
you can "download" the source if you need it for debugging. Lots of times
the changes between two of these versions are minor enough that using the
old source with the new binary works good enough and you don't really care.

Treat some of your in-house libraries the same way. Update rarely because it
takes time to do it.

The rest of the in-house libraries are those "you" are working on and will
need to be updated from source control often enough.

Usually the pain of debugging a problem when using old source is enough to
encourage people to update that source. Or the pain of breaking the build
(or the tests) by checking in code that doesn't work because "you" didn't
update your source will do it.

Someone finds there is a key issue and tells everyone else to update. It
just sort of works if you keep the lines of communication open.

--
-- Lee Meador
Sent from gmail. My real email address is [EMAIL PROTECTED]


RE: Maven and Continuous Integration

2005-12-20 Thread David Jackman
This is close to what I wanted to be able to do in M2 as well.

One thing to be clear about is what source code a developer may be using 
directly from source control (as opposed to a source distribution of a 
dependency artifact).  We have taken our product and divided it up into many 
smaller (and independent) projects which produce individual artifacts (and we 
haven't looked back).  This means a developer will only get the code out of 
source control for the (relatively few--usually one or two) projects he is 
actually working on.  The other source code would be for dependencies to those 
projects (and provided as source distributions alongside the artifacts for 
those dependencies).

Right now, for the most part, we just make do without the source distribution 
for dependencies.  For the rare instance that we need to debug into a 
dependency (which really doesn't happen much), the developer will usually get 
the code for that project from source control and build it locally (to be sure 
the code matches the jar he's using).  There are times that this can't work, 
though (e.g. when the dependency isn't for the latest version of the artifact).

For a developer working primarily in an IDE, if their project has snapshot 
dependencies, it's up to the developer to make sure he's got the latest 
versions in his local repository.  He can do this by occasionally building the 
project using maven (instead of the IDE).  One problem here is that a normal 
build will download the latest dependencies, but not the source distributions 
for those dependencies.  If all he wants are the latest versions and their 
source distributions, I'm hoping there's a goal in the eclipse/idea plugin that 
can facilitate this.  If not, then I'll write a plugin that does this.  Once 
there's a single plugin that gets them up to date, then the source distribution 
will always be in sync with the version of the dependency in the developer's 
local repository.  It would be even better if the Eclipse plugin for Maven 2 
could automatically check the dependencies and verify that the source 
distribution is up to date (and download it if it isn't).  I don't know if it 
will do that sort of thing or not (I haven't taken the time to research what's 
possible and straightforward when working with the IDEs yet).

..David..


-Original Message-
From: Michael Böckling [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, December 20, 2005 2:18 AM
To: Maven Users List
Subject: Re: Maven and Continuous Integration

Hi David,

thank you for your answer.
Sorry for being unclear, but I guess all the issues you brought up are 
important.
I'm really new to the CI concept, and I'm not sure if there is only one way to 
do it, so thats why I'm asking.

I just thought that if developers are expected to write their code in such a 
way that it will work in conjunction with the latest sources of all dependent 
projects, it would also be a necessity to have the latest sources (and 
binaries, maybe) also in their IDE, and not only  in a snapshot repo or 
Continuum or so.

So once there is a new build (nightly or even CI), binary and source references 
in Eclipse (for instance) should point to that newest version, or am I wrong? 
But wouldn't it be a bit unpractical for all developers to update projects in 
their IDE several times a day? I was hoping that we could use some Maven 
automatism.
I know source jars can be released with Maven, but I don't know if these 
sources can be attached to the binary dependencies using the M2 plugin (but I 
know the Eclipse "userlibraries" concept allows that, so maybe a Mojo that 
automatically creates those as a temporary workaround would be feasible).

What I envision is this:
- CI builds upon commits to SVN (released to a special CI snapshot repo), 
whithout any ballast because of performance issues (no site generation etc.).
- Nightly builds with all bells and whistles

When the dev starts working in the morning, all binary and source references of 
dependent projects in his IDE automatically point to the result of the last 
nightly build, which would reside in some snapshot repository. I guess it would 
take two different snapshot repos, one for CI and one for nightly builds, but 
I'm not sure if it is enough for the devs to just use the nightly builds as 
references or also the CI results.

Does that make any sense to you? I'm still uncertain how to adress this whole 
nightly/ci thing properly...
Thank you very much,

Michael

>David,
>
>What is the scope of each CI build, compile and test, site too, etc?
>
>I have CI only on compile and test for all our product codelines, and 1 
>nightly for site generation as the site gen takes hours to run.
>
>Just wondering if you have an trick to share :-D
>
>
>-----Original Message-
>From: David Jackman [mailto:[E

RE: Maven and Continuous Integration

2005-12-20 Thread David Jackman
I never had the time to set up two separate build projects to make it faster, 
so each build deletes the entire source tree, gets the code from source 
control, does a multiproject:deploy, then a multiproject:site, then finally a 
site:deploy.  I know this is very inefficient (all the tests wind up getting 
run 3 times), but that's the way it is now.

..David..

-Original Message-
From: Jeff Jensen [mailto:[EMAIL PROTECTED] 
Sent: Monday, December 19, 2005 9:25 PM
To: 'Maven Users List'
Subject: RE: Maven and Continuous Integration

David,

What is the scope of each CI build, compile and test, site too, etc?

I have CI only on compile and test for all our product codelines, and 1 nightly 
for site generation as the site gen takes hours to run.

Just wondering if you have an trick to share :-D


-Original Message-
From: David Jackman [mailto:[EMAIL PROTECTED]
Sent: Monday, December 19, 2005 12:40 PM
To: Maven Users List
Subject: RE: Maven and Continuous Integration

In our department, we use Maven (v1.0 currently) to do continuous integration 
builds and a few will use it to do builds on their own machines but most do 
their own builds using an IDE and use Maven only to update dependencies as 
necessary.

We don't do separate nightly builds--only continuous builds.

I'm not sure what you mean by "source references in your IDE".  If you're 
referring to where the IDE gets the source for a particular project, then this 
comes out of source control like any other project (i.e. Maven isn't affecting 
the source at all).  If you're referring to where the IDE finds a particular 
project's binary dependencies, then the IDE refers to these in the user's local 
repository (we use the IDEA and Eclipse plugins to generate the projects, and 
they create the references automatically).  If you're referring to where the 
IDE finds the source code for a particular project's binary dependencies, then 
we haven't really addressed this problem.  Users can access the source code for 
other projects within our department from source control.  With Maven 2 we were 
hoping to make source references like this work more automatically (there's 
ways to make it work better in Maven 1, but we haven't wanted to invest much 
time into making M1 work better while trying to move to M2).

Hope this helps,
..David..
 

-Original Message-
From: Michael Böckling [mailto:[EMAIL PROTECTED]
Sent: Monday, December 19, 2005 10:54 AM
To: Maven Users List
Subject: Maven and Continuous Integration

Hi folks,

this question might be a little OT, but just a little:
I'd like to know how you handle your continuous integration builds and the 
source references in your IDE.
Suppose you got nightly builds as well as CI builds, to which sources would you 
link the project to you are currently working on? The snapshot build from last 
night? The latest result of the CI build? Not use Maven
(repository) at all for that because you check integration whithin your IDE, 
using checked-out sources of the dependen projects?
I'm really curious to know how others solved that...

Good night,
Michael

--
Giniality AG - Michael Böckling; Steinenberg 21, CH-4051 Basel
P: +41 61 226 99 63 - F: +41 61 226 99 69 [EMAIL PROTECTED]; 
http://www.giniality.com/



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Maven and Continuous Integration

2005-12-20 Thread Michael Böckling

Hi David,

thank you for your answer.
Sorry for being unclear, but I guess all the issues you brought up are 
important.
I'm really new to the CI concept, and I'm not sure if there is only one 
way to do it, so thats why I'm asking.


I just thought that if developers are expected to write their code in 
such a way that it will work in conjunction with the latest sources of 
all dependent projects, it would also be a necessity to have the latest 
sources (and binaries, maybe) also in their IDE, and not only  in a 
snapshot repo or Continuum or so.


So once there is a new build (nightly or even CI), binary and source 
references in Eclipse (for instance) should point to that newest 
version, or am I wrong? But wouldn't it be a bit unpractical for all 
developers to update projects in their IDE several times a day? I was 
hoping that we could use some Maven automatism.
I know source jars can be released with Maven, but I don't know if these 
sources can be attached to the binary dependencies using the M2 plugin 
(but I know the Eclipse "userlibraries" concept allows that, so maybe a 
Mojo that automatically creates those as a temporary workaround would be 
feasible).


What I envision is this:
- CI builds upon commits to SVN (released to a special CI snapshot 
repo), whithout any ballast because of performance issues (no site 
generation etc.).

- Nightly builds with all bells and whistles

When the dev starts working in the morning, all binary and source 
references of dependent projects in his IDE automatically point to the 
result of the last nightly build, which would reside in some snapshot 
repository. I guess it would take two different snapshot repos, one for 
CI and one for nightly builds, but I'm not sure if it is enough for the 
devs to just use the nightly builds as references or also the CI results.


Does that make any sense to you? I'm still uncertain how to adress this 
whole nightly/ci thing properly...

Thank you very much,

   Michael


David,

What is the scope of each CI build, compile and test, site too, etc?

I have CI only on compile and test for all our product codelines, and 1
nightly for site generation as the site gen takes hours to run.

Just wondering if you have an trick to share :-D


-Original Message-
From: David Jackman [mailto:[EMAIL PROTECTED] 
Sent: Monday, December 19, 2005 12:40 PM

To: Maven Users List
Subject: RE: Maven and Continuous Integration

In our department, we use Maven (v1.0 currently) to do continuous
integration builds and a few will use it to do builds on their own machines
but most do their own builds using an IDE and use Maven only to update
dependencies as necessary.

We don't do separate nightly builds--only continuous builds.

I'm not sure what you mean by "source references in your IDE".  If you're
referring to where the IDE gets the source for a particular project, then
this comes out of source control like any other project (i.e. Maven isn't
affecting the source at all).  If you're referring to where the IDE finds a
particular project's binary dependencies, then the IDE refers to these in
the user's local repository (we use the IDEA and Eclipse plugins to generate
the projects, and they create the references automatically).  If you're
referring to where the IDE finds the source code for a particular project's
binary dependencies, then we haven't really addressed this problem.  Users
can access the source code for other projects within our department from
source control.  With Maven 2 we were hoping to make source references like
this work more automatically (there's ways to make it work better in Maven
1, but we haven't wanted to invest much time into making M1 work better
while trying to move to M2).

Hope this helps,
..David..


-Original Message-
From: Michael Böckling [mailto:[EMAIL PROTECTED]
Sent: Monday, December 19, 2005 10:54 AM
To: Maven Users List
Subject: Maven and Continuous Integration

Hi folks,

this question might be a little OT, but just a little:
I'd like to know how you handle your continuous integration builds and the
source references in your IDE.
Suppose you got nightly builds as well as CI builds, to which sources would
you link the project to you are currently working on? The snapshot build
from last night? The latest result of the CI build? Not use Maven
(repository) at all for that because you check integration whithin your IDE,
using checked-out sources of the dependen projects?
I'm really curious to know how others solved that...

Good night,
Michael

--
Giniality AG - Michael Böckling; Steinenberg 21, CH-4051 Basel
P: +41 61 226 99 63 - F: +41 61 226 99 69 [EMAIL PROTECTED];
http://www.giniality.com/




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Maven and Continuous Integration

2005-12-19 Thread Dion Gillard
We compile, test, assemble (jar, war, ear etc). Every build

We have a special overnight build to do the sites for all projects.

On 12/20/05, Jeff Jensen <[EMAIL PROTECTED]> wrote:
> David,
>
> What is the scope of each CI build, compile and test, site too, etc?
>
> I have CI only on compile and test for all our product codelines, and 1
> nightly for site generation as the site gen takes hours to run.
>
> Just wondering if you have an trick to share :-D
>
>
> -Original Message-
> From: David Jackman [mailto:[EMAIL PROTECTED]
> Sent: Monday, December 19, 2005 12:40 PM
> To: Maven Users List
> Subject: RE: Maven and Continuous Integration
>
> In our department, we use Maven (v1.0 currently) to do continuous
> integration builds and a few will use it to do builds on their own machines
> but most do their own builds using an IDE and use Maven only to update
> dependencies as necessary.
>
> We don't do separate nightly builds--only continuous builds.
>
> I'm not sure what you mean by "source references in your IDE".  If you're
> referring to where the IDE gets the source for a particular project, then
> this comes out of source control like any other project (i.e. Maven isn't
> affecting the source at all).  If you're referring to where the IDE finds a
> particular project's binary dependencies, then the IDE refers to these in
> the user's local repository (we use the IDEA and Eclipse plugins to generate
> the projects, and they create the references automatically).  If you're
> referring to where the IDE finds the source code for a particular project's
> binary dependencies, then we haven't really addressed this problem.  Users
> can access the source code for other projects within our department from
> source control.  With Maven 2 we were hoping to make source references like
> this work more automatically (there's ways to make it work better in Maven
> 1, but we haven't wanted to invest much time into making M1 work better
> while trying to move to M2).
>
> Hope this helps,
> ..David..
>
>
> -Original Message-
> From: Michael Böckling [mailto:[EMAIL PROTECTED]
> Sent: Monday, December 19, 2005 10:54 AM
> To: Maven Users List
> Subject: Maven and Continuous Integration
>
> Hi folks,
>
> this question might be a little OT, but just a little:
> I'd like to know how you handle your continuous integration builds and the
> source references in your IDE.
> Suppose you got nightly builds as well as CI builds, to which sources would
> you link the project to you are currently working on? The snapshot build
> from last night? The latest result of the CI build? Not use Maven
> (repository) at all for that because you check integration whithin your IDE,
> using checked-out sources of the dependen projects?
> I'm really curious to know how others solved that...
>
> Good night,
> Michael
>
> --
> Giniality AG - Michael Böckling; Steinenberg 21, CH-4051 Basel
> P: +41 61 226 99 63 - F: +41 61 226 99 69 [EMAIL PROTECTED];
> http://www.giniality.com/
>
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
http://www.multitask.com.au/people/dion/
"You are going to let the fear of poverty govern your life and your
reward will be that you will eat, but you will not live." - George
Bernard Shaw

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Maven and Continuous Integration

2005-12-19 Thread Jeff Jensen
David,

What is the scope of each CI build, compile and test, site too, etc?

I have CI only on compile and test for all our product codelines, and 1
nightly for site generation as the site gen takes hours to run.

Just wondering if you have an trick to share :-D


-Original Message-
From: David Jackman [mailto:[EMAIL PROTECTED] 
Sent: Monday, December 19, 2005 12:40 PM
To: Maven Users List
Subject: RE: Maven and Continuous Integration

In our department, we use Maven (v1.0 currently) to do continuous
integration builds and a few will use it to do builds on their own machines
but most do their own builds using an IDE and use Maven only to update
dependencies as necessary.

We don't do separate nightly builds--only continuous builds.

I'm not sure what you mean by "source references in your IDE".  If you're
referring to where the IDE gets the source for a particular project, then
this comes out of source control like any other project (i.e. Maven isn't
affecting the source at all).  If you're referring to where the IDE finds a
particular project's binary dependencies, then the IDE refers to these in
the user's local repository (we use the IDEA and Eclipse plugins to generate
the projects, and they create the references automatically).  If you're
referring to where the IDE finds the source code for a particular project's
binary dependencies, then we haven't really addressed this problem.  Users
can access the source code for other projects within our department from
source control.  With Maven 2 we were hoping to make source references like
this work more automatically (there's ways to make it work better in Maven
1, but we haven't wanted to invest much time into making M1 work better
while trying to move to M2).

Hope this helps,
..David..
 

-Original Message-
From: Michael Böckling [mailto:[EMAIL PROTECTED]
Sent: Monday, December 19, 2005 10:54 AM
To: Maven Users List
Subject: Maven and Continuous Integration

Hi folks,

this question might be a little OT, but just a little:
I'd like to know how you handle your continuous integration builds and the
source references in your IDE.
Suppose you got nightly builds as well as CI builds, to which sources would
you link the project to you are currently working on? The snapshot build
from last night? The latest result of the CI build? Not use Maven
(repository) at all for that because you check integration whithin your IDE,
using checked-out sources of the dependen projects?
I'm really curious to know how others solved that...

Good night,
Michael

--
Giniality AG - Michael Böckling; Steinenberg 21, CH-4051 Basel
P: +41 61 226 99 63 - F: +41 61 226 99 69 [EMAIL PROTECTED];
http://www.giniality.com/



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Maven and Continuous Integration

2005-12-19 Thread David Jackman
In our department, we use Maven (v1.0 currently) to do continuous integration 
builds and a few will use it to do builds on their own machines but most do 
their own builds using an IDE and use Maven only to update dependencies as 
necessary.

We don't do separate nightly builds--only continuous builds.

I'm not sure what you mean by "source references in your IDE".  If you're 
referring to where the IDE gets the source for a particular project, then this 
comes out of source control like any other project (i.e. Maven isn't affecting 
the source at all).  If you're referring to where the IDE finds a particular 
project's binary dependencies, then the IDE refers to these in the user's local 
repository (we use the IDEA and Eclipse plugins to generate the projects, and 
they create the references automatically).  If you're referring to where the 
IDE finds the source code for a particular project's binary dependencies, then 
we haven't really addressed this problem.  Users can access the source code for 
other projects within our department from source control.  With Maven 2 we were 
hoping to make source references like this work more automatically (there's 
ways to make it work better in Maven 1, but we haven't wanted to invest much 
time into making M1 work better while trying to move to M2).

Hope this helps,
..David..
 

-Original Message-
From: Michael Böckling [mailto:[EMAIL PROTECTED] 
Sent: Monday, December 19, 2005 10:54 AM
To: Maven Users List
Subject: Maven and Continuous Integration

Hi folks,

this question might be a little OT, but just a little:
I'd like to know how you handle your continuous integration builds and the 
source references in your IDE.
Suppose you got nightly builds as well as CI builds, to which sources would you 
link the project to you are currently working on? The snapshot build from last 
night? The latest result of the CI build? Not use Maven
(repository) at all for that because you check integration whithin your IDE, 
using checked-out sources of the dependen projects?
I'm really curious to know how others solved that...

Good night,
Michael

--
Giniality AG - Michael Böckling; Steinenberg 21, CH-4051 Basel
P: +41 61 226 99 63 - F: +41 61 226 99 69 [EMAIL PROTECTED]; 
http://www.giniality.com/



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Maven and Continuous Integration

2005-12-19 Thread Michael Böckling

Hi folks,

this question might be a little OT, but just a little:
I'd like to know how you handle your continuous integration builds and 
the source references in your IDE.
Suppose you got nightly builds as well as CI builds, to which sources 
would you link the project to you are currently working on? The snapshot 
build from last night? The latest result of the CI build? Not use Maven 
(repository) at all for that because you check integration whithin your 
IDE, using checked-out sources of the dependen projects?

I'm really curious to know how others solved that...

Good night,
Michael

--
Giniality AG - Michael Böckling; Steinenberg 21, CH-4051 Basel
P: +41 61 226 99 63 - F: +41 61 226 99 69
[EMAIL PROTECTED]; http://www.giniality.com/



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]