On Wed, Feb 19, 2014 at 4:50 AM, sebb <seb...@gmail.com> wrote: > On 19 February 2014 05:52, Matt Benson <gudnabr...@gmail.com> wrote: > > On Tue, Feb 18, 2014 at 8:59 PM, sebb <seb...@gmail.com> wrote: > >> > >> On 19 February 2014 02:45, Matt Benson <gudnabr...@gmail.com> wrote: > >> > On Tue, Feb 18, 2014 at 8:25 PM, sebb <seb...@gmail.com> wrote: > >> >> > >> >> On 19 February 2014 02:10, Matt Benson <gudnabr...@gmail.com> wrote: > >> >> > On Tue, Feb 18, 2014 at 7:28 PM, sebb <seb...@gmail.com> wrote: > >> >> >> > >> >> >> On 19 February 2014 00:29, Matt Benson <gudnabr...@gmail.com> > wrote: > >> >> >> > On Thu, Feb 13, 2014 at 6:42 PM, sebb <seb...@gmail.com> wrote: > >> >> >> >> > >> >> >> >> On 14 February 2014 00:35, Matt Benson <gudnabr...@gmail.com> > >> >> >> >> wrote: > >> >> >> >> > Seb, can you verify whether you can do `mvn install` from a > >> >> >> >> > fresh > >> >> >> >> > checkout? > >> >> >> >> > This is AFAIK typically required with multimodule Maven > >> >> >> >> > projects: > >> >> >> >> > as > >> >> >> >> > one > >> >> >> >> > module is built, it is installed so that the next module can > >> >> >> >> > depend > >> >> >> >> > on > >> >> >> >> > it. > >> >> >> >> > >> >> >> >> I have checked the RAT multi-module build [1] and that is able > to > >> >> >> >> run > >> >> >> >> clean and compile quite happily. > >> >> >> >> > >> >> >> > > >> >> >> > As you note, Seb, the examples require the Maven plugin. At some > >> >> >> > point, > >> >> >> > if > >> >> >> > we are to test the plugin, something has to depend on it, > leading > >> >> >> > us > >> >> >> > to > >> >> >> > the > >> >> >> > situation where one cannot run `mvn clean` on a fresh checkout. > >> >> >> > The > >> >> >> > difference in the Rat setup is that it depends on an earlier > >> >> >> > version > >> >> >> > of > >> >> >> > its > >> >> >> > own plugin, breaking the cycle, but as weaver-maven-plugin has > >> >> >> > never > >> >> >> > yet > >> >> >> > been released, we don't have that option here. > >> >> >> > >> >> >> AIUI the RAT dependency on the previous version is only for > running > >> >> >> RAT on the source, not for testing the RAT plugin. > >> >> >> The plugin is tested using standard Maven IT tests > >> >> >> > >> > > >> > > >> > I feel we may be talking past each other here, so I'm going to > attempt > >> > to > >> > go into great detail. Thanks for bearing with me; I imagine it's quite > >> > late > >> > for you. > >> > > >> > >> [I'm an owl rather than a lark...] > >> > >> >> > >> >> > I see. This would be new ground for me; however, the existing > >> >> > structure > >> >> > serves multiple purposes: > >> >> > * the example module demonstrates that the maven plugin works and > >> >> > that > >> >> > the > >> >> > privilizer module works > >> >> > * the ant/test module demonstrates that the antlib works and that > >> >> > the > >> >> > privilizer module works > >> >> > * the modules/normalizer/example module demonstrates that the > maven > >> >> > plugin > >> >> > works and that the normalizer module works > >> >> > > >> >> > Using the maven plugin to test the modules is too convenient not to > >> >> > use, > >> >> > but > >> >> > I would be amenable to having these depend on v1.0 of the plugin > once > >> >> > it > >> >> > has > >> >> > been released. Can we agree that the plugin will get standard > >> >> > maven-plugin > >> >> > integration tests after 1.0? > >> >> > >> > > >> >> > >> >> AFAIK, Creadur RAT already handles such things. > >> >> > >> > Yes, apache-rat-plugin seems to be using maven-plugin-testing-harness > to > >> > test itself. But I feel we've lost each other here. The reason the > >> > "current > >> > version" dependencies are truly causing issues is because the Maven > >> > plugin > >> > is used to test the "weaver modules" i.e. privilizer and normalizer. > It > >> > would seem that after a release this job could be handled by > >> > commons-weaver-maven-plugin:1.0 . Then there would be nothing > exercising > >> > the > >> > plugin, however, and it would need dedicated tests at that point. > These > >> > would be created using maven-plugin-testing-harness. It would be best > to > >> > do > >> > something similar with the Antlib; presumably one would use dummy(ish) > >> > implementations of the Weaver and Cleaner SPIs so that bulk of what is > >> > being > >> > tested is the Maven plugin/Antlib itself. > >> > > >> >> AIUI it only needs to depend on the previous RAT version for running > >> >> the RAT report. > >> > > >> > > >> > This is analogous IMO; [weaver] would use an earlier version of the > >> > plugin > >> > for invoking weaver modules under development. > >> > >> I'm not sure it is analagous. > >> AFAICT it's only the RAT *report* that uses the previous version. > >> There is no Weaver Report needed here. > >> > > But the primary function of rat is reporting. The primary function of > > [weaver] is weaving. Thus when I think of one of [weaver]'s other (Maven) > > submodules using weaver-maven-plugin to weave a sample codebase (in the > > interest of testing a "weaver module") this seems to me analogous to > using > > (an earlier version of) rat to report any licensing issues found in its > own > > codebase. > > Yes, I understand the function analogy. > > But my argument is that RAT has to use the previous version only > because it is used by the report part of the build. > If the RAT report were dropped, AFAICT there would be no need to refer > to the earlier version. > It is only the reporting phase that cannot use the current version of RAT. > > Weaver is not used in the report phase. > > >> >> > >> >> That would presumably be much too hard to make work with the current > >> >> version (and anyway it is not necessary to use the latest for the > site > >> >> report). > >> > > >> > > >> > I guess you're still talking about rat here, but part of what you've > >> > said > >> > applies to [weaver]: it would quite difficult to break the circularity > >> > without a prior release to depend upon. > >> > > >> >> > >> >> > >> >> I don't think it makes sense for the plugin tests to depend on > >> >> anything but the current version. > >> >> Surely one wants to test the current version? > >> >> > >> > I agree, but when a weaver module rather than the plugin/Antlib is > >> > what's > >> > being tested there is no such restriction (unless some new feature of > >> > these > >> > becomes needed to test some future weaver module). > >> > > >> > Are we on the same page now wrt testing? To be 100% clear, I am > >> > proposing > >> > that we document the necessity of `mvn clean install`, as you've > >> > suggested, > >> > for v1.0, then update to remove the circular dependency upon > >> > commons-weaver-maven-plugin:${project.version} and > >> > commons-weaver-antlib:${project.version}, giving these dedicated tests > >> > of > >> > their own once they will no longer be exercised in the course of > testing > >> > weaver modules. > >> > >> This problem must exist for all Maven plugins - if indeed it is a > problem. > >> I'm not sure it is. > >> > > Here we have a set of artifacts, one of which is a Maven plugin, and > others > > of which can be conveniently tested/demonstrated using said plugin. It > may > > not be all that often that such a situation comes up. In any case, I > don't > > hear you telling me you can't live with my proposal. > > I'm not convinced that the poms are correctly set up at present. > It's quite difficult for people to use them. > Unfortunately I don't know enough about Maven IT testing to know what > the solution is. > Perhaps there are some other devs on this list who have got the > necessary experience to help fix this? >
We can ask around, certainly, but if the goal is running a Maven multimodule build in which module A depends on its sibling plugin module B, of the same version, without installing or even so much as packaging B, I fail to see how we'd be barking up anything but the wrong tree. IMO the current situation is not surprising. Matt > > > Regards, > > Matt > > > >> >> > >> >> >> > >> >> >> >> We should not force developers to have to run install. > >> >> >> >> There must be a way to get the weaver build working without > such > >> >> >> >> restrictions. > >> >> >> >> > >> >> >> > It is possible to build everything without installing using `mvn > >> >> >> > package` > >> >> >> > which uses the Maven reactor to make the various module builds > >> >> >> > mutually > >> >> >> > available to one another. [1] links to [2], and [3] directs > users > >> >> >> > to > >> >> >> > run > >> >> >> > `mvn clean install`, so if [weaver]'s build gives the option of > >> >> >> > running > >> >> >> > `mvn > >> >> >> > clean install` or `mvn package` I think that will have to do. > >> >> >> > Restricting > >> >> >> > the plugin to run only in a specific profile, for example, > doesn't > >> >> >> > help. > >> >> >> > >> >> >> If special instructions are needed to build the component, these > >> >> >> ought > >> >> >> to be documented in a BUILDING or README file > >> >> > > >> >> > > >> >> > There is a "building" document on the site (its source is at > >> >> > src/site/markdown). Would you want to see its content duplicated at > >> >> > the > >> >> > root > >> >> > of the project, or would this file satisfy you with a few > additions? > >> >> > >> >> It's important the user who download the source can easily build it. > >> >> So having a text file in the root is best. > >> >> However this could just point to another file if that clearly > explains > >> >> how to build the code. > >> >> Or there could be basic build instructions in the root file with a > >> >> link to further details elsewhere. > >> >> > >> > That sounds reasonable. > >> > > >> > Matt > >> > > >> >> > >> >> >> > >> >> >> > >> >> >> Also it's not just "mvn clean" that does not work > >> >> >> > >> >> >> Cannont run "mvn dependency:tree" either, and I'm sure there are > >> >> >> other > >> >> >> utility plugins that won't work. > >> >> > > >> >> > > >> >> > I did notice that the dependency plugin's goals also don't work in > >> >> > this > >> >> > context. I am happy to document the current requirement of an > >> >> > installation > >> >> > (I still suspect most Maven users working with multimodule projects > >> >> > are > >> >> > using `mvn clean install`). > >> >> > > >> >> >> > >> >> >> > >> >> >> > Matt > >> >> >> > [1] > >> >> >> > http://maven.apache.org/guides/mini/guide-multiple-modules.html > >> >> >> > [2] > >> >> >> > http://books.sonatype.com/mvnex-book/reference/multimodule.html > >> >> >> > [3] > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > http://books.sonatype.com/mvnex-book/reference/multimodule-sect-building-multimodule.html > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> >> > >> >> >> >> [1] https://svn.apache.org/repos/asf/creadur/rat/trunk > >> >> >> >> > >> >> >> >> > Thanks, > >> >> >> >> > Matt > >> >> >> >> > > >> >> >> >> > > >> >> >> >> > On Wed, Feb 12, 2014 at 5:46 PM, sebb <seb...@gmail.com> > wrote: > >> >> >> >> >> > >> >> >> >> >> BTW, I'm getting some odd errors on trunk. > >> >> >> >> >> > >> >> >> >> >> For example, just tried "mvn clean" and it fails with > >> >> >> >> >> > >> >> >> >> >> ============================= > >> >> >> >> >> > >> >> >> >> >> [ERROR] BUILD FAILURE > >> >> >> >> >> [INFO] > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > ------------------------------------------------------------------------ > >> >> >> >> >> [INFO] A required plugin was not found: Plugin could not be > >> >> >> >> >> found > >> >> >> >> >> - > >> >> >> >> >> check that the goal name is correct: Unable to download the > >> >> >> >> >> artifact > >> >> >> >> >> from any repository > >> >> >> >> >> > >> >> >> >> >> Try downloading the file manually from the project website. > >> >> >> >> >> > >> >> >> >> >> Then, install it using the command: > >> >> >> >> >> mvn install:install-file -DgroupId=org.apache.commons > >> >> >> >> >> -DartifactId=commons-weaver-maven-plugin > >> >> >> >> >> -Dversion=1.0.1-SNAPSHOT > >> >> >> >> >> -Dpackaging=maven-plugin -Dfile=/pat > >> >> >> >> >> h/to/file > >> >> >> >> >> > >> >> >> >> >> Alternatively, if you host your own repository you can > deploy > >> >> >> >> >> the > >> >> >> >> >> file > >> >> >> >> >> there: > >> >> >> >> >> mvn deploy:deploy-file -DgroupId=org.apache.commons > >> >> >> >> >> -DartifactId=commons-weaver-maven-plugin > >> >> >> >> >> -Dversion=1.0.1-SNAPSHOT > >> >> >> >> >> -Dpackaging=maven-plugin -Dfile=/path/ > >> >> >> >> >> to/file -Durl=[url] -DrepositoryId=[id] > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > org.apache.commons:commons-weaver-maven-plugin:maven-plugin:1.0.1-SNAPSHOT > >> >> >> >> >> > >> >> >> >> >> from the specified remote repositories: > >> >> >> >> >> central (http://repo1.maven.org/maven2) > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > org.apache.commons:commons-weaver-maven-plugin:maven-plugin:1.0.1-SNAPSHOT > >> >> >> >> >> > >> >> >> >> >> from the specified remote repositories: > >> >> >> >> >> central (http://repo1.maven.org/maven2) > >> >> >> >> >> > >> >> >> >> >> ============================= > >> >> >> >> >> > >> >> >> >> >> I have yet to build weaver, so there is no plugin in the > repo. > >> >> >> >> >> > >> >> >> >> >> It seems wrong that the plugin has to be built and installed > >> >> >> >> >> before > >> >> >> >> >> one can run "mvn clean" but I don't know how to fix this. > >> >> >> >> >> > >> >> >> >> >> Also, it does not appear to be possible to run "mvn compile" > >> >> >> >> >> from > >> >> >> >> >> the > >> >> >> >> >> top-level > >> >> >> >> >> > >> >> >> >> >> Further, it looks as though the maven shade plugin may > require > >> >> >> >> >> M3.x > >> >> >> >> >> If so, the pom needs to require this. > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> On 12 February 2014 23:37, sebb <seb...@gmail.com> wrote: > >> >> >> >> >> > On 12 February 2014 23:22, Matt Benson > >> >> >> >> >> > <gudnabr...@gmail.com> > >> >> >> >> >> > wrote: > >> >> >> >> >> >> The AL header is in > >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> > https://svn.apache.org/repos/asf/commons/proper/commons-parent/trunk/src/changes/release-notes.vm > , > >> >> >> >> >> >> from which the release notes were generated. > >> >> >> >> >> > > >> >> >> >> >> > The header lines in the vm file are comments that are not > >> >> >> >> >> > supposed > >> >> >> >> >> > to > >> >> >> >> >> > be copied to the generated output. > >> >> >> >> >> > Likewise the later lines prefixed with ## > >> >> >> >> >> > > >> >> >> >> >> > How did you generate the RN file? > >> >> >> >> >> > > >> >> >> >> >> >> Interestingly, m2eclipse defaults to the behavior that > >> >> >> >> >> >> redundant > >> >> >> >> >> >> groupId/version are warning-worthy. Browsing > >> >> >> >> >> >> http://svn.apache.org/repos/asf/maven seems to show that > >> >> >> >> >> >> Apache > >> >> >> >> >> >> Maven's > >> >> >> >> >> >> own > >> >> >> >> >> >> developers omit the duplicate elements. > >> >> >> >> >> > > >> >> >> >> >> > That does not mean it is best practise for non-plugin > >> >> >> >> >> > development. > >> >> >> >> >> > > >> >> >> >> >> >> Thanks for working on my line endings; apparently one or > >> >> >> >> >> >> more > >> >> >> >> >> >> of > >> >> >> >> >> >> my > >> >> >> >> >> >> machines wasn't/isn't configured properly in that regard. > >> >> >> >> >> > > >> >> >> >> >> > OK. > >> >> >> >> >> > > >> >> >> >> >> >> Matt > >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> On Wed, Feb 12, 2014 at 4:49 PM, sebb <seb...@gmail.com> > >> >> >> >> >> >> wrote: > >> >> >> >> >> >> > >> >> >> >> >> >>> On 12 February 2014 02:20, Matt Benson > >> >> >> >> >> >>> <mben...@apache.org> > >> >> >> >> >> >>> wrote: > >> >> >> >> >> >>> > I would like to make the inaugural release of the > >> >> >> >> >> >>> > [weaver] > >> >> >> >> >> >>> > component. > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > Apache Commons Weaver 1.0 RC1 is available for review > >> >> >> >> >> >>> > at: > >> >> >> >> >> >>> > > https://dist.apache.org/repos/dist/dev/commons/weaver/ > >> >> >> >> >> >>> > (r4368). > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > Maven artifacts are at: > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > https://repository.apache.org/content/repositories/orgapachecommons-1007/. > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > Tested with Oracle JDKs 6 and 7. > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > The Subversion tag is: > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > http://svn.apache.org/repos/asf/commons/proper/weaver/tags/1.0_RC1/(r1567477) > >> >> >> >> >> >>> . > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > Site: > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > > http://people.apache.org/~mbenson/commons-weaver-1.0-rc1/index.html > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > RAT Report: > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > http://people.apache.org/~mbenson/commons-weaver-1.0-rc1/rat-report.html > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > >> >> >> >> >> >>> I've never seen the AL header in release notes before. > >> >> >> >> >> >>> Not sure that's necessary (and it makes the notes harder > >> >> >> >> >> >>> to > >> >> >> >> >> >>> read). > >> >> >> >> >> >>> > >> >> >> >> >> >>> The poms don't include any groupId definitions. > >> >> >> >> >> >>> Although this will default from the parent, I think it > is > >> >> >> >> >> >>> better > >> >> >> >> >> >>> to > >> >> >> >> >> >>> specify the group id. > >> >> >> >> >> >>> Otherwise it is not clear whether the omission is > >> >> >> >> >> >>> accidental > >> >> >> >> >> >>> or > >> >> >> >> >> >>> deliberate. > >> >> >> >> >> >>> Also if the parent group Id ever changes (or perhaps is > >> >> >> >> >> >>> removed) > >> >> >> >> >> >>> the > >> >> >> >> >> >>> component groupId will change unless the groupId is > added > >> >> >> >> >> >>> at > >> >> >> >> >> >>> that > >> >> >> >> >> >>> point. > >> >> >> >> >> >>> > >> >> >> >> >> >>> > Keys: > >> >> >> >> >> >>> > > https://dist.apache.org/repos/dist/release/commons/KEYS > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > Please review the release candidate and vote. > >> >> >> >> >> >>> > This vote will close no sooner that 72 hours from > now, > >> >> >> >> >> >>> > i.e. > >> >> >> >> >> >>> > after > >> >> >> >> >> >>> 0300UTC > >> >> >> >> >> >>> > 15-February 2014 > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > [ ] +1 Release these artifacts > >> >> >> >> >> >>> > [ ] +0 OK, but... > >> >> >> >> >> >>> > [ ] -0 OK, but really should fix... > >> >> >> >> >> >>> > [ ] -1 I oppose this release because... > >> >> >> >> >> >>> > > >> >> >> >> >> >>> > Thanks! > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> >> >>> > --------------------------------------------------------------------- > >> >> >> >> >> >>> To unsubscribe, e-mail: > dev-unsubscr...@commons.apache.org > >> >> >> >> >> >>> For additional commands, e-mail: > >> >> >> >> >> >>> dev-h...@commons.apache.org > >> >> >> >> >> >>> > >> >> >> >> >> >>> > >> >> >> >> > > >> >> >> >> > > >> >> >> > > >> >> >> > > >> >> > > >> >> > > >> > > >> > > > > > >