I went through the older discussions we had on the topic but I couldn't find
the exact procedure to ask the Maven people to add
http://testng.org/maveninto repo1.
> I went through the older discussions we had on the topic but I couldn't
> find the exact procedure to ask the Maven people to add
> http://testng.org/maven into repo1.
> What's the procedure?
> --
> ***Cédric
> *
> On Thu, Jun 4, 2009 at 2:22 PM, Haw-Bin Chai <hbc...@gmail.com> wrote:
>> Hi all,
>> 5.9 is still not available from the Apache Maven repository - any idea
>> when it will be deployed there?
That's a lot of work for something that sounds so simple, I thought somebody mentioned that all I needed to do was send an email to a list and ask them to copy the current repo (http://testng.org/maven) into repo1... Did I imagine this?
On Wed, 2009-06-10 at 17:57 -0700, Cédric Beust ♔ wrote:
> On Thu, Jun 4, 2009 at 4:53 PM, Stevo Slavić <ssla...@gmail.com> > wrote: > Hello Cédric,
> Procedure is described here.
> That's a lot of work for something that sounds so simple, I thought > somebody mentioned that all I needed to do was send an email to a list > and ask them to copy the current repo (http://testng.org/maven) into > repo1... Did I imagine this?
Yes and no I'm afraid. Much of it is one-off, not per release.
My experience from running a project at Codehaus is that once you have set up to do the deploy to the Codehaus central repository everything runs very smoothly, but doing that initial set up is a bit of a pain, but a one off one. The position for TestNG is that there will be an extra one-off step of getting coordination with Maven Central.
Taking Gant as a example: I do not use Maven, the build uses Gant itself(*) (with an Ant bootstrap), all Maven interaction activity is handled by the Maven Ant task (currently 2.0.10), the jar for which has to be in the project (all other dependencies are then handled via the usual Maven dependency system). The task presents "install" and "deploy" targets which basically do all the work of installing to the local repository and deploying to the remote repository respectively.
So Step 1 is to make a Maven structure repository (at http://repository.beust.com, say). Actually you probably need to set up a main repository and a snapshots repository (http://snapshot-repository.beust.com, say) so that snapshots can be handled as well as releases. Step 2 is to amend the TestNG Ant build to make use of the Maven Ant task to deploy to those repositories -- releases go to the main repository, snapshots go to the snapshots repository (this is handled automatically by having -SNAPSHOTS appended to the version number). There is then a Step 3 but by now everyone can use TestNG within the Maven and Ivy dependency handling by adding this repository to their search list. Step 3 is to get the release repository on the automatic integration list -- this will be more bureaucratic.
TestNG is sufficiently high-profile and important that it would be unseemly for the Maven people to refuse a properly presented request for automatic integration of the TestNG release repository with repo1.maven.org.
An off-the-wall alternative is to switch TestNG to being a Codehaus project and then you get all the repository infrastructure for free. You still have to do Step 2 above but the analogue of Step 1 is already done and there is no need for Step 3.
For Gant, I just do "gant deployMaven" and 10 mins later it is all done with 3 different versions built and uploaded, ready for people to use.
Using Gradle for the build system makes things just as easy. I am assuming that switching TestNG to be a Maven built project is not an option, but then that is no problem, the Maven Ant task suffices for use with Ant, Gant or Gradle. There does have to be a POM though. Gradle generates then automatically. With Ant and Gant you need to have a pom.xml.in that you stream edit for version numbers before doing the install or deploy. A one-off set up and then it Just Works (tm).
(*) Gant using Gant for the build is like TestNG using TestNG for its unit tests, necessary :-)
> On Wed, 2009-06-10 at 17:57 -0700, Cédric Beust ♔ wrote:
> > On Thu, Jun 4, 2009 at 4:53 PM, Stevo Slavić <ssla...@gmail.com>
> > wrote:
> > Hello Cédric,
> > Procedure is described here.
> > That's a lot of work for something that sounds so simple, I thought
> > somebody mentioned that all I needed to do was send an email to a list
> > and ask them to copy the current repo (http://testng.org/maven) into
> > repo1... Did I imagine this?
> Yes and no I'm afraid. Much of it is one-off, not per release.
> My experience from running a project at Codehaus is that once you have
> set up to do the deploy to the Codehaus central repository everything
> runs very smoothly, but doing that initial set up is a bit of a pain,
> but a one off one. The position for TestNG is that there will be an
> extra one-off step of getting coordination with Maven Central.
> Taking Gant as a example: I do not use Maven, the build uses Gant
> itself(*) (with an Ant bootstrap), all Maven interaction activity is
> handled by the Maven Ant task (currently 2.0.10), the jar for which has
> to be in the project (all other dependencies are then handled via the
> usual Maven dependency system). The task presents "install" and
> "deploy" targets which basically do all the work of installing to the
> local repository and deploying to the remote repository respectively.
> So Step 1 is to make a Maven structure repository (athttp://repository.beust.com, say). Actually you probably need to set up
> a main repository and a snapshots repository
> (http://snapshot-repository.beust.com, say) so that snapshots can be
> handled as well as releases. Step 2 is to amend the TestNG Ant build to
> make use of the Maven Ant task to deploy to those repositories --
> releases go to the main repository, snapshots go to the snapshots
> repository (this is handled automatically by having -SNAPSHOTS appended
> to the version number). There is then a Step 3 but by now everyone can
> use TestNG within the Maven and Ivy dependency handling by adding this
> repository to their search list. Step 3 is to get the release
> repository on the automatic integration list -- this will be more
> bureaucratic.
> TestNG is sufficiently high-profile and important that it would be
> unseemly for the Maven people to refuse a properly presented request for
> automatic integration of the TestNG release repository with
> repo1.maven.org.
> An off-the-wall alternative is to switch TestNG to being a Codehaus
> project and then you get all the repository infrastructure for free.
> You still have to do Step 2 above but the analogue of Step 1 is already
> done and there is no need for Step 3.
> For Gant, I just do "gant deployMaven" and 10 mins later it is all done
> with 3 different versions built and uploaded, ready for people to use.
> Using Gradle for the build system makes things just as easy. I am
> assuming that switching TestNG to be a Maven built project is not an
> option, but then that is no problem, the Maven Ant task suffices for use
> with Ant, Gant or Gradle. There does have to be a POM though. Gradle
> generates then automatically. With Ant and Gant you need to have a
> pom.xml.in that you stream edit for version numbers before doing the
> install or deploy. A one-off set up and then it Just Works (tm).
> (*) Gant using Gant for the build is like TestNG using TestNG for its
> unit tests, necessary :-)
> On Jun 11, 9:27 am, Russel Winder <russel.win...@concertant.com>
> wrote:
> > On Wed, 2009-06-10 at 17:57 -0700, Cédric Beust ♔ wrote:
> > > On Thu, Jun 4, 2009 at 4:53 PM, Stevo Slavić <ssla...@gmail.com>
> > > wrote:
> > > Hello Cédric,
> > > Procedure is described here.
> > > That's a lot of work for something that sounds so simple, I thought
> > > somebody mentioned that all I needed to do was send an email to a list
> > > and ask them to copy the current repo (http://testng.org/maven) into
> > > repo1... Did I imagine this?
> > Yes and no I'm afraid. Much of it is one-off, not per release.
> > My experience from running a project at Codehaus is that once you have
> > set up to do the deploy to the Codehaus central repository everything
> > runs very smoothly, but doing that initial set up is a bit of a pain,
> > but a one off one. The position for TestNG is that there will be an
> > extra one-off step of getting coordination with Maven Central.
> > Taking Gant as a example: I do not use Maven, the build uses Gant
> > itself(*) (with an Ant bootstrap), all Maven interaction activity is
> > handled by the Maven Ant task (currently 2.0.10), the jar for which has
> > to be in the project (all other dependencies are then handled via the
> > usual Maven dependency system). The task presents "install" and
> > "deploy" targets which basically do all the work of installing to the
> > local repository and deploying to the remote repository respectively.
> > So Step 1 is to make a Maven structure repository (athttp://
> repository.beust.com, say). Actually you probably need to set up
> > a main repository and a snapshots repository
> > (http://snapshot-repository.beust.com, say) so that snapshots can be
> > handled as well as releases. Step 2 is to amend the TestNG Ant build to
> > make use of the Maven Ant task to deploy to those repositories --
> > releases go to the main repository, snapshots go to the snapshots
> > repository (this is handled automatically by having -SNAPSHOTS appended
> > to the version number). There is then a Step 3 but by now everyone can
> > use TestNG within the Maven and Ivy dependency handling by adding this
> > repository to their search list. Step 3 is to get the release
> > repository on the automatic integration list -- this will be more
> > bureaucratic.
> > TestNG is sufficiently high-profile and important that it would be
> > unseemly for the Maven people to refuse a properly presented request for
> > automatic integration of the TestNG release repository with
> > repo1.maven.org.
> > An off-the-wall alternative is to switch TestNG to being a Codehaus
> > project and then you get all the repository infrastructure for free.
> > You still have to do Step 2 above but the analogue of Step 1 is already
> > done and there is no need for Step 3.
> > For Gant, I just do "gant deployMaven" and 10 mins later it is all done
> > with 3 different versions built and uploaded, ready for people to use.
> > Using Gradle for the build system makes things just as easy. I am
> > assuming that switching TestNG to be a Maven built project is not an
> > option, but then that is no problem, the Maven Ant task suffices for use
> > with Ant, Gant or Gradle. There does have to be a POM though. Gradle
> > generates then automatically. With Ant and Gant you need to have a
> > pom.xml.in that you stream edit for version numbers before doing the
> > install or deploy. A one-off set up and then it Just Works (tm).
> > (*) Gant using Gant for the build is like TestNG using TestNG for its
> > unit tests, necessary :-)