Re: New machine for the continuous integration

Linus Tolke Tigris <[email protected]>
Newsgroups gmane.comp.lang.uml.argouml.devel
Message-ID <CAPumN3tX3T_YvTJfKM0An8+Lg0a18_1OPgQxivOe6ZwmoKOcaA@mail.gmail.com>
Hello Mark!

I mailed mvnrepository.com in an attempt to understand what the purpose and
conditions were.

Then I noticed that Sonatype provides a server that allows open source
projects to publish snapshots (with automatic deletion of old snapshots) (
https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide).
To me this sounds exactly like what we need.

        /Linus


2011/8/9 Mark Fortner <[email protected]>

> Hi Linus,
> I'll take a look at the toppom.xml file.  One thing I'm curious about is
> how to define a minimal checkout.  We're currently doing this with the PSF
> files, but it would be nice if you're a module developer, if you're only
> checkout was your module, plus an extra pom file.
>
> Setting up the maven repo on a different box sounds good.  I wonder how
> difficult it would be to contribute it directly to mvnrepository.com? It's
> the default repo that most people use for open source projects.
>
> Mark
>
>
>
> On Tue, Aug 9, 2011 at 1:38 PM, Linus Tolke Tigris <[email protected]>wrote:
>
>> Hello again Mark!
>>
>> My knowledge of maven is limited so I can only guess as to what would be
>> the best way forward. Please proceed with this if you think this is the
>> natural way to do it. The items 2 - 5 should go in the toppom.xml since they
>> involve several projects.
>>
>> The argouml maven2 respository is an SVN based repository. For snapshot
>> jars I would like to publish them from a repository that is not SVN-based
>> (to reduce long term disk space usage). Shall I set up a public maven
>> repository for publishing the snapshot versions on the build host? Could we
>> do that someplace with more available bandwidth and better up-time?
>>
>>         /Linus
>>
>>
>>
>> 2011/8/9 Mark Fortner <[email protected]>
>>
>>> Hi Linus,
>>> It sounds like you've made a lot of progress towards getting the Maven
>>> build working. Perhaps our next step should be to try and get the an
>>> installable build working.  To do this we'd need to:
>>>
>>>    1. Modify the pom's so that they're picking up the resources properly
>>>    and putting them in the jar files.
>>>    2. Create assemblies that combine the JAR files and the dependencies
>>>    into a single installable zip file.
>>>    3. Create the webstart build using the WebStart mojo:
>>>    http://mojo.codehaus.org/webstart/webstart-maven-plugin/
>>>    4. Create the Mac build using the Mac/Maven mojo:
>>>    http://mojo.codehaus.org/osxappbundle-maven-plugin/
>>>
>>> It might also be worth taking a look at the IzPack mojo.  This would
>>> allow us to generate a cross-platform installer, with support for optional
>>> module downloads and installs.
>>> http://izpack.codehaus.org/izpack-maven-plugin/index.html
>>>
>>> What do you think?
>>>
>>> Mark
>>>
>>>
>>> On Tue, Aug 9, 2011 at 12:19 PM, Linus Tolke Tigris <[email protected]>wrote:
>>>
>>>> Hello Mark!
>>>>
>>>> The work I have done is with almost no maven experience so I will try to
>>>> understand what you are asking and answer.
>>>>
>>>> Let me first describe how it works now.
>>>>
>>>> The maven-site job is job with everything. It checks out argouml (and
>>>> argouml-actionscript3) from trunk and runs maven targets install and site
>>>> using the file argouml/tools/maven/toppom.xml. This includes running all
>>>> tests, checkstyle, pmd and findbugs. This also installs the
>>>> argouml/trunk/pom.xml (argouml-core) in the local repository as a snapshot.
>>>>
>>>> The argouml-tools and parentpom jobs just stores their respective poms
>>>> in the local repository. These poms are used by other jobs.
>>>>
>>>> All other maven jobs (argouml-actionscript3, argouml-app,
>>>> argouml-core-diagrams-activity2, argouml-core-diagrams-class2,
>>>> argouml-core-diagrams-deployment2, argouml-core-diagrams-sequence2,
>>>> argouml-core-diagrams-state2, argouml-core-diagrams-structure2,
>>>> argouml-core-model, argouml-core-model-euml, argouml-core-model-mdr,
>>>> argouml-core-notation, argouml-core-transformer, and
>>>> argouml-core-umlpropertypanels) just checks out the specific subproject,
>>>> fetches libraries from the argouml maven2 repository of released artifacts
>>>> and fetches poms and newly built snapshot versions of things built by other
>>>> jobs from the local repository. These uses the install target that runs all
>>>> tests and installs the resulting jar in the local repository.
>>>>
>>>> The Jenkins/Hudson maven plugin has functions that uses the knowledge of
>>>> things deployed in the local repository to start jobs when dependencies are
>>>> updated. This can be seen as Upstream projects and Downstream projects on
>>>> each project. For an example, see
>>>> http://closettop.homelinux.org:8080/job/argouml-app/.
>>>>
>>>> I will now attempt to answer your questions.
>>>>
>>>> *How mavenized is the rest of the build currently?*
>>>> So far my goal has been merely to avoid maintaining tools for the static
>>>> checks so an update of checkstyle of findbugs will be a simple change in a
>>>> single file and to use Jenkins reports.
>>>>  *
>>>> *
>>>> *Do you build deployable artifacts?*
>>>> I am not sure. They are not signed, the build host does not have the
>>>> key, but they are deployed in the local repository on the build host.*
>>>>
>>>> *
>>>> *Do you build JAR files with maven?*
>>>> Yes, jar files are installed in the local repository and used by other
>>>> jobs.
>>>> *
>>>> *
>>>> *Do the JAR files contain the manifest file and appropriate META-INF
>>>> directories?*
>>>> I am not sure, I don't think so. I have not bothered about this since
>>>> the jars in the local repository are only used to build and run tests in
>>>> other maven jobs.
>>>> *
>>>> *
>>>> *Do you build installable artifacts?*
>>>>  No.
>>>> *
>>>> *
>>>> *Does the build include assemblies that contain all of the dependent
>>>> JARs?*
>>>> No.
>>>> *
>>>> *
>>>> *Does the build create the webstart artifacts, the Mac DMG, and Linux
>>>> installs?  Have you tried creating RPMs and pkgs for RedHat and Ubuntu
>>>> respectively?*
>>>>  No.
>>>>
>>>> *Do all the projects have at least a minimal pom file and appropriate
>>>> references to the parent pom?  I noticed that argo-core-diagrams-uml2
>>>> didn't, but I don't know if this was intentional or not.*
>>>>  No, just the projects mentioned above has poms. My plan is to extend
>>>> this one project at the time but I also get the feeling that it would be
>>>> good if this could be reviewed by someone with more maven knowledge, like
>>>> you, to make sure that this is the right direction.
>>>>
>>>> *Do the unit tests run, and do you currently generate a report from the
>>>> unit tests?*
>>>> Yes, well, the Jenkins/Hudson has its own reports that also has the time
>>>> dimensions (to see when a test starts to fail and stops failing) see
>>>> http://closettop.homelinux.org:8080/job/argouml-app/.
>>>>
>>>> The maven-site job also runs the mvaen site target to generate the maven
>>>> site but I see now that there is no rapport from the JUnit tests while the
>>>> other reports are there. See here:
>>>> http://closettop.homelinux.org:8080/job/maven-site/site/argouml-app/project-reports.html
>>>>
>>>> *Do you currently deploy the artifacts to a mvn repository (like
>>>> artifactory) so that if you're doing a build of module you don't have to
>>>> check out all of the other argouml projects?  If it's deployed to a mvn
>>>> repository, and you do a mvn build, it will download the JARs for
>>>> argouml-core* and any other dependent projects.  This minimizes the download
>>>> time, and lets people get up and running fairly quickly.
>>>> *
>>>> SNAPSHOT jars are only installed in the local repository on the build
>>>> host so that the other jobs can benefit from this. Other developers cannot
>>>> currently benefit from these builds.
>>>>
>>>> The java-interfaces jar should be build as a SNAPSHOT and installed in
>>>> the local repository by a job but I have not dared to run the mdr generation
>>>> from maven. Instead java-interfaces jar is treated as an external library
>>>> and taken from the argouml maven2 repository. The antlr builds, I have not
>>>> dared to address either.
>>>>
>>>> In an attempt not to confuse things I have confused things by using
>>>> different version numbers for the maven-builds SNAPSHOT jars and for the
>>>> development and stable builds. The maven-builds are only at 0.2. I have
>>>> attempted to state this version number in as few places as possible. I found
>>>> a maven discussion post with some pointers to do this.
>>>>
>>>>          /Linus
>>>>
>>>>
>>>>
>>>>
>>>> 2011/8/9 Mark Fortner <[email protected]>
>>>>
>>>>> Hi Linus,
>>>>> How mavenized is the rest of the build currently?
>>>>>
>>>>>    - Do you build deployable artifacts?
>>>>>       - Do you build JAR files with maven?
>>>>>       - Do the JAR files contain the manifest file and appropriate
>>>>>       META-INF directories?
>>>>>    - Do you build installable artifacts?
>>>>>       - Does the build include assemblies that contain all of the
>>>>>       dependent JARs?
>>>>>       - Does the build create the webstart artifacts, the Mac DMG, and
>>>>>       Linux installs?  Have you tried creating RPMs and pkgs for RedHat and Ubuntu
>>>>>       respectively?
>>>>>    - Do all the projects have at least a minimal pom file and
>>>>>    appropriate references to the parent pom?  I noticed that
>>>>>    argo-core-diagrams-uml2 didn't, but I don't know if this was intentional or
>>>>>    not.
>>>>>    - Do the unit tests run, and do you currently generate a report
>>>>>    from the unit tests?
>>>>>    - Do you currently deploy the artifacts to a mvn repository (like
>>>>>    artifactory) so that if you're doing a build of module you don't have to
>>>>>    check out all of the other argouml projects?  If it's deployed to a mvn
>>>>>    repository, and you do a mvn build, it will download the JARs for
>>>>>    argouml-core* and any other dependent projects.  This minimizes the download
>>>>>    time, and lets people get up and running fairly quickly.
>>>>>
>>>>> Mark
>>>>>
>>>>>
>>>>> On Fri, Jul 15, 2011 at 4:36 PM, Linus Tolke Tigris <[email protected]>wrote:
>>>>>
>>>>>> Hello again Mark!
>>>>>>
>>>>>> I think I have solved the checksum problem now. I still get errors
>>>>>> that the poms are invalid though. I don't understand that problem.
>>>>>>
>>>>>>         /Linus
>>>>>>
>>>>>>
>>>>>> 2011/7/16 Mark Fortner <[email protected]>
>>>>>>
>>>>>>> Hi Linus,
>>>>>>> When I do a build, I get messages like this:
>>>>>>>
>>>>>>> [WARNING] *** CHECKSUM FAILED - Error retrieving checksum file for
>>>>>>> org/argouml/argouml-mdr/0.32/argouml-mdr-0.32.jar - IGNORING
>>>>>>>
>>>>>>> [WARNING] *** CHECKSUM FAILED - Error retrieving checksum file for
>>>>>>> org/netbeans/mdr/nbmdr/0.0-5/nbmdr-0.0-5.jar - IGNORING
>>>>>>>
>>>>>>> [WARNING] *** CHECKSUM FAILED - Error retrieving checksum file for
>>>>>>> org/argouml/argouml-mdr/0.32/argouml-mdr-0.32.pom - IGNORING
>>>>>>> [WARNING] POM for 'org.argouml:argouml-mdr:pom:0.32:test' is invalid.
>>>>>>>
>>>>>>> Its dependencies (if any) will NOT be available to the current build.
>>>>>>> [WARNING] POM for 'org.argouml:java-interfaces:pom:0.32:test' is
>>>>>>> invalid.
>>>>>>>
>>>>>>>
>>>>>>> And a few like this:
>>>>>>>
>>>>>>> Downloading:
>>>>>>> http://argouml-downloads.tigris.org/maven2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom
>>>>>>> [INFO] Unable to find resource
>>>>>>> 'org.codehaus.plexus:plexus-containers:pom:1.0-alpha-16' in repository
>>>>>>> argouml (http://argouml-downloads.tigris.org/maven2)
>>>>>>> Downloading:
>>>>>>> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom
>>>>>>>
>>>>>>>
>>>>>>> The project still builds properly though.
>>>>>>>
>>>>>>> Mark
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Jul 15, 2011 at 2:52 PM, Linus Tolke Tigris <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hello Mark!
>>>>>>>>
>>>>>>>> I think I have understood how to synchronize the version numbers
>>>>>>>> throughout the maven pom files. It is, however, not synchronized with the
>>>>>>>> version numbers of the stable and development builds.
>>>>>>>>
>>>>>>>> What are the old versions you are referring to? I find the
>>>>>>>> java-interfaces jar. Is that the one?
>>>>>>>>
>>>>>>>> The maven build uses only tools downloaded from maven (with version
>>>>>>>> specified in the parentpom.xml). No ant files or property files are used so
>>>>>>>> the pom files constitute a complete set of configuration files. As you can
>>>>>>>> see I have managed to get it to build in the Hudson server. What is it that
>>>>>>>> is not working for you?
>>>>>>>>
>>>>>>>>       /Linus
>>>>>>>>
>>>>>>>>
>>>>>>>> 2011/7/15 Mark Fortner <[email protected]>
>>>>>>>>
>>>>>>>>> Hi Linus,
>>>>>>>>> Now that you have the new build machine setup, have you made any
>>>>>>>>> progress with updating the maven pom files?  There still seem to be a lot of
>>>>>>>>> references to an old mvn repo, where it tries to download outdated
>>>>>>>>> artifacts. I did a checkout recently to setup a new machine with argouml and
>>>>>>>>> I'd forgotten how painful it is to get a argouml into a buildable state.
>>>>>>>>>  Not to mention the fact that there's a dissertation, and a whole lot of
>>>>>>>>> tools checked into the svn repo.
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>>
>>>>>>>>> Mark
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sun, Jun 5, 2011 at 5:54 AM, Linus Tolke Tigris <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hello all!
>>>>>>>>>>
>>>>>>>>>> I have now replaced the old host running the continuous
>>>>>>>>>> integration and nightly build with a new one. It is a P4 Dual 2.6GHz with
>>>>>>>>>> 2GB memory instead of a P2 400MHz with 512M, Ubuntu instead of Debian and
>>>>>>>>>> Jenkins instead of Hudson. Everything is a lot quicker.
>>>>>>>>>>
>>>>>>>>>>          /Linus
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>
>>>
>>
>

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=450&dsMessageId=2813820

To unsubscribe from this discussion, e-mail: [[email protected]].
To be allowed to post to the list contact the mailing list moderator, email: [[email protected]]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.