commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Gregory <GGreg...@seagullsoftware.com>
Subject RE: [VOTE] Release Commons IO 1.4 based on RC2
Date Wed, 16 Jan 2008 21:16:46 GMT
> From: sebb [mailto:sebbaz@gmail.com]
> Sent: Wednesday, January 16, 2008 1:07 PM
> To: Jakarta Commons Developers List
> Subject: Re: [VOTE] Release Commons IO 1.4 based on RC2
>
> On 16/01/2008, Niall Pemberton <niall.pemberton@gmail.com> wrote:
> > On Jan 16, 2008 6:04 PM, Gary Gregory <GGregory@seagullsoftware.com>
> wrote:
> > > > From: sebb [mailto:sebbaz@gmail.com]
> > > > Sent: Wednesday, January 16, 2008 8:21 AM
> > > > To: Jakarta Commons Developers List
> > > > Subject: Re: [VOTE] Release Commons IO 1.4 based on RC2
> > > >
> > > > On 16/01/2008, Niall Pemberton <niall.pemberton@gmail.com> wrote:
> > > > > On Jan 16, 2008 3:58 PM, sebb <sebbaz@gmail.com> wrote:
> > > > > > The manifest created by the M2 build includes the following:
> > > > > >
> > > > > > Build-Jdk: 1.5.0_07
> > > > > > X-Compile-Source-JDK: 1.3
> > > > > > X-Compile-Target-JDK: 1.3
> > > > > >
> > > > > > so yes, the actual build JDK is shown, but so are the intended
versions.
> > > > > >
> > > > > > For javac, the source and target setting have limited effect
in that
> > > > > > they don't affect the libraries, see:
> > > > > >
> > > > > > https://issues.apache.org/jira/browse/MATH-
> > > > 173?focusedCommentId=12557925#action_12557925
> > > > >
> > > > > Just a note on the above - I have built IO 1.4 using Ant and JDK
1.3
> > > > > (the ant build excludes the JDK 1.4 dependant classes when JDK 1.3
is
> > > > > used) and that guarantees that except for the 4 JDK 1.4
> > > > > implementations the rest if the code base only uses JDK 1.3 APIs.
Feel
> > > > > free to try this out yourselves.
> > > > >
> > > >
> > > > Builds OK for me on 1.3.1_20 so APIs are presumably OK.
> > > >
> > > > However JDK1.4 is required for testing, so one has to assume that the
> > > > 1.3 code tests still work ... for a release which is still targetted
> > > > at 1.3 it would be nice if at least one of the build methods allowed
> > > > this to be demonstrated.
> > >
> > > I agree. The Ant build has the same problem. You can build but not test on
> 1.3.1. IMO, if you cannot run tests on Java x.y , you cannot say you run on Java
> x.y, strictly speaking. It seems that we "know" we can run but without unit
> tests... we are effectively releasing untested code in that context.
> > >
> > > This is why I have voiced (mildly) opposition to support mixed SDK released
> for IO 1.4. To me it is much simpler to do and explain that, for example: IO 1.3.2
> runs on Java 1.3.1 and IO 1.4 runs on Java 1.4.2. Or keep the Java 1.3.1
> requirement for IO 1.4 and move it to Java 1.4.2 for IO 1.5.
> >
> > We made this decision months ago and the majority opinion was to move
> > to Java 1.4 for IO 1.4. Stephen though wanted to retain compatibility
> > for the existing code base - even though he was in a minority, we
> > respected his opinion and took this compromise. I have provided a
> > mechanism to ensure that JDK 1.4 features have not leaked into the
> > existing code base - on top of that anyone who wants to can build
> > themselves a JDK 1.3 version - I think this is enough. Theres also
> > nothing to stop anyone hacking the ant build to get the tests working
> > for 1.3 to satisfy themselves about this release.
>
> Just tried creating an Ant test target for 1.3, and AFAICS it's not
> actually possible to get it working without also making changes to the
> 4 PackageTest files that refer to the new classes.
>
> I can provide a patch for build.xml to exclude the 1.4-only test cases
> if required.
>
> But I'm not sure how the PackageTest errors should be fixed:
> - separate PackageTest for the new classes?
> - dynamic generation of the test cases (e.g. Class.forName())

