ruby / spec

The Ruby Spec Suite aka ruby/spec
MIT License
600 stars 389 forks source link

Please consider changing the project's name #182

Closed jc00ke closed 8 years ago

jc00ke commented 8 years ago

One year ago the canonical RubySpec project was retired. It was suggested to @matz by me in a private email discussion that the name be changed from RubySpec to something else. I thought this was a good idea because the name RubySpec carried a bit of baggage, and changing the name would also respect the original author's wishes for its retirement.

That plea was never addressed, and I never posted to an issue tracker or mailing list. Mea culpa. One year later, the issue of the project's name has come up again. There have been conversations on Twitter about the possibility in changing the name. I'm not going to link to them, but suffice it to say there is support for opening this issue as well as changing the name.

This is a formal request to change the name. I recommend Spec. I think it lives nicely under the namespace ruby/spec and is close enough to the original w/o being too close. I've heard RbSpec thrown out there, which isn't bad. Other options are welcome, but I think it's important at this point to seriously consider a departure from the name RubySpec and let that project be laid to rest in name.

enebo commented 8 years ago

I think it is a great idea to change the name. I have two additional name suggestions which will need permission but I think both are worth looking into:

  1. Rubicon - This is a previous incarnation of what rubyspec essentially replaced but it is long dead and was based on test/unit (and done by different people). It is so long dead I can guarantee no one is using it. We can probably ask permission to use the name.
  2. Rubric - This is actually already a gem but it is someone gem squatting the name (it is essentially an empty gem made last June). We could ask if he would yield the name.
headius commented 8 years ago

I am in favor of a name change. This is obviously a hot potato.

I'm kinda down on the idea of ruby/spec. The tests are rspec-like, true...and they kinda-sorta output a specification, but I never bought into the idea that this actually was a specification. It's a test suite with very nice text output to indicate what's broken. Specifications aren't just lists of features, and they're almost never exhaustive, repetitive lists of the same minor feature over and over with slight differences:

Array#[] with a subclass of Array
- returns a subclass instance with [n, m]
- returns a subclass instance with [-n, m]
- returns a subclass instance with [n..m]
- returns a subclass instance with [n...m]
- returns a subclass instance with [-n..-m]
- returns a subclass instance with [-n...-m]

I like @enebo's suggestions. Rubicon is a great name...it means a boundary or line that, when crossed, represents a decisive, irrevocable step. Crossing the Rubicon for a Ruby implementation would be passing the test suite.

headius commented 8 years ago

Rubric is also a good name...meaning a set of rules, or an authoritative rule. I still like Rubicon better. YOU MUST PASS THE RUBICON.

elia commented 8 years ago

Funny thing, my imagination sees the crossing of the Rubicon as something negative, likely when the specs a red. …ok, checked wikipedia, here's why:

The phrase "crossing the Rubicon" has survived to refer to any individual or group committing itself irrevocably to a risky or revolutionary course of action, similar to the modern phrase "passing the point of no return".

https://en.wikipedia.org/wiki/Rubicon#Julius_Caesar

Said that I have no problem with either name (but I must confess that I like how ruby/spec sounds and looks).

headius commented 8 years ago

@elia I read through that section just now, thanks for the link! It says crossing the Rubicon is "risky or revolutionary" which isn't necessarily negative. And for Caesar, it was a good decision...this was the beginning of the end for the Roman Senate and he went on to win his war and bring about the end of the Roman Republic (in favor of the Roman Empire).

Of course, killing a republic to make it into an empire isn't exactly positive, so perhaps that's why it seems negative to you :-)

I'd also say that passing the Rubicon suite (our Crossing the Rubicon) is pretty revolutionary...and it indicates we've committed to a risky endeavor: attempting to make a Ruby implementation.

drbrain commented 8 years ago

There is another Ruby test suite called Rubicon which was started by Dave Thomas…

headius commented 8 years ago

@drbrain Indeed, but it has been dead for a long time. We removed it from JRuby when it became apparent that it did not cover any more than the remaining suites (JRuby's, MRI's, RubySpec).

I'm not sure it even has a repository out there anymore, and I'm pretty sure Dave would let us use the name.

headius commented 8 years ago

This page is still out there, but all links -- including RubyForge itself -- appear to be dead: http://rubytests.rubyforge.org/

This is the only place Rubicon existed, as far as I know.

elia commented 8 years ago

@headius hahaha, I like this interpretation! :game_die: alea iacta est?

ghost commented 8 years ago

Tempted to just toss Gandalf out there as a tongue-in-cheek test suite name.

Otherwise my vote goes down for Rubicon or ruby/spec.

vais commented 8 years ago

IDK, Rubicon is cute and all, but I'd rather see ruby/spec, as in: it's nothing "special", it's just Ruby's official spec suite ¯(ツ)

vais commented 8 years ago

Also, I'd hate to see "politics" flare up again around RubySpec - I feel like it finally enjoyed a period of productive tranquility.

vais commented 8 years ago

https://github.com/hminaya/rubyspec.github.io/commit/deaeed873a286ae9dca308531467cca3c7d7e906

headius commented 8 years ago

For those in favor of ruby/spec...what's the actual name in that case?

I read it as Ruby Spec... which is the name we're trying to replace.

Ruby's Spec? As opposed to the ISO specification?

Ruby Slash Spec? Really?

Spec? Seems way too generic. "JRuby runs spec". Really?

The repository probably should move to ruby/spec but I'm not actually hearing any name suggestions.

headius commented 8 years ago

