Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Let's talk the next release #486

Closed
adelbertc opened this issue Aug 26, 2015 · 13 comments
Closed

Let's talk the next release #486

adelbertc opened this issue Aug 26, 2015 · 13 comments

Comments

@adelbertc
Copy link
Contributor

Hey all,

So we've got a 0.1.2 out (that I've been playing with at $JOB), and since then we've got a bunch of new goodies (apologies if I missed some stuff):

  • MonadError type class
  • Kleisli Monoid instance
  • Eval
  • Moving std into core
  • Xor(T) recover(With)
  • Kleisli local
  • NaturalTransformation combinators
  • Overhaul/changes to Free stuff
  • Prod for functor products
  • Streaming, StreamingT, and Applicative#pointEval (soon)

Also I think @stew has a Task-y (I think he's calling it Comp) thing in the works.

When do we want to cut our next release, and what version do we want to cut it as? At the post-SBTB'15 hangout people seemed to be confident at Cats stability but a bit wary of the newer things like Eval, and suggested cutting a 0.9.x to indicate a "close to 1.0".

Discuss!

@travisbrown
Copy link
Contributor

I'd vote for an 0.2.0 release sooner rather than later, and I think it's a little early to jump ahead to indicate stability. I'd rather leave lots of space to get things right and count on sufficiently brave folks to try it out in the meantime anyway.

@ngbinh
Copy link
Contributor

ngbinh commented Aug 27, 2015

how's about scala.js artifacts?

@non
Copy link
Contributor

non commented Aug 27, 2015

Agreed. I want to cut a 0.2.0 release ASAP. Assuming publishing is working (seems like 2.10 published but I'm having bad Travis-luck with 2.11) people can try snapshots, but a lot has been added since 0.1.2 and it would be nice to create a new stable point of reference.

From my perspective, here is a list of minimum requirements for an 0.9.0 release (we are on the way to meeting many of these, but I don't think we are done with any of them):

  • We have a web page with reasonable layout, organization
  • Every type in cats.data has a solid tutorial with description, motivation, and examples
  • Every type class has comments and/or a section in the type classes documentation
  • Our consistency robots have scoured our APIs for consistent naming/shape/usage.
  • We have a few "worked examples" of complete programs built using Cats.
  • Simulacrum/Imp/Machinist macro interactions have been figured out/standardized.
  • Either we have some kind of Task-esque type, or we explicitly agree to release without one.
  • We have a few "early adopter" reports indicating that things seem OK.
  • We get a broad consensus that the level of modularity is OK.

The reason I am being a bit of a stickler here is that I am very wary of committing to source/binary compatibility with an immature API. Fixing naming problems, inefficiencies, confusion, or API bugs in these early versions will be almost trivial, whereas in 1.0.x it will be a major headache and require deprecation cycles, announcements, porting, etc. So I want to be relatively sure about names/modules/operators/syntax/etc before we release 0.9.x (and 1.0.x).

@non
Copy link
Contributor

non commented Aug 27, 2015

(In case it wasn't clear, 0.9.x still permits breaks in source/binary compatibility, but it will send a signal that we are "mostly" committed to the layout, so it will be a lot more painful to make major changes even at that point.)

@non
Copy link
Contributor

non commented Aug 27, 2015

If most other Cats maintainers want to see 0.9.0 sooner than this, I'm definitely willing to relax things a bit. It may be that I value reserving the right to break things too highly! 🐱

@adelbertc
Copy link
Contributor Author

I agree with that list, esp. the documentation bits. Having solid documentation will make Cats stand out and encourage others to take a closer look and get involved.

Also I definitely want to see a Task-y thing before we cut a 1.0 :D

That being said, I'd also like a 0.2.x release soon to get some of the new goodies that have been merged (hint: the Free bits :D)

@fthomas
Copy link
Member

fthomas commented Aug 27, 2015

👍 for 0.2.0 now and 0.9.0 later.

@milessabin
Copy link
Member

👍 for a 0.2.0 ASAP.

@ghost
Copy link

ghost commented Aug 27, 2015

We have a web page with reasonable layout, organization

For that, I think we should all gang up on @ochrons for help, currently helping @sjrd revamp the scalajs site 😉

@ngbinh
Copy link
Contributor

ngbinh commented Aug 27, 2015

@inthenow thanks!

@travisbrown
Copy link
Contributor

This can be closed now (by #503), no?

@ceedubs
Copy link
Contributor

ceedubs commented Nov 10, 2015

@travisbrown agreed. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants