Re: Code Hierarchy and Build Process

2008-05-07 Thread Clinton Begin
I currently hate Maven with a grand passion.  But, I'm open minded and am
willing to be educated as to why people like it.  I will make the same offer
I made before:

Three requirements:

#1 Create a maven build system for iBATIS that achieves the exact same
output, which includes:
- one click build -- I'm not exaggerating here, SVN checkout, run ant
or script...done.  NOTHING else.. no config files, no nothing.
- offline build -- no network connection required (perhaps after one
build if it needs to grab dependencies initially)
- echo arbitrary information to the command line, such as classpath in
use and current version being built
- all dependencies must be versioned and organized into developer
dependencies (/devlib) and runtime/deploy dependencies (/lib)
- HTML test reports
- HTML coverage reports
- exploded distribution
- zipped distr
- version number stamped on ibatis JAR file(s) as well as the zip distro
- all achieved by Ant today.

#2 Show that it's simpler than Ant in at least one way.  For example:
- less XML configuration
- fewer requirements
- smaller overall source base size
- more/better compatibility with tools/frameworks/IDEs
- the current Ant build is 258 lines and integrates and runs from any
IDE

#3 Show that it does something Ant doesn't.  For example:
- Signs, MD5, and Uploads to Apache dist (with no additional
dependencies or configuration)
- 

I don't think these are unreasonable requirements.  In fact if even one is
missed, it would make me wonder why the hell we'd even bother.

I'm for simplicity over all else.  No Ant isn't the best example of a build
tool in history.  But it's simple and it works.

Clinton

On Tue, May 6, 2008 at 10:35 PM, Nathan Maves [EMAIL PROTECTED]
wrote:

 Brandon reply below.

 I am completely for using Maven 2 and conforming our source tree to it.
 There were three issues, iirc, that (if they have not been fixed by the
 maven crew) will require a bit of compromise or plugin writing.

 #1 A serial number generator for builds does not easily exist for maven.
 We had talked about using the svn repo revision number.
 #2 We tried finding a way to add a date to our deployment zip file.
 Unfortunately maven did not provide an easy way to access a current date
 anywhere.
 #3 There have been issues with the coverage tools combining with the unit
 test tools. If we ran the unit tests, coverage tests, and also generated
 reports, the tests would wind up running 3 times.

 That being said, I think we should tackle these issues and make Maven our
 build tool. Maven has excellent IDE integration now (IDEA and Netbeans are
 both good). It makes it a snap to setup projects and get running.
 Additionally, the Apache nerds have some maven processes that can help us to
 more easily release software in accordance with Apache requirements.

 Brandon

 On Tue, May 6, 2008 at 10:34 PM, Nathan Maves [EMAIL PROTECTED]
 wrote:

  The ideas/requests/demands just keep coming...
 
  With a clean slate for IB3 I want to propose a few things.  I have been
  using Maven2 for a while now and even use it in my day to day development.
  My first suggestion is to lay out the new source tree to map to the maven2
  style of convention over configuration.  Even if we choose not to use Maven
  as the build/deployment process it is the most logical and thought out
  hierarchy that I have seen.
 
  On the topic of Maven2 I would like to nominate is as the
  build/deployment process.  Maven2 offers so many pre-built plugins for many
  useful things from coverage reports to unit test results.  If there is
  something that Maven2 does not have I am sure we could write a quick plugin
  to get it done.  I have also been using a new CI tool with Maven2 (
  https://hudson.dev.java.net/ ).  Insanely easy to install and
  configure.  Just reads your pom file from maven and away you go.  Like most
  it can poll the svn repo for changes and make snapshots as we commit.
 
  Let me know what you guys think
 
  Nathan





Re: Code Hierarchy and Build Process

2008-05-07 Thread Brandon Goodin
Thanks for sharing your passions. My thoughts are below...

#1...

A. one click has never been a problem for maven. There seems to be a lot
of insinuation that maven requires a lot of config files. I'm not sure where
you are getting this. The only thing that we might need to do is break out
the assembly config. But, that is because it is about packaging artifacts
all together and not about building the individual jars. So, if you are
saying we can't have an assembly config then gimme a break. Your request is
denied because it requires something that is not possible and is not
possible for a rational and organized reason.

B. offline build... never been an issue for maven. So long as you have the
needed jars locally. But this is true of any codebase.

C. Are you referring to the final zipe file structure or the source tree. If
you are referring to the source tree. You will be denied on that one as well
because maven doesn't have dependencies in the local source tree. If you are
talking about the final packaged output... we already demonstrated that with
the current ibatis maven build.

D. HTML Test Reports - Been possible for a long time

E. Coverage Reports - Been possible for a long time

F. Exploded Distributions - Not sure of what you are referring to here. If
you are referring to seeing the final product of the zip file before it is
zipped then that is just a matter of copying all the sources to a folder in
the assembly config. We demonstrated that with the current maven build in
ibatis.

G. Zipped Distro - No problem

H. I don't think this is necessary. We can look into adding the build number
to the META-INF. But, this should be possible.

#2 - Getting up and going in my IDE is a snap because of current IDE
integration. Less than a minute. With Ant. I always have to checkout the
project figure out what the heck people are doing in their ant script
because EVERYONE does something different. Ramp up time sucks. I always
enjoy how people will blend build artifacts with static artifacts. Can't
simply delete the output folder. You always have to make sure you use their
custom wacky ant scripts and hope you don't call the wrong task.

#3 - See #2


I'm for simplicity over all else.  No Ant isn't the best example of a build
tool in history.  But it's simple and it works. I am too. That is why i use
maven :D I got tired of trying to figure out everyone's wacky Ant scripts.

I think you need to take your blood pressure medicine. ;-) Maven is an
acceptable build system. Instead of coming out with aggressive posturing,
give your fellow developers the benefit of the doubt. Do you think we would
use it if we thought it was a horrid pile of crap? Everything comes with
it's strengths and weaknesses. I'll take the lack of a build number on the
zip and jar any day over the amount of effort i expel trying to figure out
ant scripts.

Brandon

On Wed, May 7, 2008 at 8:36 AM, Clinton Begin [EMAIL PROTECTED]
wrote:

 I currently hate Maven with a grand passion.  But, I'm open minded and am
 willing to be educated as to why people like it.  I will make the same offer
 I made before:

 Three requirements:

 #1 Create a maven build system for iBATIS that achieves the exact same
 output, which includes:
 - one click build -- I'm not exaggerating here, SVN checkout, run
 ant or script...done.  NOTHING else.. no config files, no nothing.

 - offline build -- no network connection required (perhaps after one
build if it needs to grab dependencies initially)

 - echo arbitrary information to the command line, such as classpath in
 use and current version being built
 - all dependencies must be versioned and organized into developer
 dependencies (/devlib) and runtime/deploy dependencies (/lib)
 - HTML test reports
 - HTML coverage reports
 - exploded distribution
 - zipped distr
 - version number stamped on ibatis JAR file(s) as well as the zip
 distro
 - all achieved by Ant today.

 #2 Show that it's simpler than Ant in at least one way.  For example:
 - less XML configuration
 - fewer requirements
 - smaller overall source base size
 - more/better compatibility with tools/frameworks/IDEs
 - the current Ant build is 258 lines and integrates and runs from any
 IDE

 #3 Show that it does something Ant doesn't.  For example:
 - Signs, MD5, and Uploads to Apache dist (with no additional
 dependencies or configuration)
 - 

 I don't think these are unreasonable requirements.  In fact if even one is
 missed, it would make me wonder why the hell we'd even bother.

 I'm for simplicity over all else.  No Ant isn't the best example of a
 build tool in history.  But it's simple and it works.

 Clinton


 On Tue, May 6, 2008 at 10:35 PM, Nathan Maves [EMAIL PROTECTED]
 wrote:

  Brandon reply below.
 
  I am completely for using Maven 2 and conforming our source tree to it.
  There were three issues, iirc, that (if they have not been fixed by the
  maven crew) will 

Re: Code Hierarchy and Build Process

2008-05-07 Thread Clinton Begin
I wasn't implying that Maven COULDN'T do anything I was just laying out
what I would want to see from a maven build.

 So, if you are saying we can't have an assembly config then gimme a
break.

What I mean is that if I can't check it out and build without having to
perform some developer level/local config then forget it.

 I don't think this is necessary. We can look into adding the build number
to the META-INF. But, this should be possible.

Versions are important.  The more clear we can be with our version number
the better.  I'd like it in the filename, because it helps people, including
us.  One of the reasons Java sucks these days is the lack of good version
control of JAR files.  The best we can do is put the version number in the
name of the JAR file to help people know which version they're using.  It
also helps us on support lists... recall the days when people couldn't tell
which version they were using because they copied it from somewhere else.
META-INF is a good second best... but I hear this Maven thing is supposed to
be good, so I'd expect it to be able to fill this simple requirement.

I'm already not impressed with the excuses.  I laid out what I think are
fairly simple requirements that any build system should support.

 Getting up and going in my IDE

I honestly don't want to mix the needs of the development tool with the
build tool.  The build is a separate entity.  Furthermore, let's not mix the
problems of other projects (which may very well be solved by Maven).  iBATIS
does not have the problem you describe.  It's a well structured and
organized directory.  /devlib /lib /src /test.. there's no magic to it.
I understand what you're saying, but iBATIS simply doesn't have the
problem.

 I think you need to take your blood pressure medicine.

Let's not get too immature about it.  I'm being open minded and fair.  I
asked for very simple things that are achieved with a 260 line Ant file with
14 well described tasks.  I've yet to see:

1) A major problem or flaw pointed out with the iBATIS Ant build.  I don't
care about the general case of Maven vs. Ant and Project X -- what's wrong
with the *iBATIS* build?

2) A major advantage to using Maven for iBATIS (other than the potentially
easier one-time setup of the IDE -- neat, but one-time IDE config vs. daily
build maintenance...)

3) Confirmation that Maven can meet some very simple requirements I laid
out.

Instead I hear excuses and borderline personal attacks (which I know Brandon
doesn't really mean, but it's still a shitty way to debate).  Come on
guys.   You're doing a piss poor job of making your case for Maven with that
approach.

Don't argue.  Look at what the current build does.  Do it with Maven
cleanly,  and while meeting all of those simple requirements -- and you've
won your case.

Clinton

