Skip to content

Commit

Permalink
Merge branch 'master' into fix-typo
Browse files Browse the repository at this point in the history
# Conflicts:
#	README.md
  • Loading branch information
asakaev committed Jun 14, 2019
2 parents d91ba82 + 341e1b1 commit a9161d3
Show file tree
Hide file tree
Showing 14 changed files with 252 additions and 55 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jdk:

scala_version_211: &scala_version_211 2.11.12
scala_version_212: &scala_version_212 2.12.7
scala_version_213: &scala_version_213 2.13.0-RC3
scala_version_213: &scala_version_213 2.13.0

before_install:
- export PATH=${PATH}:./vendor/bundle
Expand Down
16 changes: 16 additions & 0 deletions AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ possible:
* Aaron Levin
* Adam Fisher
* Adelbert Chang
* Adrian Ramirez Fornell
* Aldo Stracquadanio
* Alejandro Gómez
* Alessandro Lacava
Expand All @@ -35,12 +36,14 @@ possible:
* Andy Scott
* Angelo Genovese
* Antoine Comte
* Arulselvan Madhavan
* Arya Irani
* Ash Pook
*
* Ben Fradet
* Ben Hutchison
* Ben Kirwin
* Ben Plommer
* Benjamin Thuillier
* Binh Nguyen
* Bjørn Madsen
Expand All @@ -59,6 +62,7 @@ possible:
* Csongor Kiss
* dadepo
* Dale Wijnand
* Dan Di Spaltro
* Daniel Karch
* Daniel Spiewak
* Daniel Urban
Expand Down Expand Up @@ -99,6 +103,7 @@ possible:
* Gavin Bisesi
* Giovanni Ruggiero
* Giulio De Luise
* Giuseppe Cannella
* Greg Pfeil
* Guillaume Massé
* Hamish Dickson
Expand All @@ -112,11 +117,14 @@ possible:
* Jacob Barber
* Jakub Kozłowski
* Jan-Hendrik Zab
* Jasper Moeys
* Jean-Rémi Desjardins
* Jens
* Jens Grassel
* Jichao Ouyang
* Jimin Hsieh
* Jisoo Park
* Joan Goyeau
* João Ferreira
* John Sullivan
* Jon Hanson
Expand All @@ -129,7 +137,9 @@ possible:
* Julien Richard-Foy
* Julien Truffaut
* Jun Tomioka
* jurisk
* Kailuo Wang
* Kamil Kloch
* Keir Lawson
* kellen
* Kenji Yoshida
Expand All @@ -149,6 +159,7 @@ possible:
* Mark de Jong
* Markus Hauck
* Martijn Hoekstra
* Mateusz Sokół
* mathhun
* Matt Martin
* Matthias Lüneberg
Expand All @@ -158,11 +169,13 @@ possible:
* Michael Pilquist
* Mike Curry
* Miles Sabin
* Mirco Dotta
* nigredo-tori
* Nikolay Maksimenko
* n4to4
* Olivier Blanvillain
* Olli Helenius
* orvi
* Owen Parry
* P. Oscar Boykin
* Paolo G. Giarrusso
Expand Down Expand Up @@ -222,15 +235,18 @@ possible:
* Valy Diarrassouba
* Vasileios Lampridis
* ven
* Viktor Dychko
* Viktor Lövgren
* Vladimir Samoylov
* Vladislav Gutov
* Wedens
* Wogan
* Xavier Fernández Salas
* XUWE
* 杨博 (Yang Bo)
* Yosef Fertel
* Yilin Wei
* Yuriy Badalyantc
* Zach Abbott
* zainab-ali
* Zelenya
Expand Down
78 changes: 77 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,79 @@
## Version 2.0.0-M3

