oss-gate/workshop

OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: tetrapod418: ${OSS_NAME}: Work log

tetrapod418 opened this issue · 29 comments

This is a work log of a "OSS Gate workshop".
"OSS Gate workshop" is an activity to increase OSS developers.
Here's been discussed in Japanese. Thanks.

作業ログ作成時の説明

以下のテンプレートを埋めてタイトルに設定します。埋め方例はスクロールすると見えてきます。

OSS Gate Workshop: ${LOCATION}: ${YEAR}-${MONTH}-${DAY}: ${ACCOUNT_NAME}: ${OSS_NAME}: Work log

タイトル例↓:

OSS Gate Workshop: Tokyo: 2017-01-16: kou: Rabbit: Work log

OSS Gateワークショップ関連情報

  • スライド:ワークショップの進行に使っているスライドがあります。
  • チャット:OSS開発に関することならなんでも相談できます。ワークショップが終わった後もオンラインで相談しながら継続的にOSSの開発に参加しましょう!
  • シナリオ:ワークショップの目的・内容・進め方の詳細が書いています。
  • 過去のビギナーの作業ログ:他の人の作業ログから学べることがいろいろあるはずです。

CONTRIBUTING.md
https://github.com/kintone/js-sdk/blob/main/CONTRIBUTING.md
に、コントリビュートの説明があった

https://github.com/kintone/js-sdk/blob/main/CONTRIBUTING.md
にセットアップ方法が記載されていた。
このリポジトリは、pnpmを利用したモノレポと書かれていた。
This repository is a monorepo using pnpm.

cloneしようとしたら、publickeyがPermission deniedで、取得できなかった。

Cloning into 'js-sdk'...
The authenticity of host 'github.com (20.27.177.113)' can't be established.
ECDSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com,20.27.177.113' (ECDSA) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

先日、自分のPublick keyがexpireするというメールが来ていた気がする。

西村さんから、Publickeyの管理が面倒なので、GitHub CLIをお勧めされた。
WSL2のUbuntuにCLIをインストールする

https://github.com/cli/cli#installation
に従って、CLIをインストールする

GitHub CLIがインストールできた

gh auth loginしようとしたら、WSL2のターミナル内にテキストベースのログイン画面が表示された。
image

CLIで、ローカルにcloneした
gh repo clone https://github.com/tetrapod418/js-sdk

cloneに失敗した。

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
failed to run git: exit status 128

岡野さんから、HTTPSでcloneできるのでは?と助言をいただいて、HTTPSのURLを使ってcloneしようとした
git clone https://github.com/tetrapod418/js-sdk.git

既にディレクトリが存在すると言われた。

実は、cloneできていた。
image

Contributing Guideをもとに、set upしてみた。
image
書かれている手順で、セットアップできた。うれしい。

  • 環境構築するところまで、なかなか進めなくて苦労したが、岡野さんの助言でサクッと解決できて良かった。
  • ドキュメントの通りに実行できると、「できた」という実感が湧いてうれしい。
  • GitHub CLIだけでなく、GitHubの使い方もおぼつかないので、必要なツールの使い方も慣れていきたい。
  • 問題を解決できたかどうかではなく、小さい単位で作業メモを残しながら作業を進めることの理解ができたので、今日の目標としては達成できたと思う。

Setupできたので、Contributing Guideをもとに、pnpm buildを実行した。
image

pnpm test を実行して、成功した。

pnpm lint を実行して、成功した。

Checking formatting...
All matched files use Prettier code style!

実行環境メモ
Windows11 上のWSL2(Ubuntu 20.04)

issueの報告ページがあって、親切。bugとFeature Requestのひな型が用意されている。めちゃいい。
image

image

testもlintもすべてクリアしたので、ツッコミどころがなかった。
tadsanに「社外の人が積極的にコントリビュートする感じではないかもしれないので、別のOSSを探してみるのはどうか」と助言をいただいたので、別の小さめのnodeパッケージを探してみる。

自分のアカウントにfork

npnmで環境を作ってしまったので、testで型が解決できないエラーが発生した。
西村さんに助言をいただいて、node_moduleを削除して、npmで環境構築してテストを実行した
npm install
npm run test
結果は、テストはPASSしたが、WARNING(magic number)が4件、テストのカバレッジが不足していた。

=============================== Coverage summary ===============================
Statements   : 91.18% ( 31/34 )
Branches     : 82.93% ( 34/41 )
Functions    : 33.33% ( 1/3 )
Lines        : 91.18% ( 31/34 )
================================================================================
----------|----------|----------|----------|----------|----------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files |    91.18 |    82.93 |    33.33 |    91.18 |                |
 env.js   |      100 |      100 |        0 |      100 |                |
 index.js |       88 |    75.86 |      100 |       88 |       17,27,38 |
----------|----------|----------|----------|----------|----------------|

西村さんから、magic numberの解消でも良いが、テストカバレッジを解決するのも良いという助言をいただいた。

岡野さんにテストカバレッジを解決しようとしているが、大変ですか?と相談したところ、プロジェクトの方針としてカバレッジを気にしていない場合がある。カバレッジの方針について、質問してみるのは、あり。とのことだった。
別のパッケージを探してみることにする。

@colors/colors - npm
https://www.npmjs.com/package/@colors/colors
を選びました。
https://github.com/DABH/colors.js/blob/master/LICENSE
にMIT Licenseと記載されていたのでOSSと確認できました。

実行環境を作ってテストを実行したが、lintもtestもパスした。
パスしたことがわかりにくいので、PASSしたことがわかるようになると安心できそう。

岡野さんに、テストがPASSすると何も出力されないのはISSUEにできそうか相談してみたが、あまり意味がなさそう。
岡野さんから、現在、パッケージとしてテスト済のバッジがついているか確認できると良い。と助言をうけて、
https://www.npmjs.com/package/@colors/colors
を確認したところ、CIも通っている表記があった。
更に、CIの実行結果を見てみると、テストコマンドで実行したときと同じ内容をGHAのworkflowで実行しているだけ
だったので、成功しているがlog出力がなかった
image
これを問題とするかどうかは微妙とのこと。
一方、assertの途中でfailすると、その先のテストが実行されなくなるので、そちらを改善できる方が良いかもしれないと助言をいただいた。
テストフレームワークを提案できると良いかも。最適なフレームワークを調べたい。

おつかれさまでした!

ワークショップの終了にともないissueを閉じますが、このまま作業メモとして使っても構いません 👌

ワークショップの感想を集めています!

ブログなどに書かれた際は、このページへリンクの追加をお願いします 🙏

またの参加をお待ちしています!