On Wed, May 7, 2008 at 8:21 AM, Brandon Goodin [EMAIL PROTECTED]
wrote:

 Thanks for sharing your passions. My thoughts are below...

 #1...

 A. one click has never been a problem for maven. There seems to be a lot
 of insinuation that maven requires a lot of config files. I'm not sure where
 you are getting this. The only thing that we might need to do is break out
 the assembly config. But, that is because it is about packaging artifacts
 all together and not about building the individual jars. So, if you are
 saying we can't have an assembly config then gimme a break. Your request is
 denied because it requires something that is not possible and is not
 possible for a rational and organized reason.

 B. offline build... never been an issue for maven. So long as you have the
 needed jars locally. But this is true of any codebase.

 C. Are you referring to the final zipe file structure or the source tree.
 If you are referring to the source tree. You will be denied on that one as
 well because maven doesn't have dependencies in the local source tree. If
 you are talking about the final packaged output... we already demonstrated
 that with the current ibatis maven build.

 D. HTML Test Reports - Been possible for a long time

 E. Coverage Reports - Been possible for a long time

 F. Exploded Distributions - Not sure of what you are referring to here. If
 you are referring to seeing the final product of the zip file before it is
 zipped then that is just a matter of copying all the sources to a folder in
 the assembly config. We demonstrated that with the current maven build in
 ibatis.

 G. Zipped Distro - No problem

 H. I don't think this is necessary. We can look into adding the build
 number to the META-INF. But, this should be possible.

 #2 - Getting up and going in my IDE is a snap because of current IDE
 integration. Less than a minute. With Ant. I always have to checkout the
 project figure out what the heck people are doing in their ant script
 because EVERYONE does something different. Ramp up time sucks. I always
 enjoy how people will blend build artifacts with static artifacts. Can't
 simply delete the output folder. 

Re: Code Hierarchy and Build Process

2008-05-07 Thread Clinton Begin
 A serial number generator for builds does not easily exist for maven. We
had talked about using the svn repo revision number.

SVN repo number would be great.  It's a little long because it's Apache's
global repos, but it would be more useful than the somewhat meaningless
build number we have now.  This would be an improvement.  The caveat would
be that a build would always have to be done against an unmodified working
copy with means one of two things:  svn status must return no changes before
the distro build, or the distro build always has to checkout a clean copy
from SVN.

 We tried finding a way to add a date to our deployment zip file.
Unfortunately maven did not provide an easy way to access a current date
anywhere.

No need for the date on the zip file, just the Major.minor.bug-build
numbers.

 There have been issues with the coverage tools combining with the unit
test tools. If we ran the unit tests, coverage tests, and also generated
reports, the tests would wind up running 3 times.

Ewww I'm sure there must be a way around that.  Sounds like something
the rest of the world would complain about too.

Clinton

On Tue, May 6, 2008 at 10:35 PM, Nathan Maves [EMAIL PROTECTED]
wrote:

 Brandon reply below.

 I am completely for using Maven 2 and conforming our source tree to it.
 There were three issues, iirc, that (if they have not been fixed by the
 maven crew) will require a bit of compromise or plugin writing.

 #1 A serial number generator for builds does not easily exist for maven.
 We had talked about using the svn repo revision number.
 #2 We tried finding a way to add a date to our deployment zip file.
 Unfortunately maven did not provide an easy way to access a current date
 anywhere.
 #3 There have been issues with the coverage tools combining with the unit
 test tools. If we ran the unit tests, coverage tests, and also generated
 reports, the tests would wind up running 3 times.

 That being said, I think we should tackle these issues and make Maven our
 build tool. Maven has excellent IDE integration now (IDEA and Netbeans are
 both good). It makes it a snap to setup projects and get running.
 Additionally, the Apache nerds have some maven processes that can help us to
 more easily release software in accordance with Apache requirements.

 Brandon

 On Tue, May 6, 2008 at 10:34 PM, Nathan Maves [EMAIL PROTECTED]
 wrote:

  The ideas/requests/demands just keep coming...
 
  With a clean slate for IB3 I want to propose a few things.  I have been
  using Maven2 for a while now and even use it in my day to day development.
  My first suggestion is to lay out the new source tree to map to the maven2
  style of convention over configuration.  Even if we choose not to use Maven
  as the build/deployment process it is the most logical and thought out
  hierarchy that I have seen.
 
  On the topic of Maven2 I would like to nominate is as the
  build/deployment process.  Maven2 offers so many pre-built plugins for many
  useful things from coverage reports to unit test results.  If there is
  something that Maven2 does not have I am sure we could write a quick plugin
  to get it done.  I have also been using a new CI tool with Maven2 (
  https://hudson.dev.java.net/ ).  Insanely easy to install and
  configure.  Just reads your pom file from maven and away you go.  Like most
  it can poll the svn repo for changes and make snapshots as we commit.
 
  Let me know what you guys think
 
  Nathan





Re: Code Hierarchy and Build Process

2008-05-07 Thread Brandon Goodin
Comments are mixed in:

On Wed, May 7, 2008 at 10:38 AM, Clinton Begin [EMAIL PROTECTED]
wrote:


 I wasn't implying that Maven COULDN'T do anything I was just laying
 out what I would want to see from a maven build.

  So, if you are saying we can't have an assembly config then gimme a
 break.

 What I mean is that if I can't check it out and build without having to
 perform some developer level/local config then forget it.


This would entirely depend on what we are doing. I don't believe iBATIS
would ever require this unless we used a key for uploading artifacts to a
location. In that case you would need to add the configuration to your
settings.xml.

There is also the initial installation of maven. But, most people will be
installing ant as well to run any ant builds that we provide.


  I don't think this is necessary. We can look into adding the build
 number to the META-INF. But, this should be possible.

 Versions are important.  The more clear we can be with our version number
 the better.  I'd like it in the filename, because it helps people, including
 us.  One of the reasons Java sucks these days is the lack of good version
 control of JAR files.  The best we can do is put the version number in the
 name of the JAR file to help people know which version they're using.  It
 also helps us on support lists... recall the days when people couldn't tell
 which version they were using because they copied it from somewhere else.
 META-INF is a good second best... but I hear this Maven thing is supposed to
 be good, so I'd expect it to be able to fill this simple requirement.


Fair enough. I didn't say it was impossible. I just said it wasn't necessary
to tack it onto everything.


 I'm already not impressed with the excuses.  I laid out what I think are
 fairly simple requirements that any build system should support.


What excuses? I'm simply getting information and asking you to clarify your
requests. On top of that I'm stating where I don't agree with your
requirements.



  Getting up and going in my IDE

 I honestly don't want to mix the needs of the development tool with the
 build tool.  The build is a separate entity.  Furthermore, let's not mix the
 problems of other projects (which may very well be solved by Maven).  iBATIS
 does not have the problem you describe.  It's a well structured and
 organized directory.  /devlib /lib /src /test.. there's no magic to it.
 I understand what you're saying, but iBATIS simply doesn't have the
 problem.


The beauty of this is that you get both. Can you say that about Ant? hint...
nope.



  I think you need to take your blood pressure medicine.

 Let's not get too immature about it.  I'm being open minded and fair.  I
 asked for very simple things that are achieved with a 260 line Ant file with
 14 well described tasks.  I've yet to see:


You're just a hater :D and you left of my wink from that quote.



 1) A major problem or flaw pointed out with the iBATIS Ant build.  I don't
 care about the general case of Maven vs. Ant and Project X -- what's wrong
 with the *iBATIS* build?


