Skip to content

Prepare for the 1.0.0-MF release#1702

Merged
kailuowang merged 10 commits into
typelevel:masterfrom
kailuowang:prepare1.0.0MF
Aug 3, 2017
Merged

Prepare for the 1.0.0-MF release#1702
kailuowang merged 10 commits into
typelevel:masterfrom
kailuowang:prepare1.0.0MF

Conversation

@kailuowang
Copy link
Copy Markdown
Contributor

@kailuowang kailuowang commented May 25, 2017

Update:

The process started July 27 and last for a couple of days, mainly due to the coordination needed between cats and cats-mtl). Here are the steps:


As mentioned in the description, 1.0.0-MF is a draft for the final API of cats 1.0. Our user community will have the next couple of months to validate this draft and propose changes.

The merged changes are included in the CHANGES.md. Let's talk about the outstanding items.

Here are the outstanding PRs scheduled for 1.0.0-MF

Maintainers, if you have time, please help review, we can push them over the finish line.

Here are the outstanding issues scheduled for 1.0.0-MF

The ones with "?" are the ones that I'm uncertain if they should or can go into 1.0.0-MF. Also obviously, these aren't the complete set of outstanding issues and PRs. It was mostly just me scheduling them based on their impacts and my personal taste. So please chime in if you see anything you would like to go in 1.0.0-MF but not in this list. I would prioritize API changes over others, since this release is a draft for the final API for cats 1.0.

Let the party begins.

UPDATEs:

@kailuowang kailuowang added this to the 1.0.0-MF milestone May 25, 2017
@kailuowang
Copy link
Copy Markdown
Contributor Author

kailuowang commented May 25, 2017

Also we have 14 19 new first-time contributors! 💯

update: 5 more first-time contributors

@codecov-io
Copy link
Copy Markdown

codecov-io commented May 28, 2017

Codecov Report

Merging #1702 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #1702   +/-   ##
=======================================
  Coverage   94.87%   94.87%           
=======================================
  Files         241      241           
  Lines        4139     4139           
  Branches      103      103           
=======================================
  Hits         3927     3927           
  Misses        212      212

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 784aa10...55ffbf4. Read the comment docs.

@i-am-the-slime
Copy link
Copy Markdown
Contributor

I was going to wish for a way to do MTL style but that's supposed to be removed instead? I guess it requires a better typeclass encoding?

@LukaJCB
Copy link
Copy Markdown
Member

LukaJCB commented May 30, 2017

@i-am-the-slime It's going to be its own separate module, cats-mtl. I think you can find it here. Check issues #1616 and #1210 :)

@andyscott
Copy link
Copy Markdown
Contributor

I will finish the PR for #1600 this week.

Comment thread CHANGES.md Outdated

To migrate from 0.9.0

* `cats.free.Inject` is moved from `cats.free` to `cats.core` and renamed to `cats.InjectK`;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this implies moving to a cats.core package-- maybe use cats-core and cats-free to refer to modules?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks! corrected.

