[racket-dev] should package "X" imply package "X-test"?

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Wed Oct 16 09:11:29 EDT 2013

I have no strong opinion, either, but...

In most software projects, `make test` is something that you can do
with the sources, but not with an installation. I think we agree that
the tests for package "X" should be in the same repository as "X-lib",
"X-doc", etc., but I don't think there's much precedent for including
tests in the main distribution.

>From the perspective of avoiding dependencies, I think there is value
in leaving things out of "X" (i.e., "X" as a typical user of the
library would want to install it), even when "X-lib" and other packages
are available. For example, the "main-distribution" package includes
"X" for various "X"s --- not "X-lib" plus "X-doc" plus .... It makes
more sense to me to put the decision of what is normally included as
"X" with "X" itself, instead of with each package that defines a
distribution.

At Wed, 16 Oct 2013 06:55:21 -0500, Robby Findler wrote:
> It seems like a common thing to have a "make test" that comes with various
> software packages out the "in the wild". Judging from the traffic on the
> gambit list, their version seems to get used, too. I'm not sure if you'd
> classify gambit's 'make test' as something that would be in the test
> package, tho. A conscientious user might run the test suite (if it were
> written by a conscientious owner who made it easily push-button) before
> submitting a bug report just to see if there were something interesting to
> report along with the bug report.
> 
> I guess I still don't actually have a strong opinion, but if we don't go
> this direction, it would be nice to have a positive rationale for why we
> suggest leaving this particular piece out of "X". I can clearly see a
> strong reason to leave parts out of "X-lib" for minimizing dependencies,
> but that ship has sailed if we are including "X-doc" in "X".
> 
> Robby
> 
> 
> On Tue, Oct 15, 2013 at 11:00 PM, Neil Toronto <neil.toronto at gmail.com>wrote:
> 
> > On 10/15/2013 06:40 PM, Robby Findler wrote:
> >
> >> Actually, on second thought, I think I'm going to buck the trend here
> >> and answer "yes" to the question in the subject line.
> >>
> >> Two scenarios come to mind: someone hears about some cool new library
> >> and then does something like 'raco pkg install math'. Next thing,
> >> something goes wrong and they ask about it on a mailing list and get the
> >> response "Run this code: (require ...)" which ends up running something
> >> from the test suite of that library [1]. In that case, we'd probably
> >> like them to have everything related to the library.
> >>
> >> Second: someone decides to build a library that depends on the, say, the
> >> math library and they have to choose what to put in their info.rkt file.
> >> They don't want to put math no matter if it includes the tests or not,
> >> since they don't to force their clients to install the docs. So they'll
> >> put math-lib.
> >>
> >> In other words, I don't see a lot of value in a pkg name taken up for
> >> the lib+docs subset of some (conceptual) pile of code, but I do see
> >> value in the "everything" pile and the "non-docs non-tests" pile. So I'd
> >> say that the name "X" (from the subject) should mean everything.
> >>
> >> ... at least for a library. For an app, I'm less clear.
> >>
> >> Robby
> >>
> >>
> >> [1] this actually happened recently as you probably recall (altho
> >> 'test-floating-point' may not be in the math-test pkg)
> >>
> >> 
> http://lists.racket-lang.org/**users/archive/2013-October/**059881.html<http://
> lists.racket-lang.org/users/archive/2013-October/059881.html>
> >>
> >
> > Right. It's in "math-lib" (the `math/utils' module) because it's useful
> > outside of automated testing. Users can run it to find out how reliable and
> > repeatable their floating-point results are on a given system.
> >
> > The rest of the math library tests are more or less system-agnostic.
> > (There's a custodian shutdown test for unloading `math/bigfloat' that I
> > think may be good to test on multiple platforms, but that's more of an
> > automation thing.) I can't imagine asking a user to run them, and if I did,
> > I wouldn't mind asking them to install an extra package first.
> >
> > Are there any other circumstances, besides a package owner asking, that a
> > user would want to run all the tests for a package?
> >
> > Neil ⊥
> >
> >
> > _________________________
> >  Racket Developers list:
> >  http://lists.racket-lang.org/**dev <http://lists.racket-lang.org/dev>
> >
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev


Posted on the dev mailing list.