

Ruby will no longer ship with a testing library - steveklabnik
https://bugs.ruby-lang.org/issues/9711

======
dragonwriter
The current thread title here ("Ruby will no longer ship with a testing
library") is neither the original title nor the conclusion of the discussion
in that bug.

Basically, as I understand it, the current test-unit and minitest libraries in
Ruby's stdlib are testing dependencies for Ruby, but are completely different
from (in the case of "test-unit") or older, incompatible versions of (in the
case of minitest) the libraries under the same names released as gems. As a
result, there is a decision to stop shipping them in stdlib, and make them
part of ruby-core's test suite separate from stdlib.

It looks like there is also a decision of what to do to provide a testing
library in the standard distribution -- it looks like the discussion centers
on replacing both of the libraries with current ones, but with a preference to
do it as standard gems (along with potentially replacing the other stdlib
libraries with the corresponding gems as part of the standard Ruby
distribution.) The exact resolution of this seems to have been directed to a
developers meeting and will likely be separate from the ticket.

So, it does not seem that the decision is not to ship a testing library with
Ruby, just to stop shipping _outdated_ testing libraries with Ruby.

~~~
steveklabnik
I didn't read that conclusion as surely as you seem to. The commit removing
minitest entirely has already landed, and while it may be added back in in
some capacity, I don't think it's certain.

FWIW I took the title from this tweet by Ruby Core member zzak:
[https://twitter.com/_zzak/status/469953823122157568](https://twitter.com/_zzak/status/469953823122157568)

~~~
dragonwriter
> I didn't read that conclusion as surely as you seem to.

Huh? AFAICT, you are the one positing that there is a sure conclusion: "Ruby
will no longer ship with a testing library".

The decision _in_ the thread is to move the older versions ruby-core depends
on itself out of stdlib into test, with the decisions on what to do in stdlib
left to the stdlib library maintainers. The minitest maintainer made a
detailed recommendation which, if done in full, would have broader impact on
the distribution (distributing libraries in stdlib that are also gems as gems
with the standard distibution) which has been deferred to another venue. The
only sure thing is _not_ shipping the old libraries -- not shipping _any_ test
library is neither certain, nor, AFAICT, _anyone 's_ preferred resolution (but
resolving what to in stdlib seems likely to be outside of the scope fo the
referenced bug.)

~~~
steveklabnik
The current decision is "we're not shipping a testing library". A solution to
the problems with shipping one may be found (the need for Ruby to test itself
with a certain version, but ship another to users, but they'd clobber each
other), and that may change back, but unless that happens, minitest is gone.

~~~
dragonwriter
> The current decision is "we're not shipping a testing library".

No, its "we're not shipping either of the current testing libraries".

Its true that a _consequence_ of that decision, if the identified followup
tasks _don 't_ come with some other resolution that is ready before Ruby 2.2
is frozen, would be that Ruby wouldn't ship with the testing library, but it
is clearly _not_ a decision anyone involved has made at this time that any
version of Ruby should will or should ship without a testing library.

At most, you could fairly characterize the decision to remove the existing
libraries from stdlib without resolviing the question as a decision to accept
the _risk_ that Ruby might end up shipping without a testing library, but even
that is very different than a decision not ship a testing library.

