On Mon, Feb 25, 2019 at 11:35 AM Mark Thomas <ma...@apache.org> wrote:
>
> On 23/02/2019 06:18, Willem Jiang wrote:
> > Hi,
> >
> > I just have a question about the Binary jars in the source release.
> > According the Apache release policy, I cannot find any rule about the
> > binary jars cannot be in the source release[1]. If we just have jars
> > for testing purposes and those jar won't be a part of convenience
> > binary release, I think it doesn't break the rule below:
> >
> > "In all such cases, the binary/bytecode package must have the same
> > version number as the source release and may only add binary/bytecode
> > files that are the result of compiling that version of the source code
> > release.".
> >
> > Is it OK to ship those test binary jars in the source release kit?
>
> It depends ;)
>
> Generally, source releases should contain exactly that - source code. So
> the aim should always be to not include compiled code - like JARs - in a
> source release.
>
> That said, I have always been a little more relaxed about test code.
> Sometimes you need to use class files and/or JARs in your testing. The
> minimum - in my view - is that:
> - it MUST be possible to produce a fully working binary from the source
>   distribution

Big +1 to the above.

> - the source for any compiled files included in the source MUST be
>   provided alongside the compiled files

Is this really a MUST in all situations? Sometimes a JAR file truly is a test
artifact (like for negative testcases for example) and it may not even be
possible to "compile it" -- its purpose in fact, may be to test something like
a classloader for tripping up on "incorrect" JARs, etc.

Or did I misunderstand your MUST?

Thanks,
Roman.

> Ideally, class files, JAR files etc. would be constructed as required
> when the tests are run. However, there are cases when it makes sense to
> include the binary - e.g. the file needs to be compiled with a very
> specific version of the compiler because it is testing something that
> depends on a specific behaviour of that compiler version. It is arguably
> better for users to provide the compiled file rather than requiring them
> to obtain the specific compiler version required.
>
> For the record, Apache Tomcat has a small number of JAR and class files
> in its source distribution. All related to testing and the source is
> there for all of them. We could probably generate some of those at build
> time. But, given the very small number of files concerned and the
> complexity it adds to the build process, it isn't an itch any of the
> community has felt the need to scratch. Yet.
>
> I also recall an instance - I think in Apache Commons BCEL - where we
> needed to test with a faulty class file. From memory, we shipped the
> class file in the source along with instructions on how to recreate it.
> I don't recall exactly why but creating it at build time was problematic.
>
> In summary, I think you are fine as long as you meet the MUSTs I listed
> above. Whether the project should look to generate those files at
> build/testing time depends on circumstances. In most cases I would
> expect them to be generated during building/testing but there can be
> valid reasons for not doing so.
>
> Mark
>
>
>
>
> >
> > [1]http://www.apache.org/legal/release-policy.html#what
> >
> > Willem Jiang
> >
> > Twitter: willemjiang
> > Weibo: 姜宁willem
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
> > For additional commands, e-mail: general-h...@incubator.apache.org
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
> For additional commands, e-mail: general-h...@incubator.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
For additional commands, e-mail: general-h...@incubator.apache.org

Reply via email to