> 2019 June 1
Cats 2.0.0-M3 is a milestone release for Cats 2.0 that's available on Scala 2.11, 2.12, 2.13.0-RC3 and Scala.js 0.6.
Cats 2.0.0-M3 (like the upcoming 2.0.0 release) maintains binary compatibility with Cats 1.x.x in the cats-kernel, cats-core and cats-free modules, but not cats-laws, cats-kernel-laws, cats-testkit, or alleycats.

### 1 breaking change

* [#2830](https://github.com/typelevel/cats/pull/2830) Remove deprecated `cats.laws.discipline.eq` methods (by @kailuowang).

### 1 source-breaking change

* [#2843](https://github.com/typelevel/cats/pull/2843) `Kleisli` is now covariant in the input type (by @jcouyang).

### 1 documentation fix

* [#2842](https://github.com/typelevel/cats/pull/2842) Fixes for API docs for `Order` methods (by @orvi).

### 3 build improvements

* [#2869](https://github.com/typelevel/cats/pull/2869) Updates for 2.13.0-RC3 (by @travisbrown).
* [#2865](https://github.com/typelevel/cats/pull/2865) Update sbt-hydra plugin (by @scala-steward).
* [#2871](https://github.com/typelevel/cats/pull/2871) Remove closed-source sbt-hydra plugin (by @travisbrown).

## Version 2.0.0-M2

> 2019 May 25
Cats 2.0.0-M2 is a milestone release for Cats 2.0. It's available on Scala 2.11, Scala 2.12, Scala 2.13.0-RC2 and Scala.js 0.6.
Cats 2.0.0-M2 maintains binary compatibility on cats-kernel, cats-core and cats-free with Cats 1.x.x.
Their 2.0.0-M2 jars are drop-in replacements for 1.0.1, 1.1.0, 1.2.0, 1.3.1, 1.4.0, 1.5.0, 1.6.0, and 2.0.0-M1 jars.
cats-kernel, cats-core and cats-free 2.0.0 will remain binary compatible with 1.x.
Cats 2.0.0-M2 breaks binary compatibility on cats-laws, cats-kernel-laws, cats-testkit and alleycats.

### 1 breaking change in cats-laws

* [#2817](https://github.com/typelevel/cats/pull/2817) Added a new foldRight lazy law, move forallLazy and existLazy laws by @kailuowang


### 6 documentation additions/fixes

* [#2855](https://github.com/typelevel/cats/pull/2855) Edit example in Parallel docs by @Jasper-M
* [#2850](https://github.com/typelevel/cats/pull/2850) Small Readme fix by @dispalt
* [#2819](https://github.com/typelevel/cats/pull/2819) added FreeT basic example by @mtsokol
* [#2815](https://github.com/typelevel/cats/pull/2815) added navigation links to readme by @kailuowang
* [#2813](https://github.com/typelevel/cats/pull/2813) Remove 'cats experimental' clause from README.md. by @kamilkloch
* [#2811](https://github.com/typelevel/cats/pull/2811) added availability information by @kailuowang


### 3 API/Feature enhancements

* [#2840](https://github.com/typelevel/cats/pull/2840) 2708 sorted set semigroupal by @vladislavGutov
* [#2837](https://github.com/typelevel/cats/pull/2837) Delete unnecessary restriction on biFlatMap by @AdrianRaFo
* [#2796](https://github.com/typelevel/cats/pull/2796) Added collectFirst to Chain and NonEmptyChain by @LMnet


### 5 build improvements

* [#2858](https://github.com/typelevel/cats/pull/2858) Don't create the hydra.license if $HydraLicense is empty by @dotta
* [#2857](https://github.com/typelevel/cats/pull/2857) Updates for 2.13.0-RC2 by @travisbrown
* [#2856](https://github.com/typelevel/cats/pull/2856) Update sbt-scalajs to 0.6.28 by @scala-steward
* [#2848](https://github.com/typelevel/cats/pull/2848) Enables Hydra on cats build by @kailuowang
* [#2821](https://github.com/typelevel/cats/pull/2821) removing unused resolver by @kailuowang


### 2 test improvements

* [#2831](https://github.com/typelevel/cats/pull/2831) fixed applicative monoid test by @kailuowang
* [#2827](https://github.com/typelevel/cats/pull/2827) In Apply.semigroup test replace ` ListWrapper` with `Option` by @kailuowang


### 1 bug fix

* [#2810](https://github.com/typelevel/cats/pull/2810) Change MonadErrorOps#reject so it no longer runs effects twice by @bplommer

## Version 2.0.0-M1

> 2019 April 24
Expand Down Expand Up @@ -238,7 +314,7 @@ Cats 1.5.0-RC0 is binary compatible with all previous 1.x Cats releases, i.e. it
* [#2475](https://github.com/typelevel/cats/pull/2475) Add Either#toEitherNel extension and friends by @kubukoz


### 1 bug fixes
### 1 bug fix

* [#2586](https://github.com/typelevel/cats/pull/2586) UnorderedFoldable#isEmpty default implementation is incorrect by @barambani

Expand Down
62 changes: 42 additions & 20 deletions PROCESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@ maintainers. Community member sign-offs are appreciated as votes of
confidence but don't usually count toward this total unless the
commenter has already been involved with the area of code in question.

When fixing typos or improving documentation only one sign-off is
required (although for major edits waiting for two may be preferable).
When fixing typos, improving documentation or minor build fix only
one sign-off is required (although for major edits waiting for two
may be preferable).

For serious emergencies or work on the build which can't easily be
reviewed or tested, pushing directly to master may be OK (but is
Expand All @@ -24,22 +25,42 @@ Gitter or elsewhere about what happened and what was done.

### Versioning

If a release is simply a bug fix, increment the patch version number
(e.g. 1.2.3 becomes 1.2.4). These releases may happen quite quickly in
response to reported bugs or problems, and should usually be source
and binary compatible.
Since `1.0.0` release, Cats adopted the *MAJOR.MINOR.PATCH*
[Semantic Versioning 2.0.0](http://semver.org/). In semantic versioning,
Backward binary compatibility is maintained between *PATCH* AND *MINOR* versions.

If the major version is 0, then the minor version should be updated
(e.g. 0.2.3 becomes 0.3.0). There are no compatibility guarantees for
this type of change.
The main rules are:
* *PATCH* version Z (x.y.Z | x > 0) MUST be incremented if only backwards compatible bug fixes are introduced.
* *MINOR* version Y (x.Y.z | x > 0) MUST be incremented if new, binary backwards compatible functionality is introduced to the public API. It MUST be incremented if any public API functionality is marked as deprecated.
* Source breaking but binary compatible changes are allowed between *MINOR* versions.
* Binary backward breaking changes are **ONLY** allowed between *MAJOR* versions.
* For other scenarios, refer to [Semantic Versioning 2.0.0](http://semver.org/).

If the major version is 1 or greater, then significant additions
should increment the minor version number (e.g. 1.2.3 becomes 1.3.0)
and breaking or incompatible changes should increment the major number
(e.g. 1.2.3 becomes 2.0.0). These major version bumps should only
occur after substantial review, warning, and with proper deprecation
cycles.

For a new *MINOR* version release, it's preferred to release a Release Candidate for public testing. If there are no regressions or new bugs discovered, the new *MINOR* version should be released within a couple of weeks, with no significant changes in between.


### Pre-release

Before the actual release, we need to make sure all merged PRs are properly assigned with the correct Github Milestone and labels.

1. Make sure a milestone corresponding to the to-be released version exists on Github.

2. Then use the following search to gather all merged PRs to be released:
https://github.com/typelevel/cats/pulls?utf8=%E2%9C%93&q=merged%3A%3E2019-05-29+
replace `2019-05-29` with the last release date.

3. For PRs that add no value to the code or documentation or build, for example, community announcements or additions to adopter list, we do not include them in the release notes. Assign these PRs a special milestone: `Excluded from release notes`

4. Assign the rest PRs with the target milestone and one or more of the following labels: `testing`, `bug`, `build`, `documentation`, `enhancement`, `Source Breaking` and `Binary Breaking`.

#### Release branch

For non-milestone releases (e.g. 2.0.0-M1), we shall release from a release branch. For each *MINOR* version, we shall have a corresponding branch, e.g. `2.1.x`. There are 2 main benefits for this:
1. Since we need to go through at least 1 release candidate release, having a release branch makes it easier to incorporate potential fixes and release the official release later.
2. The master branch of Cats is protected. This means sbt-release cannot push post release commits and more importantly tags directly to master. It can with a release branch, and a PR can be submitted to merge the release branch back into master.


### Releasing

Before the release, the tests and other validation must be passing.
Expand Down Expand Up @@ -77,17 +98,18 @@ After the release occurs, you will need to update the
documentation. Here is a list of the places that will definitely need
to be updated:

* `docs/src/site/index.md`: update version numbers
* `README.md`: update version numbers
* `AUTHORS.md`: add new contributors
* `CHANGES.md`: summarize changes since last release

(Other changes may be necessary, especially for large releases.)

You can get a list of changes between release tags `v0.1.2` and
If the [Pre-release](#pre-release) step is properly done, meaning all released PRs are properly assigned with label and milestone, you can use a [script](
https://github.com/typelevel/cats/blob/master/scripts/releaseNotes.scala) to generate the release note. Follow the doc in the script for instructions.

Alternatively, you can get a list of changes between release tags `v0.1.2` and
`v0.2.0` via `git log v0.1.2..v0.2.0`. Scanning this list of commit
messages is a good way to get a summary of what happened, although it
does not account for conversations that occurred on Github.
messages is a good way to get a summary of what happened, and manually write it up.

Once the relevant documentation changes have been committed, new
[release notes](https://github.com/typelevel/cats/releases) should be
Expand All @@ -97,7 +119,7 @@ on that page, or if the relevant release already exists, you can click

The website should then be updated via [sbt-microsites](https://47deg.github.io/sbt-microsites/)
using `sbt docs/publishMicrosite`.
Please check the [prerequisites](https://47deg.github.io/sbt-microsites/docs/) of sbt-microsites.
Please check the [prerequisites](https://47deg.github.io/sbt-microsites/docs/) of `sbt-microsites`.

### Conclusion

Expand Down
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@

### ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) Community Announcements ![#f03c15](https://placehold.it/15/f03c15/000000?text=+)
* **Apr 26 2019** [We launched a sustainability program](https://typelevel.org/blog/2019/04/24/typelevel-sustainability-program-announcement.html). Please consider supporting us.
* **Jun 1 2019** [Cats 2.0.0-M3 is released](https://github.com/typelevel/cats/releases/tag/v2.0.0-M3) with support for Scala 2.13.0-RC3
* **May 25 2019** [Cats 2.0.0-M2 is released](https://github.com/typelevel/cats/releases/tag/v2.0.0-M2) with support for Scala 2.13.0-RC2
* **Apr 26 2019** [We launched a sustainability program](https://typelevel.org/blog/2019/04/24/typelevel-sustainability-program-announcement.html). Please consider supporting us.
* **Apr 25 2019** [Cats 2.0.0-M1 is released](https://github.com/typelevel/cats/releases/tag/v2.0.0-M1) with binary compatibility with 1.x on `cats-kernel`, `cats-core` and `cats-free`
* **Feb 15 2019** [Cats 2019 roadmap](https://github.com/typelevel/cats/blob/master/ROADMAP_2019.md) is published.
* **Jan 31 2019** Cats 1.6.0 is released.
Expand Down Expand Up @@ -62,7 +64,7 @@ Silver Sponsors are those who have pledged $2,000 to $5,000.

### Getting Started

Cats is currently available for Scala 2.10 (up to 1.2.x), 2.11, 2.12, 2.13.0-RC1, and [Scala.js](http://www.scala-js.org/).
Cats is currently available for Scala 2.10 (up to 1.2.x), 2.11, 2.12, 2.13.0-RC3, and [Scala.js](http://www.scala-js.org/).

Cats relies on improved type inference via the fix for [SI-2712](https://github.com/scala/bug/issues/2712), which is not enabled by default. For **Scala 2.11.9 or later** you should add the following to your `build.sbt`:

Expand All @@ -79,7 +81,7 @@ addSbtPlugin("org.lyranthe.sbt" % "partial-unification" % "1.1.2")
And then create the Cats dependency, by adding the following to your `build.sbt`:

```scala
libraryDependencies += "org.typelevel" %% "cats-core" % "2.0.0-M1"
libraryDependencies += "org.typelevel" %% "cats-core" % "2.0.0-M3"
```

This will pull in the cats-core module. If you require some other
Expand Down Expand Up @@ -339,9 +341,9 @@ The current maintainers (people who can merge pull requests) are:
* [kailuowang](https://github.com/kailuowang) Kailuo Wang

We are currently following a practice of requiring at least two
sign-offs to merge PRs (and for large or contentious issues we may
wait for more). For typos or other small fixes to documentation we
relax this to a single sign-off.
sign-offs to merge code PRs (and for large or contentious issues we may
wait for more). For typos, documentation improvements or minor build fix we
relax this to a single sign-off. More detail in the [process document](https://github.com/typelevel/cats/blob/master/PROCESS.md).


### Copyright and License
Expand Down
10 changes: 5 additions & 5 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -81,12 +81,12 @@ lazy val catsSettings = Seq(
incOptions := incOptions.value.withLogRecompileOnMacro(false),
libraryDependencies ++= Seq(
"org.typelevel" %%% "machinist" % "0.6.8",
compilerPlugin("org.typelevel" %% "kind-projector" % "0.10.2")
compilerPlugin("org.typelevel" %% "kind-projector" % "0.10.3")
) ++ macroDependencies(scalaVersion.value),
) ++ commonSettings ++ publishSettings ++ scoverageSettings ++ simulacrumSettings

lazy val simulacrumSettings = Seq(
libraryDependencies += "com.github.mpilquist" %%% "simulacrum" % "0.18.0" % Provided,
libraryDependencies += "com.github.mpilquist" %%% "simulacrum" % "0.19.0" % Provided,
pomPostProcess := { (node: xml.Node) =>
new RuleTransformer(new RewriteRule {
override def transform(node: xml.Node): Seq[xml.Node] = node match {
Expand Down Expand Up @@ -148,13 +148,13 @@ lazy val includeGeneratedSrc: Setting[_] = {
}
}

val scalatestVersion = "3.1.0-SNAP12"
val scalatestVersion = "3.1.0-SNAP13"

val scalatestplusScalaCheckVersion = "1.0.0-SNAP7"
val scalatestplusScalaCheckVersion = "1.0.0-SNAP8"

val scalaCheckVersion = "1.14.0"

val disciplineVersion = "0.12.0-M2"
val disciplineVersion = "0.12.0-M3"

lazy val disciplineDependencies = Seq(
libraryDependencies ++= Seq("org.scalacheck" %%% "scalacheck" % scalaCheckVersion,
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/cats/MonadError.scala
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ trait MonadError[F[_], E] extends ApplicativeError[F, E] with Monad[F] {
* res1: scala.util.Try[Int] = Success(1)
* }}}
*/
def rethrow[A](fa: F[Either[E, A]]): F[A] =
def rethrow[A, EE <: E](fa: F[Either[EE, A]]): F[A] =
flatMap(fa)(_.fold(raiseError, pure))
}

Expand Down
Loading

0 comments on commit a9161d3

Please sign in to comment.