Hello all!
I have now applied for the argouml project to be allowed to publish
snapshots in this open source repository.
/Linus
2011/8/10 Linus Tolke Tigris <[email protected]>
> 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=2825335
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]]