I initially fixed the build.xml (see attached patch) but then ran into the trouble of the
unit test code not being factored for Java 1.3 vs. 1.4.

I think that either:
- You can rename all Java 1.4 test to *Java14TestCase.
- Create a test suite that includes Java 1.4 test cases.

You can then use Ant exclude/include for 1.3 and 1.4 test targets.

Gary

>
> > But IMO these points
> > should have been raised when we were making that decision and not now
> > at this late stage.
>
> Perhaps these issues were overlooked at the time.
>
> > Niall
> >
> > > Gary
> > >
> > >
> > > >
> > > > > Niall
> > > > >
> > > > > > but at least they have *some* effect.
> > > > > >
> > > > > > Are you saying that Maven2 fails to act on the source and target
JDK
> > > > > > settings at all?
> > > > > >
> > > > > >
> > > > > > On 16/01/2008, Paul Benedict <pbenedict@apache.org> wrote:
> > > > > > > Only Ant can specify the actual target JDK used to compile
the code in
> the
> > > > > > > Manifest. Maven has an open issue for this in the jar plugin.
Alot of
> people
> > > > > > > want to write the target JDK to the manifest, but unfortunately
the
> actual
> > > > > > > JDK version (e.g., 1.6) appears.
> > > > > > >
> > > > > > > Paul
> > > > > > >
> > > > > > > On Jan 16, 2008 8:58 AM, Niall Pemberton
> <niall.pemberton@gmail.com>
> > > > wrote:
> > > > > > >
> > > > > > > > On Jan 16, 2008 2:27 PM, sebb <sebbaz@gmail.com>
wrote:
> > > > > > > > > Found what appear to be some build problems:
> > > > > > > > >
> > > > > > > > > "ant dist" creates a Manifest entry of:
> > > > > > > > >
> > > > > > > > > X-Compile-Target-JDK: 1.1
> > > > > > > > >
> > > > > > > > > whereas the (M2) distribution has:
> > > > > > > > >
> > > > > > > > > X-Compile-Target-JDK: 1.3
> > > > > > > > >
> > > > > > > > > This is probably due to
> > > > > > > > >
> > > > > > > > >  project.properties: maven.compile.target = 1.1
> > > > > > > > >
> > > > > > > > > which affects M1 builds as well.
> > > > > > > >
> > > > > > > > OK but m2 is the primary build system for this release
as long as
> what
> > > > > > > > its generated is OK and the other builds work (even
though with
> > > > > > > > slightly different config) then I don't think this
is an issue. This
> > > > > > > > release supports mainly JDK 1.3 with some JDK 1.4
requirement -
> and by
> > > > > > > > configuring source/target compiler options of 1.3
then we achieve
> that
> > > > > > > > (which is also the same as the last release btw) -
the other build
> > > > > > > > systems specifying 1.1 doesn't AFAIK break that goal.
> > > > > > > >
> > > > > > > > > The Ant Manifest does not include the Bundle
and Import/Export
> > > > > > > > > headers, but that probably does not matter.
> > > > > > > >
> > > > > > > > Agreed, and my answers the same as to the previous
point.
> > > > > > > >
> > > > > > > > > The Maven1 build runs the tests twice - the target
"test:compile"
> > > > > > > > > appears twice in the output (but the second time,
the classes are
> not
> > > > > > > > > recompiled).
> > > > > > > >
> > > > > > > > Yes thats a maven feature!
> > > > > > > >
> > > > > > > > > The Maven2 build seems to download lots of unnecessary
jars, for
> > > > > > > > > example, taking just the commons jars:
> > > > > > > > >
> > > > > > > > > commons-collections-3.0.jar
> > > > > > > > > commons-httpclient-3.0.1.jar
> > > > > > > > > commons-codec-1.2.jar
> > > > > > > > > commons-beanutils-core-1.7.0.jar
> > > > > > > > > commons-logging-1.0.3.jar
> > > > > > > > >
> > > > > > > > > Are these (and all the other jars) really needed
to build Commons
> IO?
> > > > > > > > > I counted 52 jar downloads; there were probably
others that would
> have
> > > > > > > > > been downloaded if I had started with an empty
local repository.
> > > > > > > >
> > > > > > > > Its not what IO needs - its what maven and all the
plugins need to
> run
> > > > > > > > the build. Take for example the Jira report that the
IO build
> produces
> > > > > > > > - maven needs it and all its dependencies (and its
dependencies'
> > > > > > > > dependencies etc etc) to be able to run that report
> > > > > > > > http://tinyurl.com/2hgs8c - from a quick scan I count
10 for that
> > > > > > > > alone and that applies to all the plugins the build
uses. IO itself
> > > > > > > > has one dependency for testing on JUnit and thats
it - no runtime
> > > > > > > > dependencies.
> > > > > > > >
> > > > > > > > > [ERROR] BUILD ERROR
> > > > > > > > > [INFO]
> > > > > > > > ------------------------------------------------------------------------
> > > > > > > > > [INFO] Internal error in the plugin manager executing
goal
> > > > > > > > > 'org.apache.maven.plugins:maven-site-plugin:2.0-beta-5:site':
> Unable
> > > > > > > > > to find the mojo
> > > > > > > > > 'org.apache.maven.plugins:maven-site-plugin:2.0-beta-5:site'
in
> the
> > > > > > > > > plugin 'org.apache.maven.plugins:maven-site-plugin'
> > > > > > > > > Component descriptor cannot be found in the component
> repository:
> > > > > > > > >
> > > > > > > > org.apache.maven.plugin.Mojoorg.apache.maven.plugins:maven-
> site-
> > > > plugin:2.0-beta-5:site
> > > > > > > > .
> > > > > > > >
> > > > > > > > OK I see the version of that plugin in the repo:
> > > > > > > >
> http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-site-
> > > > plugin/
> > > > > > > >
> > > > > > > > So looks like its a local problem to your env. (assuming
you can
> > > > > > > > access the repo). We don't specify a version for that
plugin either in
> > > > > > > > the IO pom.xml or commons-parent (perhaps should)
and I've never
> had
> > > > > > > > any luck downloading and installing them manually,
so I usually just
> > > > > > > > add a dependency temporarily (i.e. specify the plugin
and version)
> and
> > > > > > > > let maven sort it out - perhaps someone else can give
you a better
> > > > > > > > solution though.
> > > > > > > >
> > > > > > > > Niall
> > > > > > > >
> > > > > > > > > This was running:
> > > > > > > > >
> > > > > > > > > mvn clean site assembly:assembly
> > > > > > > > >
> > > > > > > > > using:
> > > > > > > > >
> > > > > > > > > Maven version: 2.0.8
> > > > > > > > > Java version: 1.4.2_16
> > > > > > > > > OS name: "windows xp" version: "5.1" arch: "x86"
Family: "windows"
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > On 16/01/2008, Niall Pemberton <niall.pemberton@gmail.com>
> wrote:
> > > > > > > > > > Sorry in the changes section that should
have read "Fix an error
> in
> > > > > > > > > > the FileWriterWithEncoding JavaDocs" rather
than just "fix an
> error in
> > > > > > > > > > the".
> > > > > > > > > >
> > > > > > > > > > Niall
> > > > > > > > > >
> > > > > > > > > > On Jan 16, 2008 10:51 AM, Niall Pemberton
> > > > <niall.pemberton@gmail.com>
> > > > > > > > wrote:
> > > > > > > > > > > There have been a few changes since
RC1, but since they were
> all
> > > > IMO
> > > > > > > > > > > minor, I've cut a RC2 and thought would
proceed straight to a
> vote.
> > > > > > > > > > >
> > > > > > > > > > > The changes since RC1 are:
> > > > > > > > > > >
> > > > > > > > > > >   - changes to build.xml to keep gump
happy
> > > > > > > > > > >   - fix an error in the
> > > > > > > > > > >   - upgrade to version 7 and commons-parent
(and remove stuff
> from
> > > > > > > > pom
> > > > > > > > > > > thats now in the parent)
> > > > > > > > > > >
> > > > > > > > > > > The artifacts are here:
> > > > > > > > > > > http://people.apache.org/~niallp/io-1.4-
> > > > RC2/<http://people.apache.org/%7Eniallp/io-1.4-RC2/>
> > > > > > > > > > >
> > > > > > > > > > > SVN Tag:
> > > > > > > > > > >
> > > > > > > > http://svn.apache.org/viewvc/commons/proper/io/tags/commons-
> io-1.4-
> > > > RC2/
> > > > > > > > > > >
> > > > > > > > > > > Site:
> > > > > > > > > > > http://people.apache.org/~niallp/io-1.4-
> > > > RC2/site/<http://people.apache.org/%7Eniallp/io-1.4-RC2/site/>
> > > > > > > > > > > (note m2 generates relative links,
so some don't work - but the
> site
> > > > > > > > > > > is for info and not included in the
release artifacts)
> > > > > > > > > > >
> > > > > > > > > > > Release Notes:
> > > > > > > > > > > http://people.apache.org/~niallp/io-1.4-
> > > > RC2/site/upgradeto1_4.html<http://people.apache.org/%7Eniallp/io-1.4-
> > > > RC2/site/upgradeto1_4.html>
> > > > > > > > > > > (These are a copy of RELEASE-NOTES.txt
in html form)
> > > > > > > > > > >
> > > > > > > > > > > RAT Report:
> > > > > > > > > > > http://people.apache.org/~niallp/io-1.4-RC2/site/rat-
> > > > report.html<http://people.apache.org/%7Eniallp/io-1.4-RC2/site/rat-
> > > > report.html>
> > > > > > > > > > >
> > > > > > > > > > > CLIRR Report:
> > > > > > > > > > > http://people.apache.org/~niallp/io-1.4-RC2/site/clirr-
> > > > report.html<http://people.apache.org/%7Eniallp/io-1.4-RC2/site/clirr-
> > > > report.html>
> > > > > > > > > > >
> > > > > > > > > > > RC2 has been built with m2 - but m1
and ant builds are
> available -
> > > > > > > > details here:
> > > > > > > > > > > http://people.apache.org/~niallp/io-1.4-
> > > > RC2/site/building.html<http://people.apache.org/%7Eniallp/io-1.4-
> > > > RC2/site/building.html>
> > > > > > > > > > >
> > > > > > > > > > > Vote is open for 72 hours
> > > > > > > > > > >
> > > > > > > > > > > Thanks in advance for your feedback/votes.
> > > > > > > > > > >
> > > > > > > > > > > Niall
> > > > > > > > > > >
> > > > > > > > -------------------------------------------------------------------------------------
> ------
> > > > ------------------>
> > > > > > > > > > >
> > > > > > > > > > > [  ] +1  I support this release
> > > > > > > > > > > [  ] +0  I am OK with this release
> > > > > > > > > > > [  ] -0   OK, but....
> > > > > > > > > > > [  ] -1   I do not support this release
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > ---------------------------------------------------------------------
> > > > > > > > > > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> > > > > > > > > > For additional commands, e-mail: dev-
> help@commons.apache.org
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > ---------------------------------------------------------------------
> > > > > > > > > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> > > > > > > > > For additional commands, e-mail: dev-help@commons.apache.org
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > > ---------------------------------------------------------------------
> > > > > > > > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> > > > > > > > For additional commands, e-mail: dev-help@commons.apache.org
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > > ---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> > > > > > For additional commands, e-mail: dev-help@commons.apache.org
> > > > > >
> > > > > >
> > > > >
> > > > > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> > > > > For additional commands, e-mail: dev-help@commons.apache.org
> > > > >
> > > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> > > > For additional commands, e-mail: dev-help@commons.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> > > For additional commands, e-mail: dev-help@commons.apache.org
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> > For additional commands, e-mail: dev-help@commons.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message