I still need to take the time to figure out the iBATIS ant build. I don't
need to do that with maven. I know what tasks to run in order to build it.



 2) A major advantage to using Maven for iBATIS (other than the potentially
 easier one-time setup of the IDE -- neat, but one-time IDE config vs. daily
 build maintenance...)


Standard project layout is easy to get into and get going. A clearly defined
structure that leaves no question about where future artifacts go.
Unambiguous communication of required project structures is very important.
So, why not go with a common, well known, and documented structure?



 3) Confirmation that Maven can meet some very simple requirements I laid
 out.

 Instead I hear excuses and borderline personal attacks (which I know
 Brandon doesn't really mean, but it's still a shitty way to debate).  Come
 on guys.   You're doing a piss poor job of making your case for Maven with
 that approach.


I'll be honest here, no winks. You tone here is very aggressive. If you want
to keep it civil you should put some winkies in there.



 Don't argue.  Look at what the current build does.  Do it with Maven
 cleanly,  and while meeting all of those simple requirements -- and you've
 won your case.


I'm not arguing I'm providing information. As I stated before in my initial
email. We had provided a build for maven on the current ibatis. There were
some issues that we felt needed to be resolved. I'm pretty sure they have
been resolved. But, we have to give it a go. Additionally, it would be good
to have the folder structures conform to the maven specification. I would
like to see this in place before we endeavor to write a pom and assembly for
it.

Brandon



 Clinton


 On Wed, May 7, 2008 at 8:21 AM, Brandon Goodin [EMAIL PROTECTED]
 wrote:

  Thanks for sharing your passions. My thoughts are below...
 
  #1...
 
  A. one click has never been 

Re: Code Hierarchy and Build Process

2008-05-07 Thread Brandon Goodin
As a follow up to all who are reading this thread. Let me be very clear. Any
aggressive comments are made in jest and fun. We are all good friends here
and enjoy the big brother banter. Please don't take this as an opportunity
to truly dig on any one of us.

Muchos Gracias,
Brandon

On Wed, May 7, 2008 at 11:13 AM, Brandon Goodin [EMAIL PROTECTED]
wrote:

 Comments are mixed in:

 On Wed, May 7, 2008 at 10:38 AM, Clinton Begin [EMAIL PROTECTED]
 wrote:

 
  I wasn't implying that Maven COULDN'T do anything I was just laying
  out what I would want to see from a maven build.
 
   So, if you are saying we can't have an assembly config then gimme a
  break.
 
  What I mean is that if I can't check it out and build without having to
  perform some developer level/local config then forget it.
 

 This would entirely depend on what we are doing. I don't believe iBATIS
 would ever require this unless we used a key for uploading artifacts to a
 location. In that case you would need to add the configuration to your
 settings.xml.

 There is also the initial installation of maven. But, most people will be
 installing ant as well to run any ant builds that we provide.


   I don't think this is necessary. We can look into adding the build
  number to the META-INF. But, this should be possible.
 
  Versions are important.  The more clear we can be with our version
  number the better.  I'd like it in the filename, because it helps people,
  including us.  One of the reasons Java sucks these days is the lack of good
  version control of JAR files.  The best we can do is put the version number
  in the name of the JAR file to help people know which version they're
  using.  It also helps us on support lists... recall the days when people
  couldn't tell which version they were using because they copied it from
  somewhere else.   META-INF is a good second best... but I hear this Maven
  thing is supposed to be good, so I'd expect it to be able to fill this
  simple requirement.
 

 Fair enough. I didn't say it was impossible. I just said it wasn't
 necessary to tack it onto everything.


  I'm already not impressed with the excuses.  I laid out what I think are
  fairly simple requirements that any build system should support.
 

 What excuses? I'm simply getting information and asking you to clarify
 your requests. On top of that I'm stating where I don't agree with your
 requirements.


 
   Getting up and going in my IDE
 
  I honestly don't want to mix the needs of the development tool with the
  build tool.  The build is a separate entity.  Furthermore, let's not mix the
  problems of other projects (which may very well be solved by Maven).  iBATIS
  does not have the problem you describe.  It's a well structured and
  organized directory.  /devlib /lib /src /test.. there's no magic to it.
  I understand what you're saying, but iBATIS simply doesn't have the
  problem.
 

 The beauty of this is that you get both. Can you say that about Ant?
 hint... nope.


 
   I think you need to take your blood pressure medicine.
 
  Let's not get too immature about it.  I'm being open minded and fair.  I
  asked for very simple things that are achieved with a 260 line Ant file with
  14 well described tasks.  I've yet to see:


 You're just a hater :D and you left of my wink from that quote.

 
 
  1) A major problem or flaw pointed out with the iBATIS Ant build.  I
  don't care about the general case of Maven vs. Ant and Project X -- what's
  wrong with the *iBATIS* build?


 I still need to take the time to figure out the iBATIS ant build. I don't
 need to do that with maven. I know what tasks to run in order to build it.


 
  2) A major advantage to using Maven for iBATIS (other than the
  potentially easier one-time setup of the IDE -- neat, but one-time IDE
  config vs. daily build maintenance...)


 Standard project layout is easy to get into and get going. A clearly
 defined structure that leaves no question about where future artifacts go.
 Unambiguous communication of required project structures is very important.
 So, why not go with a common, well known, and documented structure?


 
  3) Confirmation that Maven can meet some very simple requirements I laid
  out.
 
  Instead I hear excuses and borderline personal attacks (which I know
  Brandon doesn't really mean, but it's still a shitty way to debate).  Come
  on guys.   You're doing a piss poor job of making your case for Maven with
  that approach.
 

 I'll be honest here, no winks. You tone here is very aggressive. If you
 want to keep it civil you should put some winkies in there.


 
  Don't argue.  Look at what the current build does.  Do it with Maven
  cleanly,  and while meeting all of those simple requirements -- and you've
  won your case.
 

 I'm not arguing I'm providing information. As I stated before in my
 initial email. We had provided a build for maven on the current ibatis.
 There were some issues that we felt needed to be resolved. 

