-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Prepare for the 1.0.0-MF release #1702
Conversation
Also we have update: 5 more first-time contributors |
Codecov Report
@@ 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.
|
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? |
@i-am-the-slime It's going to be its own separate module, |
I will finish the PR for #1600 this week. |
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`; |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks! corrected.
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 |
There was a problem hiding this comment.
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
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"`. |
There was a problem hiding this comment.
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
?
There was a problem hiding this comment.
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.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"functionality"
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Apology"
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 |
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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.
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): ?????? |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
docs/src/main/tut/index.md
Outdated
@@ -13,29 +13,32 @@ The name is a playful shortening of the word *category*. | |||
guarantees about stability until a 1.0 release is made.</p></div> | |||
|
|||
|
|||
### <a name="getting-started" href="#getting-started"></a>Getting Started | |||
## <a name="getting-started" href="#getting-started"></a>Getting Started | |||
|
|||
|
|||
Cats is currently available for Scala 2.10, 2.11 and 2.12. |
There was a problem hiding this comment.
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
a46dd8a
to
358d55b
Compare
There was a problem hiding this 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 :)
CHANGES.md
Outdated
|
||
### To migrate from 0.9.0 | ||
|
||
Apology for the number of breaking changes in this release. We are trying to include |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recommend "we apologize".
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. |
There was a problem hiding this comment.
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".
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` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"all-inclusive" here.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"were improved"
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 |
There was a problem hiding this comment.
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.
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. |
There was a problem hiding this comment.
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"?
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(...)` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"syntanx" -> "syntax"
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"compainion" -> "companion"
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are 2 "."-s
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2 "."-s
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 |
There was a problem hiding this comment.
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.
@edmundnoble and @durban thanks so much for the review. feedback addressed. |
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` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should it be "publishes" ?
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. |
There was a problem hiding this comment.
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?
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 |
There was a problem hiding this comment.
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?
merging per gitter discussion |
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
suspend
todefer
Renamesuspend
todefer
#1709foldLeftM
withoutFree
.foldLeftM
withoutFree
. #1117Maintainers, 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
Eval.defer
andFree.suspend
Why does Eval usedefer
while Free usessuspend
? #1635Foldable
instance forList
breaks substitutionFoldable
instance forList
breaks substitution #1716ReaderWriterStateT
type parameter order ReaderWriterStateT type parameter order #1763The 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:
cats.Traverse
should implementcats.Foldable
#107 and Multiple things are prefixed withBi-
meaning different things. #1297 which will be continued in the next release.