FWIW, this is the problem with someone strongarming a very generic name. RubySpec is hard to replace because it's the simplest and most logical name for a spec-based suite of tests for Ruby.

jc00ke commented 8 years ago

How about "the specs" I'm not sure this project really needs some clever name. They are Ruby's specs, not RubySpec (anymore)

@headius are you saying someone is "strongarming"? I'd caution you to watch the words you pick. Let's keep it civil. selection_004

headius commented 8 years ago

@jc00ke Well, it occurred to me...how does using the name "RubySpec" hurt someone? What's the actual gain in changing it other than someone wants us to change it?

I'm being totally civil...but it does feel a bit like a strongarm to me. We can't use the name because...why? Because it's trademarked? No. Because it's specific to a different project? No...it was abandoned, and this is the code that was in the original project. So why?

FWIW, I'm fine with changing it, but I finally realized that we're changing solely because someone doesn't like us using it. No legal reason, no disambiguation reason. It's the specs that used to be RubySpec, now called RubySpec.

headius commented 8 years ago

Also, you're right...strongarm is probably the wrong word, since no force other than a request has been used. I'm not sure what to call it. @brixen doesn't want us to use the name...but why?

jc00ke commented 8 years ago

@headius I view it as respecting someone's wishes, someone who put in a ton of work and then decided not to give the project away, but to retire it. I choose to respect @brixen's wishes. You may not, and that's your choice. I think the easiest thing to do here, and the right thing to do, is rename it.

It's less about asking "why" and more about just doing it and moving on. It's not worth debating why, it's worth changing it and getting back to writing code.

headius commented 8 years ago

I choose to respect @brixen's wishes. You may not, and that's your choice.

We're keeping this civil, right? I never said I didn't support changing the name. I'm asking why it's necessary. Please don't put words in my mouth.

It's less about asking "why" and more about just doing it and moving on.

I like to ask "why". Everything that we do is worth asking "why".

jc00ke commented 8 years ago

You may, or you may not, I don't know, hence my statement. I didn't mean to imply you don't, I meant you may or may not (I don't know your specific position) I didn't mean it as a dig. You clearly do support changing the name, I've seen that on Twitter and here.

I don't think asking "why" helps here. If it is indeed academic, then it has little value to the community. IMO it's best to agree on a name, change the name, and move on. We're not gaining anything by debating "why".

matz commented 8 years ago

I don't understand. Does @brixen himself want to change the name? Or @jc00ke guesses? If he really wants, I am for changing the name, of course.

jc00ke commented 8 years ago

@matz selection_005

matz commented 8 years ago

OK, that's what I wanted. Let's change the name.

jc00ke commented 8 years ago

@headius I apologize for my use of "may not" above.

headius commented 8 years ago

The trend seems to be toward a repository of ruby/spec and a name of "Ruby's Specs". If everyone likes that I'm fine with it.

jc00ke commented 8 years ago

Ruby's specs, the specs, the spec suite... I think not having a name and just referring to it would work as well.

vais commented 8 years ago

@headius I see what you mean - it must have some kind of name if it is to be a stand-alone repo on GitHub. Pardon my ignorance, but are repos on GitHub name-spaced to the organization? I.e. https://github.com/ruby/spec is available obviously, but https://github.com/spec is not, and, of course, makes no sense.

eregon commented 8 years ago

@matz Any opinion on the name? I want something that clearly avoids the confusion of this project being a "specification of the Ruby language". I would describe it as a common test suite for the Ruby programming language (which happens to be written in "spec" style).

I sort of like "Ruby spec suite" but not sure how to make that space-less.

brixen commented 8 years ago

I'm not "strong-arming" anyone about the name. I created the RubySpec project with a specific vision and philosophy, and wrote tens of thousands of lines of specs. I was writing "an executable specification of the Ruby programming language". That is text that, to this day, is retained in the README (and without attribution anywhere that I see).

The https://github.com/ruby/rubyspec is a hostile fork of a project based on members of the Ruby community disagreeing with the principles I established for RubySpec. I did not give permission to use the name, and continuing to use the name for something that doesn't respect the vision and principles that I established is not being civil.

When I retired RubySpec as a project because Ruby wasn't using it, there were many people loudly claiming that Ruby's "test suite" was fine. People have continued claiming that the "specs" are not a specification, but rather just "tests". Now Ruby has "tests" and "specs", whatever the latter are (except they are not "specifications" apparently). To me, that's just confusing for everyone. Why do some people write "specs"? Why do other people write "tests"? When should a contributor write one or the other?

If they are tests, then call them tests; "the Ruby tests". Problem solved. Now the real problem to solve is why there are two separate sets of things that are both some sort of "tests". That's the problem people should be trying to solve.

enebo commented 8 years ago

So looks like everyone is ok with the name change and we just got a concrete answer to the "why". Seems like it is now just a matter of the new name.

headius commented 8 years ago

I've come around on ruby/spec as the repository and referring to them as "Ruby's Spec Suite" or "The Spec Suite". Every project in the Ruby world that has rspec specs uses a /spec dir, so that seems to fit well. And if ruby-core ever decides to have these specs copied into ruby/ruby for CI runs, it will be /spec there too I imagine.

Any other thoughts?

vais commented 8 years ago

@headius :+1:

eregon commented 8 years ago

OK, let's settle on ruby/spec! Thanks for all your comments and name suggestions! It's fairly obvious from the current name, it sorts of "DRY" it and existing forks will have a decent root repo name.

jc00ke commented 8 years ago

Thank you everyone, I'm glad we could come to an agreement on this as quickly as we did.