Re: Code Hierarchy and Build Process

2008-05-07 Thread Larry Meadors
On Wed, May 7, 2008 at 10:15 AM, Brandon Goodin
[EMAIL PROTECTED] wrote:
 As a follow up to all who are reading this thread. Let me be very clear. Any
 aggressive comments are made in jest and fun. We are all good friends here
 and enjoy the big brother banter. Please don't take this as an opportunity
 to truly dig on any one of us.

...well, except for Brandon. He really is a butthead. ;-)

Funny how everyone gets so worked up about how we'll implement
build.sh, isn't it? :-)

Since everyone has an opinion on this, here's mine: I think we should use Maven.

I agree with Clinton that there aren't *problems* with the current
iBATIS build, but at the same time, it would simplify how we do
releases, because as we are seeing, there are more requests (even from
us) for maven artifacts by our users, and mavenizing our build will
make meeting our needs easier.

IMO, the things that Clinton is asking for are not unreasonable, but
they are not uber-critical either.

Let's be really honest here: How critical is it that we are able to
echo arbitrary information to the command line, such as classpath in
use and current version being built? Seriously? :-/

Reality check: Signs, MD5, and Uploads to Apache dist (with no
additional dependencies or configuration) - how's this going to work,
via telepathy? :-D

It's going to be different if we use a different tool. Neither tool is
perfect, so yes, it'll suck. But ant sucks, too - just in a different
way.

My vote is we arrange the source tree to fit what maven expects.
Clinton: I don't care if you don't have to do that with ant. :-P Then,
lets see how close we can get to all of the current ant script. If we
can't get 100%, I'm OK with that, if we can get close and work towards
that goal.