Comment thread CHANGES.md Outdated
instead. The easiest way might be this [sbt-plugin](https://github.com/fiadliel/sbt-partial-unification).
* The creation methods (`left`, `right`, `apply`, `pure`, etc.) in `EitherT` is improved to take less
type arguments.
* Several `cats.core` type class instances for `cats.kernel` were moved from their compainion objects to separate traits
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

similar to above, this implies a cats.core package

Comment thread CHANGES.md Outdated

* `cats` no longer publish the all included bundle package `"org.typelevel" % "cats"`, use `cats-core`, `cats-free`, or `cats-law`
accordingly instead. If you need `cats.free`, use `"org.typelevel" % "cats-free"`, if you need `cats-law` use
`"org.typelevel" % "cats-law"`, if neither, use `"org.typelevel" % "cats-core"`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is cats-laws rather than cats-law?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right, thanks for the review.

Comment thread README.md Outdated
```

This will pull in all of Cats' modules. If you only require some
This will pull in the cats-core module. If you require some other functionlaity
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"functionality"

Comment thread CHANGES.md Outdated
To migrate from 0.9.0
### To migrate from 0.9.0

Appology for the number of breaking changes in this release. We are trying to include
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Apology"

Comment thread README.md Outdated
#### Generic libraries to support pure functional programming

* [Circe](https://github.com/circe/circe): pure functional JSON library.
* [cats-effects](https://github.com/typelevel/cats-effect): provide a standard `IO` type for the cats ecosystem
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Project name is cats-effect (singular).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, this project doesn't provide just IO, but also the Sync, Async and Effect type classes, which I think are important, since this is an innovation.

Comment thread README.md Outdated

* [Circe](https://github.com/circe/circe): pure functional JSON library.
* [cats-effects](https://github.com/typelevel/cats-effect): provide a standard `IO` type for the cats ecosystem
* [cats-mtl](https://github.com/typelevel/cats-mtl): ??????
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cats-effect and cats-mtl deserve their own category imo, as they are sub-modules of Cats, just like cats-kernel, but with a different release cycle.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In fact alleycats and mouse probably fall into that category as well. But I am not sure how to name this category though. These projects all have different set of maintainers and thus are more independent from each other than just submodules of cats with different release cycle.

Comment thread docs/src/main/tut/index.md Outdated
## <a name="getting-started" href="#getting-started"></a>Getting Started


Cats is currently available for Scala 2.10, 2.11 and 2.12.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A mention that Cats supports Scala.js would be nice

Copy link
Copy Markdown
Contributor

@edmundnoble edmundnoble left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wonderful work, sorry for all the nitpicks :)

Comment thread CHANGES.md Outdated

### To migrate from 0.9.0

Apology for the number of breaking changes in this release. We are trying to include
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend "we apologize".

Comment thread CHANGES.md Outdated
### To migrate from 0.9.0

Apology for the number of breaking changes in this release. We are trying to include
as many breaking changes in this release before we lock down the API.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend "as many breaking changes in this release as possible".

Comment thread CHANGES.md Outdated
Apology for the number of breaking changes in this release. We are trying to include
as many breaking changes in this release before we lock down the API.

* `cats` no longer publish the all inclusive bundle package `"org.typelevel" % "cats"`, use `cats-core`, `cats-free`, or `cats-law`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"all-inclusive" here.

Comment thread CHANGES.md Outdated
instead. The easiest way might be this [sbt-plugin](https://github.com/fiadliel/sbt-partial-unification).
* `FunctorFilter`, `MonadCombine`, `MonadFilter`, `MonadReader`, `MonadState`, `MonadTrans`, `MonadWriter` and `TraverseFilter` are no longer in `cats`, the functionalities they provided are inhereted by the new [cats-mtl](https://github.com/edmundnoble/cats-mtl) project. Please check [here](https://github.com/edmundnoble/cats-mtl#migration-guide) for migration guide.
* `CartesianBuilder` (i.e. `|@|`) syntax is deprecated, use the apply syntanx on tuples instead. E.g. `(x |@| y |@| z).map(...)` should be replaced by `(x, y, z).mapN(...)`
* The creation methods (`left`, `right`, `apply`, `pure`, etc.) in `EitherT` is improved to take less
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"were improved"

Comment thread CHANGES.md Outdated
* `foldLeftM` is removed from `Free`, use `foldM` on `Foldable` instead, see #1117 for detail.
* `iteratorFoldM` was removed from `Foldable` due to #1716
* Apply syntax on tuple (e.g. `(x, y, z).map3(...)`) was moved from `cats.syntax.tuple._` to `cats.syntax.apply._` and renamed to `mapN`, `contramapN` and `imapN` respectively.
* `Split` is removed, the method `split` is moved to `Arrow`. Note that only under `CommutativeArrow` does it guarantee the non-interference between the effects. see #1567
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd add an and here after the comma.

Comment thread docs/src/main/tut/index.md Outdated

* [`cats-effect`](https://github.com/typelevel/cats-effect): `IO`, `Sync`, `Async` and `Effect` type classes for the cats ecosystem
* [`cats-mtl`](https://github.com/edmundnoble/cats-mtl): transformer typeclasses for cats' Monads, Applicatives and Functors.
* [`alleycats`](https://github.com/non/alleycats): Cats instances and classes which are outlaws, miscreants, and ne'er-do-wells.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can be a bit more descriptive here. Perhaps "cats instances and classes which are not lawful"?

Comment thread CHANGES.md Outdated
enabled syntax ops are also removed. Please use the partial unification SI-2712 fix
instead. The easiest way might be this [sbt-plugin](https://github.com/fiadliel/sbt-partial-unification).
* `FunctorFilter`, `MonadCombine`, `MonadFilter`, `MonadReader`, `MonadState`, `MonadTrans`, `MonadWriter` and `TraverseFilter` are no longer in `cats`, the functionalities they provided are inhereted by the new [cats-mtl](https://github.com/edmundnoble/cats-mtl) project. Please check [here](https://github.com/edmundnoble/cats-mtl#migration-guide) for migration guide.
* `CartesianBuilder` (i.e. `|@|`) syntax is deprecated, use the apply syntanx on tuples instead. E.g. `(x |@| y |@| z).map(...)` should be replaced by `(x, y, z).mapN(...)`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"syntanx" -> "syntax"

Comment thread CHANGES.md Outdated
* `CartesianBuilder` (i.e. `|@|`) syntax is deprecated, use the apply syntanx on tuples instead. E.g. `(x |@| y |@| z).map(...)` should be replaced by `(x, y, z).mapN(...)`
* The creation methods (`left`, `right`, `apply`, `pure`, etc.) in `EitherT` is improved to take less
type arguments.
* Several `cats-core` type class instances for `cats.kernel` were moved from their compainion objects to separate traits
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"compainion" -> "companion"

Comment thread CHANGES.md Outdated
* [#1691](https://github.com/typelevel/cats/pull/1691): Build JVM before JS on travis. by @peterneyens
* [#1677](https://github.com/typelevel/cats/pull/1677): Update readme with the new dev channel.. by @kailuowang
* [#1673](https://github.com/typelevel/cats/pull/1673): Use 2 workers in JVM build. by @ceedubs
* [#1671](https://github.com/typelevel/cats/pull/1671): Fixing `Eq[Function1]` in testsJS; break JS build to separate matrix build.. by @kailuowang
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are 2 "."-s

Comment thread CHANGES.md Outdated
* [#1591](https://github.com/typelevel/cats/pull/1591): Improve test coverage. by @peterneyens
* [#1590](https://github.com/typelevel/cats/pull/1590): Check monad laws for `Cokleisli`. by @peterneyens
* [#1588](https://github.com/typelevel/cats/pull/1588): Docs/Tutorial -- Simplify `Kleisli` example. by @RawToast
* [#1581](https://github.com/typelevel/cats/pull/1581): restore the alphabetical order of maintainers list.. by @kailuowang
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 "."-s

Comment thread CHANGES.md Outdated
* [#1566](https://github.com/typelevel/cats/pull/1566): Fix mistake in documentation of `Group.remove`. by @LukaJCB
* [#1563](https://github.com/typelevel/cats/pull/1563): Remove references of the NEL `OneAnd` alias. by @peterneyens
* [#1561](https://github.com/typelevel/cats/pull/1561): Fix incorrect numbering in `FreeMonads` doc. by @cb372
* [#1555](https://github.com/typelevel/cats/pull/1555): by fix scala.js badge version @xuwei-k
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move "by" to the end.

@kailuowang
Copy link
Copy Markdown
Contributor Author

@edmundnoble and @durban thanks so much for the review. feedback addressed.

Comment thread CHANGES.md Outdated
We apologize for the number of breaking changes in this release. We are trying to include
as many breaking changes as possible in this release before we lock down the API.

* `cats` no longer publish the all-inclusive bundle package `"org.typelevel" % "cats"`, use `cats-core`, `cats-free`, or `cats-law`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it be "publishes" ?

Comment thread CHANGES.md Outdated
* `traverse1_`, `intercalate1` and `sequence1_` in `Reducible` were renamed to `nonEmptyTraverse_`, `nonEmptyIntercalate` and `nonEmptySequence_` respectively.
* `foldLeftM` is removed from `Free`, use `foldM` on `Foldable` instead, see #1117 for detail.
* `iteratorFoldM` was removed from `Foldable` due to #1716
* Apply syntax on tuple (e.g. `(x, y, z).map3(...)`) was moved from `cats.syntax.tuple._` to `cats.syntax.apply._` and renamed to `mapN`, `contramapN` and `imapN` respectively.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we move this up to after the related CartesianBuilder deprecation bullet?

Comment thread CHANGES.md Outdated
* [#1707](https://github.com/typelevel/cats/pull/1707): Add NEL/NEV one. by @peterneyens
* [#1680](https://github.com/typelevel/cats/pull/1680): ~~`MonadTrans` instance for RWST and make `MonadTrans` serializable.~~ by @wedens
* [#1658](https://github.com/typelevel/cats/pull/1658): Add `Validated.validNel`. by @edmundnoble
* [#1651](https://github.com/typelevel/cats/pull/1651): Add state method to `MonadState`. by @oskoi
Copy link
Copy Markdown
Contributor

@peterneyens peterneyens Aug 3, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we "strike trough" this as well, like the MonadTrans improvements bullet above?

@kailuowang
Copy link
Copy Markdown
Contributor Author

merging per gitter discussion

@kailuowang kailuowang merged commit 09c9077 into typelevel:master Aug 3, 2017
@kailuowang kailuowang deleted the prepare1.0.0MF branch August 3, 2017 18:35
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

Successfully merging this pull request may close these issues.

10 participants