Proposal: Renaming this library
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 15/100
- issue の種類
- 機能追加
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- scala
調査の方向性
まず、この issue における命名、パッケージ、import、アーティファクト座標の提案と、#362 の関連する議論を確認してください。完了とするには、リポジトリの変更範囲を決める前に、合意された名前と移行方針が必要です。
索引モデルが issue の本文から書いたものです。
説明
I often talk to colleagues who use cats-core, cats-effect, etc... but know nothing about mouse.
This is sad because I love mouse and all its features ( which prevents the usage of EitherT and OptionT for instance) , but I see the reasons why this can't be merged within cats-core.
However, I wonder if there is a way to improve the visibility of this project.
With the arrival of Scala 3 we can take the opportunity to rename/fork this library to a better and clearer name which includes cats- as prefix to let it be more part of an ecosystem. I see cats-core as the base, mouse as an advanced syntax of cats and cats-effect as the effects system.
At the moment, mouse seems an independent library and not a cats ecosystem add-on to me.
I don't want to blame the current name, I just wonder if a rebranding would improve the visibility of this library which, in my humble opinion, should be part of every cats-based project. Too many times I have seen boilerplate and operators that are already part of mouse rewritten within Utils classes.
Going deeper, the problem I see with the mouse name is that it doesn't really describe the purpose of the library, which aim to just enrich cats with a nice and useful syntax without adding new type classes or features.
Some ideas:
cats-pragmatics(polished, but I'm not sure if it is correct)cats-mouse( more conservative )cats-suit/cats-dress( fancy and funny but I don't know how explanatory it is )cats-enrichments/cats-rich-syntax( more serious but clear )
Something like this, for instance:
"org.typelevel" %% "cats-core" % "x.y.z",
"org.typelevel" %% "cats-rich-syntax" % "x.y.z",
"org.typelevel" %% "cats-effect" % "x.y.z",
Once done with the name, I'd also rethink the packages because it would be nice to try to keep the same pattern as cats-core in order to simplify the life of the users.
Since mouse adds syntax to cats core, maybe it is correct to put it under cats.syntax package, where mouse is a specialization of the basic cats syntax. This creates a kind of boundary.
Moreover, this is also useful to better organize imports with Scalafmt
rewrite.rules = [ SortImports ]
Example
// current
import cats.syntax.all.* // imports all cats-core syntax
import mouse.all.* // import all mouse syntax
// new
import cats.syntax.all.* // imports all cats-core syntax
import cats.syntax.rich.all.* // import all cats rich syntax
We could also consider to no having a global import but split them by type as suggested in #362 which I like TBH
import cats.syntax.collections.* // import all cats boxed syntax
import cats.syntax.nested.* // import all cats nested syntax
//or
import cats.syntax.rich.collections.* // import all cats boxed syntax
import cats.syntax.rich.nested.* // import all cats nested syntax
To rename or not, what name and how to do it is up to you, but I just wanted to sow a seed for a discussion.
Maybe I am the only one who sees this problem.
Let me know what you think :)
- 主要言語
- Scala
- スター
- 376
- フォーク
- 66
- 平均マージ
- 3日 4時間
- マージ済み PR(30日)
- 2
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
typelevel/mouse のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
-
RFC
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
-
Scala 3 migrationオープン
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
typelevel/mouse の issue をすべて見る
似ている issue
-
"Show threat" doesn't show the evaluation of the threat対応中かも @Zinkelburger が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
lichess-org/lila#22008 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
C21 publishes `reactivemongo/core/SSL` as Java 23 bytecode — TLS connections fail on any JDK < 23オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
ReactiveMongo/ReactiveMongo#1520 ·
メンテナーはふだん 1 日以内に返信
-
module: unknown type: bug/reported
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
OpenXiangShan/XiangShan#6688 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
disneystreaming/smithy4s#2011 ·
-
lsp-clojure eagerly loads lsp-treemacs/treemacs when clients are registered対応中かも @jlipworth が 1 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100