At the end of the day, which ever one makes it easier for me to use
iBATIS (I really don't care about anyone else, sorry) is the one I
want. For me, that means Maven is the better choice. This is a one
time task, so maintenance is not that big of a deal, and it'll output
the jar (like ant does) and the maven artifacts (like ant does not).
It does more, and is a one time investment, let's just get it done and
move on.

Larry


Re: Code Hierarchy and Build Process

2008-05-07 Thread Clinton Begin
 Reality check: Signs, MD5, and Uploads to Apache dist (with no
 additional dependencies or configuration) - how's this going to work,
 via telepathy? :-D

Trusted hosts (or same host) and a continuous integration server with a
manually invoked distribution target.  CI server runs as the deploy user
which is a trusted signatory of the Apache distribution system.

Clinton

On Wed, May 7, 2008 at 10:46 AM, Larry Meadors [EMAIL PROTECTED]
wrote:

 On Wed, May 7, 2008 at 10:15 AM, Brandon Goodin
 [EMAIL PROTECTED] wrote:
  As a follow up to all who are reading this thread. Let me be very clear.
 Any
  aggressive comments are made in jest and fun. We are all good friends
 here
  and enjoy the big brother banter. Please don't take this as an
 opportunity
  to truly dig on any one of us.

 ...well, except for Brandon. He really is a butthead. ;-)

 Funny how everyone gets so worked up about how we'll implement
 build.sh, isn't it? :-)

 Since everyone has an opinion on this, here's mine: I think we should use
 Maven.

 I agree with Clinton that there aren't *problems* with the current
 iBATIS build, but at the same time, it would simplify how we do
 releases, because as we are seeing, there are more requests (even from
 us) for maven artifacts by our users, and mavenizing our build will
 make meeting our needs easier.

 IMO, the things that Clinton is asking for are not unreasonable, but
 they are not uber-critical either.

 Let's be really honest here: How critical is it that we are able to
 echo arbitrary information to the command line, such as classpath in
 use and current version being built? Seriously? :-/

 Reality check: Signs, MD5, and Uploads to Apache dist (with no
 additional dependencies or configuration) - how's this going to work,
 via telepathy? :-D

 It's going to be different if we use a different tool. Neither tool is
 perfect, so yes, it'll suck. But ant sucks, too - just in a different
 way.

 My vote is we arrange the source tree to fit what maven expects.
 Clinton: I don't care if you don't have to do that with ant. :-P Then,
 lets see how close we can get to all of the current ant script. If we
 can't get 100%, I'm OK with that, if we can get close and work towards
 that goal.

 At the end of the day, which ever one makes it easier for me to use
 iBATIS (I really don't care about anyone else, sorry) is the one I
 want. For me, that means Maven is the better choice. This is a one
 time task, so maintenance is not that big of a deal, and it'll output
 the jar (like ant does) and the maven artifacts (like ant does not).
 It does more, and is a one time investment, let's just get it done and
 move on.

 Larry



Re: Code Hierarchy and Build Process

2008-05-07 Thread Brandon Goodin
The other thing that can be nice about maven is for ibatis extension
development. We are making iB3 more accessible. This means that we are
likely to have more people wanting to write against ibatis. Maven makes it
nicer to create dependencies on nightly builds/snapshots.

Brandon

On Wed, May 7, 2008 at 11:54 AM, Clinton Begin [EMAIL PROTECTED]
wrote:

  Reality check: Signs, MD5, and Uploads to Apache dist (with no
  additional dependencies or configuration) - how's this going to work,
  via telepathy? :-D

 Trusted hosts (or same host) and a continuous integration server with a
 manually invoked distribution target.  CI server runs as the deploy user
 which is a trusted signatory of the Apache distribution system.

 Clinton


 On Wed, May 7, 2008 at 10:46 AM, Larry Meadors [EMAIL PROTECTED]
 wrote:

  On Wed, May 7, 2008 at 10:15 AM, Brandon Goodin
  [EMAIL PROTECTED] wrote:
   As a follow up to all who are reading this thread. Let me be very
  clear. Any
   aggressive comments are made in jest and fun. We are all good friends
  here
   and enjoy the big brother banter. Please don't take this as an
  opportunity
   to truly dig on any one of us.
 
  ...well, except for Brandon. He really is a butthead. ;-)
 
  Funny how everyone gets so worked up about how we'll implement
  build.sh, isn't it? :-)
 
  Since everyone has an opinion on this, here's mine: I think we should
  use Maven.
 
  I agree with Clinton that there aren't *problems* with the current
  iBATIS build, but at the same time, it would simplify how we do
  releases, because as we are seeing, there are more requests (even from
  us) for maven artifacts by our users, and mavenizing our build will
  make meeting our needs easier.
 
  IMO, the things that Clinton is asking for are not unreasonable, but
  they are not uber-critical either.
 
  Let's be really honest here: How critical is it that we are able to
  echo arbitrary information to the command line, such as classpath in
  use and current version being built? Seriously? :-/
 
  Reality check: Signs, MD5, and Uploads to Apache dist (with no
  additional dependencies or configuration) - how's this going to work,
  via telepathy? :-D
 
  It's going to be different if we use a different tool. Neither tool is
  perfect, so yes, it'll suck. But ant sucks, too - just in a different
  way.
 
  My vote is we arrange the source tree to fit what maven expects.
  Clinton: I don't care if you don't have to do that with ant. :-P Then,
  lets see how close we can get to all of the current ant script. If we
  can't get 100%, I'm OK with that, if we can get close and work towards
  that goal.
 
  At the end of the day, which ever one makes it easier for me to use
  iBATIS (I really don't care about anyone else, sorry) is the one I
  want. For me, that means Maven is the better choice. This is a one
  time task, so maintenance is not that big of a deal, and it'll output
  the jar (like ant does) and the maven artifacts (like ant does not).
  It does more, and is a one time investment, let's just get it done and
  move on.
 
  Larry
 




Re: Code Hierarchy and Build Process

2008-05-07 Thread Brandon Goodin
Sorry for the spotty emails. just stuff coming to my mind. Another point
would be the whole deploying to the maven repository can be made easier. We
want to be able to provide users with source artifacts and jar artifacts all
properly packaged with maven. I can do this manually. But, i'd rather not.
So, if we can accomplish all that the ant tool does and get the artifacts
out to the maven repo, it would be all that much better.

Brandon

On Wed, May 7, 2008 at 12:03 PM, Brandon Goodin [EMAIL PROTECTED]
wrote:

 The other thing that can be nice about maven is for ibatis extension
 development. We are making iB3 more accessible. This means that we are
 likely to have more people wanting to write against ibatis. Maven makes it
 nicer to create dependencies on nightly builds/snapshots.

 Brandon


 On Wed, May 7, 2008 at 11:54 AM, Clinton Begin [EMAIL PROTECTED]
 wrote:

   Reality check: Signs, MD5, and Uploads to Apache dist (with no
   additional dependencies or configuration) - how's this going to
  work,
   via telepathy? :-D
 
  Trusted hosts (or same host) and a continuous integration server with a
  manually invoked distribution target.  CI server runs as the deploy user
  which is a trusted signatory of the Apache distribution system.
 
  Clinton
 
 
  On Wed, May 7, 2008 at 10:46 AM, Larry Meadors [EMAIL PROTECTED]
  wrote:
 
   On Wed, May 7, 2008 at 10:15 AM, Brandon Goodin
   [EMAIL PROTECTED] wrote:
As a follow up to all who are reading this thread. Let me be very
   clear. Any
aggressive comments are made in jest and fun. We are all good
   friends here
and enjoy the big brother banter. Please don't take this as an
   opportunity
to truly dig on any one of us.
  
   ...well, except for Brandon. He really is a butthead. ;-)
  
   Funny how everyone gets so worked up about how we'll implement
   build.sh, isn't it? :-)
  
   Since everyone has an opinion on this, here's mine: I think we should
   use Maven.
  
   I agree with Clinton that there aren't *problems* with the current
   iBATIS build, but at the same time, it would simplify how we do
   releases, because as we are seeing, there are more requests (even from
   us) for maven artifacts by our users, and mavenizing our build will
   make meeting our needs easier.
  
   IMO, the things that Clinton is asking for are not unreasonable, but
   they are not uber-critical either.
  
   Let's be really honest here: How critical is it that we are able to
   echo arbitrary information to the command line, such as classpath in
   use and current version being built? Seriously? :-/
  
   Reality check: Signs, MD5, and Uploads to Apache dist (with no
   additional dependencies or configuration) - how's this going to work,
   via telepathy? :-D
  
   It's going to be different if we use a different tool. Neither tool is
   perfect, so yes, it'll suck. But ant sucks, too - just in a different
   way.
  
   My vote is we arrange the source tree to fit what maven expects.
   Clinton: I don't care if you don't have to do that with ant. :-P Then,
   lets see how close we can get to all of the current ant script. If we
   can't get 100%, I'm OK with that, if we can get close and work towards
   that goal.
  
   At the end of the day, which ever one makes it easier for me to use
   iBATIS (I really don't care about anyone else, sorry) is the one I
   want. For me, that means Maven is the better choice. This is a one
   time task, so maintenance is not that big of a deal, and it'll output
   the jar (like ant does) and the maven artifacts (like ant does not).
   It does more, and is a one time investment, let's just get it done and
   move on.
  
   Larry
  
 
 



Re: Code Hierarchy and Build Process

2008-05-07 Thread Brandon Goodin
Geez I'm really sorry to fire off yet another...

Yet another point. Ant integration has become quite nice with maven. So, it
is possible we can augment maven insufficiencies with Ant.

Shutting up,
Brandon

On Wed, May 7, 2008 at 12:05 PM, Brandon Goodin [EMAIL PROTECTED]
wrote:

 Sorry for the spotty emails. just stuff coming to my mind. Another point
 would be the whole deploying to the maven repository can be made easier. We
 want to be able to provide users with source artifacts and jar artifacts all
 properly packaged with maven. I can do this manually. But, i'd rather not.
 So, if we can accomplish all that the ant tool does and get the artifacts
 out to the maven repo, it would be all that much better.

 Brandon


 On Wed, May 7, 2008 at 12:03 PM, Brandon Goodin [EMAIL PROTECTED]
 wrote:

  The other thing that can be nice about maven is for ibatis extension
  development. We are making iB3 more accessible. This means that we are
  likely to have more people wanting to write against ibatis. Maven makes it
  nicer to create dependencies on nightly builds/snapshots.
 
  Brandon
 
 
  On Wed, May 7, 2008 at 11:54 AM, Clinton Begin [EMAIL PROTECTED]
  wrote:
 
Reality check: Signs, MD5, and Uploads to Apache dist (with no
additional dependencies or configuration) - how's this going to
   work,
via telepathy? :-D
  
   Trusted hosts (or same host) and a continuous integration server with
   a manually invoked distribution target.  CI server runs as the deploy 
   user
   which is a trusted signatory of the Apache distribution system.
  
   Clinton
  
  
   On Wed, May 7, 2008 at 10:46 AM, Larry Meadors 
   [EMAIL PROTECTED] wrote:
  
On Wed, May 7, 2008 at 10:15 AM, Brandon Goodin
[EMAIL PROTECTED] wrote:
 As a follow up to all who are reading this thread. Let me be very
clear. Any
 aggressive comments are made in jest and fun. We are all good
friends here
 and enjoy the big brother banter. Please don't take this as an
opportunity
 to truly dig on any one of us.
   
...well, except for Brandon. He really is a butthead. ;-)
   
