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

draft: add sbt usage page #1016

Closed
wants to merge 14 commits into from

Conversation

i10416
Copy link
Contributor

@i10416 i10416 commented Sep 16, 2022

sbt の使い方を最低限(例: Scala バージョンの指定やライブラリの追加方法)書いてある方が初心者に優しいのではないか?と思って追加した.

また、詳細を管理するのは手間なので以下の一文を冒頭に入れた.

以下ではsbtの基本的な機能を紹介しますが、詳細は公式ドキュメントを参照してください。

close #1012

@xuwei-k
Copy link
Contributor

xuwei-k commented Sep 16, 2022

textlint大量に落ちてる

src/sbt-usage.md Outdated Show resolved Hide resolved
src/sbt-usage.md Outdated
)
```

sbt コンソールから `++2.13.8 <sbt command>` とすることで Scala のバージョンを指定して sbt のコマンドを実行したり、
Copy link
Contributor

Choose a reason for hiding this comment

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

コマンドっていう用語、sbtの公式のCommandやTaskとしてのコマンドとの違いがややこしいような

Copy link
Contributor

Choose a reason for hiding this comment

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

公式ページ https://www.scala-sbt.org/1.x/docs/ja/Running.html 見る限りですが、こっちの方も「コマンド」と書いてあるのでOKな気がしてますけど。なんか勘違いしてますかね?

@xuwei-k
Copy link
Contributor

xuwei-k commented Sep 16, 2022

そもそも根本的に前もどこかで何度か書いたけど、sbt自体は公式ページ参照してもらって、足りないとかわかりずらいなら、そっちを充実させればいい気がするから、ここに追加するのはあまり賛成ではないなぁ

src/sbt-usage.md Outdated Show resolved Hide resolved
src/sbt-usage.md Outdated Show resolved Hide resolved
src/sbt-usage.md Outdated
.settings(
scalaVersion := "3.2.0",
libraryDependencies ++= Seq(
"log4j" % "log4j" % "1.2.17"
Copy link
Contributor

Choose a reason for hiding this comment

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

例とはいえ脆弱性で話題になったlog4jの1系は… 🤔

Copy link
Contributor

Choose a reason for hiding this comment

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

log4j、(mavenの用語だと)groupIdとartifactIdが同じなのも、例としてややこしいか? 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

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

(良くも悪くも)知名度高い Java のライブラリだとこれかなって思いましたが、”groupIdとartifactIdが同じなのも...” を考慮すると他のライブラリの方がいいですね 

Copy link
Contributor

Choose a reason for hiding this comment

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

知名度が高いJavaライブラリだとなんでしょうね……。Webアプリ系だとMockitoとか?

https://github.com/mockito/mockito

たとえば、

"org.mockito" % "mockito-core" % "3.0.0" % Test

とか。

)
```

### JVM以外のプラットフォームからライブラリを利用する
Copy link
Contributor

Choose a reason for hiding this comment

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

plugins.sbtのaddSbtPluginの記述がないような

Copy link
Contributor

Choose a reason for hiding this comment

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

もう少し言いたいこと足しておくと

  • 本当に最低限とはいえ、とりあえず書いてある通りにやるとjsやnativeで動くサンプルを作れる記述にするべき?、なら、plugins.sbtにjsやnativeの記述例も追加する(version管理するなら、その分メンテコスト上がるが)
    • あるいは、あえてその部分を省略したことを明記して詳細は公式見てね、としてリンク貼る?
  • とにかく「jsやnative向けのpluginもあるよ」という紹介というか雰囲気を掴むだけにするなら、逆にもっと簡素にする?
  • その他? 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

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

plugins.sbtのaddSbtPluginの記述がないような

入れるべきか迷って書かなかったのですが、簡潔にして公式ドキュメントに流す方がメンテしやすくてよさそうですね

ただ、日本語で書かれているテキストがあるという点が初心者からしたらうれしいかも?とは思いました.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ひとまず、ライブラリを追加する際に %%%%%があることを言及するためにscalajs の例は残します.

Copy link
Contributor

Choose a reason for hiding this comment

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

@i10416 ちょい難しいところかと思うんですが、最低限と割り切るなら需要が低いjsやnativeは切り捨てて、そっちは公式ドキュメント参照してね、がいいのかなと考えてます。%%% に言及したい積極的な理由ってあったりするでしょうか?

src/sbt-usage.md Outdated
アプリケーションやライブラリとしては利用しないがテストで利用するライブラリが必要な場合は次のように書きます.
ライブラリ名の後ろに `% Test` があることに注意してください.
このように指定したライブラリはテスト用のコード(一般的には`src/test/scala` 以下にある Scala コード)からしか利用できず
リリースされるアプリケーションやライブラリには含まれません. JavaScript の package.json に含まれる
Copy link
Contributor

Choose a reason for hiding this comment

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

Javaの記述は消すけどJSの記述は例に出すのは若干疑問が残るが🤔
まぁ他にもっと良い例がないならいいか?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

自分の観測範囲の問題かもしれませんが Java よりも Python や JavaScript を使っている方が多いのでユーザー数の多い言語のものを例にあげました. Python は requirements.txt や poetry などいろいろあるので js を例にしました.

Copy link
Contributor

Choose a reason for hiding this comment

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

他言語の経験があること前提なら一番身近であろうJSを例に出すのも……まあありかもです。あるいは、とりあえず「こういうもんです」とするのも手かもとは思います。

src/sbt-usage.md Outdated Show resolved Hide resolved
src/sbt-usage.md Outdated
.settings(
scalaVersion := "3.2.0",
libraryDependencies ++= Seq(
"com.typelevel" %% "cats-core" % "2.7.0"
Copy link
Contributor

@xuwei-k xuwei-k Sep 16, 2022

Choose a reason for hiding this comment

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

他もいくつか含めて、インデントが変なような

Copy link
Contributor

Choose a reason for hiding this comment

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

この場合だと、

  Seq(
    "com.typelevel" %% "cats-core" % "2.7.0"
  )

になってて欲しいみたいな話ですか?(インデント幅の話?)


このように書けば `src/main/scala` 以下にある Scala ファイルから下のようにライブラリをインポートして利用できます.

```scala
Copy link
Contributor

Choose a reason for hiding this comment

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

ここはmdocで書くか?

Copy link
Contributor

Choose a reason for hiding this comment

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

確かにmdocが良さそうです。

@xuwei-k
Copy link
Contributor

xuwei-k commented Sep 16, 2022

catsどうせなら最新版の方が

src/sbt-usage.md Outdated
Comment on lines 34 to 35
他の Scala アプリケーションやライブラリから利用するライブラリを書く際は、しばしば複数の Scala バージョン向けに
ライブラリをビルドします.
Copy link
Contributor

Choose a reason for hiding this comment

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

そこまで応用向けな話でもないけど、Scala初学者が学ぶため、という方向性のテキストなら、この話どの程度入れるべきか?というと微妙か・・・? 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

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

他の言語の経験者で Scala 初学者の場合、アプリケーションでなくライブラリを書くことにも関心がある方がいるのでは?と思ったのでクロスビルドについて記述しました.

src/sbt-usage.md Outdated Show resolved Hide resolved
@xuwei-k
Copy link
Contributor

xuwei-k commented Sep 17, 2022

そもそも、もしsbtの記述を今より入れるにしても、何をどのくらい入れるか?を結構考えないと、統一性というか「初学者向け」という観点からすると色々微妙になりそうな気がするんだよなぁ。

「これを入れるならこっちも入れるべきでは?」

となって、かといって、とりとめなく追加していけばいいものでもないし。
メンテコスト上がる and 追加し過ぎたら結局初学者にとってどれが重要なのか?が、(相当工夫して書かない限り)わかりづらくなってデメリット増える、などがあり

@kmizu
Copy link
Contributor

kmizu commented Sep 17, 2022

@xuwei-k 実はこの辺り、先週のscala_text もくもく会@Discordでなんとなく決まったことなんで経緯書いておきます:

  • @i10416 さんからsbtの記述を追加してみてはどうかという提案
  • @kmizu が「本格的なのはsbt公式ページに任せて、薄い感じで使い方だけ書くのはどうか」という感じで @i10416 さんにアサイン
  • @i10416 さんがプルリク作成

こんな感じです。で、おっしゃる通り、

何をどのくらい入れるか?

も重要だとは思いますが、深く決めずに見切り発車した面があります。「sbtをインストールする」というページは既にあるわけだし、

  • build.sbtの基本的な書き方
    • scalaVersion, version, name, organizationとか
  • libraryDependenciesの書き方(追加の仕方)

くらいは書いておいてもこれ以上あんまり変わらないだろうし、いいのかなと思ってます。

ちなみにscala_textもくもく会のログは残ってないんですが、コミュニケーション上問題になるかもなので、次回からGitHubのIssueに残すようにします。

@xuwei-k
Copy link
Contributor

xuwei-k commented Sep 17, 2022

あとここに足してない https://github.com/scala-text/scala_text/blob/f8dd77cb517ab43528d354021d39938f8d425367/src/SUMMARY.md

@xuwei-k
Copy link
Contributor

xuwei-k commented Sep 17, 2022

ちなみにscala_textもくもく会のログは残ってないんですが、コミュニケーション上問題になるかもなので、次回からGitHubのIssueに残すように

はい。他のissueやpull reqでもそうだけど、完全に自分が当初discord導入した時の懸念したのがそのままになったというか、discordに(毎回 or 結構な頻度で)参加しないと流れがわからないのは、そちらに参加しない人にとってむしろ貢献する障壁が上がるデメリットがあると思うので、最低限は書いて欲しいですね

@kmizu
Copy link
Contributor

kmizu commented Sep 18, 2022

@xuwei-k 承知しました。最低限、

  • 決まったことと、その経緯
  • 議論になったこと

辺りの一覧は書くようにしますね。

i10416 and others added 2 commits September 22, 2022 02:31
Co-authored-by: kenji yoshida <6b656e6a69@gmail.com>
@i10416
Copy link
Contributor Author

i10416 commented Sep 21, 2022

そもそも根本的に前もどこかで何度か書いたけど、sbt自体は公式ページ参照してもらって、足りないとかわかりずらいなら、そっちを充実させればいい気がするから、ここに追加するのはあまり賛成ではない

これはおおむね同意ですがライブラリの追加方法など基本的なことは書いておいてもいいかな?と思いました.

また、このPRでは1ページ追加して書きましたが適当な場所があるなら既存のページにもう少し簡潔にしようかと思っていますがどうでしょうか.
(文章の流れを壊さずsbtの記述をいい感じに入れられるところが見当たらなかったので質問しました)

src/sbt-usage.md Outdated Show resolved Hide resolved
src/sbt-usage.md Outdated Show resolved Hide resolved
src/sbt-usage.md Outdated Show resolved Hide resolved
@xuwei-k
Copy link
Contributor

xuwei-k commented Sep 22, 2022

textlintはこういうの100カ所以上?怒られてる

句読点には全角の「、」と「。」を使います。和文の句読点としてピリオド(.)とカンマ(,)を使用しません。 jtf-style/1.2.1.句点(。)と読点(、)
7:19 ✓ error 和文の句読点としてはピリオドを使用しません。 jtf-style/4.1.3.ピリオド(.)、カンマ(,)
9:8 ✓ error 原則として、全角文字と半角文字の間にスペースを入れません。 jtf-style/3.1.1.全角文字と半角文字の間
9:18 ✓ error 半角のかっこ()が使用されています。全角のかっこ()を使用してください。 jtf-style/4.3.1.丸かっこ()

@i10416
Copy link
Contributor Author

i10416 commented Sep 22, 2022

textlintはこういうの100カ所以上?怒られてる

すみません. とりあえず書いてみて、フィードバック次第で既存のページのどこかのセクションに追加するか、別のページにするか、そもそも書かないか検討して、書くならその際に清書すればいいかな、と思っていて雑になりました. このような意図は PRの概要に書いておくべきでしたm(_ _)m

Copy link
Contributor

@kmizu kmizu left a comment

Choose a reason for hiding this comment

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

@i10416 些細な指摘はどちらでもいいですが、ミスっぽいものだけ直してもらえればOKです。

src/sbt-usage.md Outdated Show resolved Hide resolved
src/sbt-usage.md Outdated Show resolved Hide resolved
src/sbt-usage.md Outdated Show resolved Hide resolved
@xuwei-k
Copy link
Contributor

xuwei-k commented Sep 23, 2022

あとここに足してない https://github.com/scala-text/scala_text/blob/f8dd77cb517ab43528d354021d39938f8d425367/src/SUMMARY.md

https://github.com/scala-text/scala_text#honkit%E3%81%A7%E7%89%B9%E5%88%A5%E8%A6%96%E3%81%95%E3%82%8C%E3%82%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

summary: 本のページ遷移情報に利用される
summaryを更新しないとページを追加しても本に反映されないので注意が必要。

src/sbt-usage.md Outdated Show resolved Hide resolved
i10416 and others added 5 commits September 23, 2022 17:22
Co-authored-by: kenji yoshida <6b656e6a69@gmail.com>
Co-authored-by: kenji yoshida <6b656e6a69@gmail.com>
Co-authored-by: kenji yoshida <6b656e6a69@gmail.com>
Co-authored-by: kenji yoshida <6b656e6a69@gmail.com>
@kmizu
Copy link
Contributor

kmizu commented Feb 28, 2024

こちらいったんcloseします。またopenが必要な場合は別途議論するということで 🙏

@kmizu kmizu closed this Feb 28, 2024
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.

SBT の解説
3 participants