Funny how everyone gets so worked up about how we'll implement
build.sh, isn't it? :-)
   
Since everyone has an opinion on this, here's mine: I think we
should use Maven.
   
I agree with Clinton that there aren't *problems* with the current
iBATIS build, but at the same time, it would simplify how we do
releases, because as we are seeing, there are more requests (even
from
us) for maven artifacts by our users, and mavenizing our build will
make meeting our needs easier.
   
IMO, the things that Clinton is asking for are not unreasonable, but
they are not uber-critical either.
   
Let's be really honest here: How critical is it that we are able to
echo arbitrary information to the command line, such as classpath
in
use and current version being built? Seriously? :-/
   
Reality check: Signs, MD5, and Uploads to Apache dist (with no
additional dependencies or configuration) - how's this going to
work,
via telepathy? :-D
   
It's going to be different if we use a different tool. Neither tool
is
perfect, so yes, it'll suck. But ant sucks, too - just in a
different
way.
   
My vote is we arrange the source tree to fit what maven expects.
Clinton: I don't care if you don't have to do that with ant. :-P
Then,
lets see how close we can get to all of the current ant script. If
we
can't get 100%, I'm OK with that, if we can get close and work
towards
that goal.
   
At the end of the day, which ever one makes it easier for me to use
iBATIS (I really don't care about anyone else, sorry) is the one I
want. For me, that means Maven is the better choice. This is a one
time task, so maintenance is not that big of a deal, and it'll
output
the jar (like ant does) and the maven artifacts (like ant does not).
It does more, and is a one time investment, let's just get it done
and
move on.
   
Larry
   
  
  
 



Re: Code Hierarchy and Build Process

2008-05-07 Thread Larry Meadors
On Wed, May 7, 2008 at 11:07 AM, Brandon Goodin
[EMAIL PROTECTED] wrote:
 Shutting up,

Yeah, we'll keep dreaming. ;-)

Larry


Re: Code Hierarchy and Build Process

2008-05-07 Thread Clinton Begin
NM, found it!  Yes, to all 3.

On Wed, May 7, 2008 at 11:23 AM, Clinton Begin [EMAIL PROTECTED]
wrote:


 Anyone know off hand if Maven can easily support FindBugs, Checkstyle
 and/or Jalopy?

 Cheers,
 Clinton



 On Wed, May 7, 2008 at 11:18 AM, Larry Meadors [EMAIL PROTECTED]
 wrote:

  Hahah, I think it's a good sign that we all have enough passion for
  this stuff to argue about it, and that we are able to call each other
  names, but still get along well enough to play well together. ;-)
 
  Larry
 
 
  On Wed, May 7, 2008 at 11:15 AM, Clinton Begin [EMAIL PROTECTED]
  wrote:
   Vote is out.
  
   If it's positive, I'll switch the directory structure to the Maven 2
   structure, but will update the Ant build and leave the /build, /devlib
  and
   /lib until someone has a chance to configure the Maven project.  Once
  it's
   building nicely, I'll remove the old directories and Ant build.
   Ceremonies
   for the old Ant build file to be held at Apache Funeral Services.
   Donations
   supporting the Mental Case Anger Management fund appreciated.
  
   Clinton ;-)
  
  
  
   On Wed, May 7, 2008 at 11:09 AM, Larry Meadors 
  [EMAIL PROTECTED]
   wrote:
On Wed, May 7, 2008 at 11:07 AM, Brandon Goodin
   
[EMAIL PROTECTED] wrote:
 Shutting up,
   
Yeah, we'll keep dreaming. ;-)
   
Larry
   
  
  
 




Re: Code Hierarchy and Build Process

2008-05-07 Thread Nathan Maves
+1 from me

On Wed, May 7, 2008 at 11:25 AM, Clinton Begin [EMAIL PROTECTED]
wrote:


 NM, found it!  Yes, to all 3.


 On Wed, May 7, 2008 at 11:23 AM, Clinton Begin [EMAIL PROTECTED]
 wrote:

 
  Anyone know off hand if Maven can easily support FindBugs, Checkstyle
  and/or Jalopy?
 
  Cheers,
  Clinton
 
 
 
  On Wed, May 7, 2008 at 11:18 AM, Larry Meadors [EMAIL PROTECTED]
  wrote:
 
   Hahah, I think it's a good sign that we all have enough passion for
   this stuff to argue about it, and that we are able to call each other
   names, but still get along well enough to play well together. ;-)
  
   Larry
  
  
   On Wed, May 7, 2008 at 11:15 AM, Clinton Begin 
   [EMAIL PROTECTED] wrote:
Vote is out.
   
If it's positive, I'll switch the directory structure to the Maven 2
structure, but will update the Ant build and leave the /build,
   /devlib and
/lib until someone has a chance to configure the Maven project.
Once it's
building nicely, I'll remove the old directories and Ant build.
Ceremonies
for the old Ant build file to be held at Apache Funeral Services.
Donations
supporting the Mental Case Anger Management fund appreciated.
   
Clinton ;-)
   
   
   
On Wed, May 7, 2008 at 11:09 AM, Larry Meadors 
   [EMAIL PROTECTED]
wrote:
 On Wed, May 7, 2008 at 11:07 AM, Brandon Goodin

 [EMAIL PROTECTED] wrote:
  Shutting up,

 Yeah, we'll keep dreaming. ;-)

 Larry

   
   
  
 
 



Re: Code Hierarchy and Build Process

2008-05-06 Thread Nathan Maves
Brandon reply below.

I am completely for using Maven 2 and conforming our source tree to it.
There were three issues, iirc, that (if they have not been fixed by the
maven crew) will require a bit of compromise or plugin writing.

#1 A serial number generator for builds does not easily exist for maven. We
had talked about using the svn repo revision number.
#2 We tried finding a way to add a date to our deployment zip file.
Unfortunately maven did not provide an easy way to access a current date
anywhere.
#3 There have been issues with the coverage tools combining with the unit
test tools. If we ran the unit tests, coverage tests, and also generated
reports, the tests would wind up running 3 times.

That being said, I think we should tackle these issues and make Maven our
build tool. Maven has excellent IDE integration now (IDEA and Netbeans are
both good). It makes it a snap to setup projects and get running.
Additionally, the Apache nerds have some maven processes that can help us to
more easily release software in accordance with Apache requirements.

Brandon

On Tue, May 6, 2008 at 10:34 PM, Nathan Maves [EMAIL PROTECTED]
wrote:

 The ideas/requests/demands just keep coming...

 With a clean slate for IB3 I want to propose a few things.  I have been
 using Maven2 for a while now and even use it in my day to day development.
 My first suggestion is to lay out the new source tree to map to the maven2
 style of convention over configuration.  Even if we choose not to use Maven
 as the build/deployment process it is the most logical and thought out
 hierarchy that I have seen.

 On the topic of Maven2 I would like to nominate is as the build/deployment
 process.  Maven2 offers so many pre-built plugins for many useful things
 from coverage reports to unit test results.  If there is something that
 Maven2 does not have I am sure we could write a quick plugin to get it
 done.  I have also been using a new CI tool with Maven2 (
 https://hudson.dev.java.net/ ).  Insanely easy to install and configure.
 Just reads your pom file from maven and away you go.  Like most it can poll
 the svn repo for changes and make snapshots as we commit.

 Let me know what you guys think

 Nathan