From 2f9a4d804aefc7733f3f304db406ea9c3b1c52f8 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Mon, 23 Aug 2021 23:37:52 +0900 Subject: [PATCH] Create CONTRIBUTING.md --- CONTRIBUTING.md | 61 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..bfd07ea --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,61 @@ +# Contribution guide +プãƒã‚¸ã‚§ã‚¯ãƒˆã«èˆˆå‘³ã‚’æŒã£ã¦ã„ãŸã ãã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ï¼ +ã“ã®ãƒ‰ã‚ュメントã§ã¯ã€ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã«è²¢çŒ®ã™ã‚‹éš›ã«å¿…è¦ãªæƒ…å ±ã‚’ã¾ã¨ã‚ã¦ã„ã¾ã™ã€‚ + +## 実装をã™ã‚‹å‰ã« +æ©Ÿèƒ½è¿½åŠ ã‚„ãƒã‚°ä¿®æ£ã‚’ã—ãŸã„ã¨ãã¯ã€ã¾ãšIssueãªã©ã§è¨è¨ˆã€æ–¹é‡ã‚’レビューã—ã¦ã‚‚らã„ã¾ã—ょã†(ç„¡ã„å ´åˆã¯ä½œã£ã¦ãã ã•ã„)。ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ãŒãªã„ã¨ã€ã›ã£ã‹ã実装ã—ã¦ã‚‚PRãŒãƒžãƒ¼ã‚¸ã•ã‚Œãªã„å¯èƒ½æ€§ãŒé«˜ããªã‚Šã¾ã™ã€‚ + +ã¾ãŸã€å®Ÿè£…ã«å–り掛ã‹ã‚‹ã¨ãã¯å½“該Issueã«è‡ªåˆ†ã‚’アサインã—ã¦ãã ã•ã„(自分ã§ã§ããªã„å ´åˆã¯ä»–メンãƒãƒ¼ã«è‡ªåˆ†ã‚’アサインã—ã¦ã‚‚らã†ã‚ˆã†ãŠé¡˜ã„ã—ã¦ãã ã•ã„)。 +自分ãŒå®Ÿè£…ã™ã‚‹ã¨ã„ã†æ„æ€è¡¨ç¤ºã‚’ã™ã‚‹ã“ã¨ã§ã€ä½œæ¥ãŒãƒãƒƒãƒ†ã‚£ãƒ³ã‚°ã™ã‚‹ã®ã‚’防ãŽã¾ã™ã€‚ + +## Tools +### Jest +ã“ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã§ã¯ãƒ†ã‚¹ãƒˆãƒ•ãƒ¬ãƒ¼ãƒ ワークã¨ã—ã¦[Jest](https://jestjs.io/)ã‚’å°Žå…¥ã—ã¦ã„ã¾ã™ã€‚ +テストã¯[`/test`ディレクトリ](./test)ã«ç½®ã‹ã‚Œã¾ã™ã€‚ + +テストã¯CIã«ã‚ˆã‚Šå„コミット/å„PRã«å¯¾ã—ã¦è‡ªå‹•ã§å®Ÿæ–½ã•ã‚Œã¾ã™ã€‚ +ãƒãƒ¼ã‚«ãƒ«ç’°å¢ƒã§ãƒ†ã‚¹ãƒˆã‚’実施ã™ã‚‹ã«ã¯ã€`npm run test`を実行ã—ã¦ãã ã•ã„。 + +### tsd +ã“ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã§ã¯åž‹ã®ãƒ†ã‚¹ãƒˆã‚’è¡Œã†ãŸã‚ã«[tsd](https://github.com/SamVerschueren/tsd)ã‚’å°Žå…¥ã—ã¦ã„ã¾ã™ã€‚ +Jestã«ã‚ˆã‚‹ãƒ†ã‚¹ãƒˆã§ã¯ã€Œåž‹ãŒæœŸå¾…ã—ãŸã‚‚ã®ã‹ã€ã¨ã„ã†ã®ã¯ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。tsdを使ã†ã“ã¨ã§ã€åž‹ãŒæ„図ã—ãŸã‚‚ã®ã§ã‚ã‚‹ã“ã¨ã‚’æ‹…ä¿ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ +tsdã«ã‚ˆã‚‹åž‹ãƒ†ã‚¹ãƒˆã¯[`/test-d`ディレクトリ](./test-d)ã«ç½®ã‹ã‚Œã¾ã™ã€‚ + +テストã¯CIã«ã‚ˆã‚Šå„コミット/å„PRã«å¯¾ã—ã¦è‡ªå‹•ã§å®Ÿæ–½ã•ã‚Œã¾ã™ã€‚ +ãƒãƒ¼ã‚«ãƒ«ç’°å¢ƒã§ãƒ†ã‚¹ãƒˆã‚’実施ã™ã‚‹ã«ã¯ã€`npm run test`を実行ã—ã¦ãã ã•ã„。 + +### API Extractor +ã“ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã§ã¯[API Extractor](https://api-extractor.com/)ã‚’å°Žå…¥ã—ã¦ã„ã¾ã™ã€‚API Extractorã¯APIレãƒãƒ¼ãƒˆã‚’生æˆã™ã‚‹å½¹å‰²ã‚’æŒã¡ã¾ã™ã€‚ +APIレãƒãƒ¼ãƒˆã¯ã„ã‚ã°APIã®ã‚¹ãƒŠãƒƒãƒ—ショットã§ã€ã“ã®ãƒ©ã‚¤ãƒ–ラリãŒå¤–部ã«å…¬é–‹(export)ã—ã¦ã„ã‚‹å„種関数や型ã®å®šç¾©ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚`npm run api`コマンドを実行ã™ã‚‹ã¨ã€ãã®æ™‚点ã§ã®ãƒ¬ãƒãƒ¼ãƒˆãŒ[`/etc`ディレクトリ](./etc)ã«ç”Ÿæˆã•ã‚Œã‚‹ã‚ˆã†ã«ãªã£ã¦ã„ã¾ã™ã€‚ + +exportã—ã¦ã„ã‚‹APIã«å¤‰æ›´ãŒã‚ã‚‹ã¨ã€å½“然生æˆã•ã‚Œã‚‹ãƒ¬ãƒãƒ¼ãƒˆã®å†…容も変ã‚ã‚‹ã®ã§ã€ä¾‹ãˆã°developブランãƒã§ç”Ÿæˆã•ã‚ŒãŸãƒ¬ãƒãƒ¼ãƒˆã¨PRã®ãƒ–ランãƒã§ç”Ÿæˆã•ã‚ŒãŸãƒ¬ãƒãƒ¼ãƒˆã‚’比較ã™ã‚‹ã“ã¨ã§ã€æ„図ã—ãªã„ç ´å£Šçš„å¤‰æ›´ã®æ¤œå‡ºã‚„ã€ç ´å£Šçš„変更ã®å½±éŸ¿ç¢ºèªã«ç”¨ã„ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ +ã¾ãŸã€å„コミットやå„PRã§å®Ÿè¡Œã•ã‚Œã‚‹CI内部ã§ã¯ã€éƒ½åº¦APIレãƒãƒ¼ãƒˆã‚’生æˆã—ã¦æ—¢å˜ã®ãƒ¬ãƒãƒ¼ãƒˆã¨å·®åˆ†ãŒç„¡ã„ã‹ãƒã‚§ãƒƒã‚¯ã—ã¦ã„ã¾ã™ã€‚ã‚‚ã—差分ãŒã‚ã‚‹ã¨ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚ + +PRを作る際ã¯ã€`npm run api`コマンドを実行ã—ã¦APIレãƒãƒ¼ãƒˆã‚’生æˆã—ã€å·®åˆ†ãŒã‚ã‚‹å ´åˆã¯ã‚³ãƒŸãƒƒãƒˆã—ã¦ãã ã•ã„。 +レãƒãƒ¼ãƒˆã‚’コミットã™ã‚‹ã“ã¨ã§ãã®ç ´å£Šçš„変更ãŒæ„図ã—ãŸã‚‚ã®ã§ã‚ã‚‹ã¨ç¤ºã™ã“ã¨ãŒã§ãã‚‹ã»ã‹ã€ä¸Šè¿°ã—ãŸã‚ˆã†ã«ãƒ¬ãƒãƒ¼ãƒˆé–“ã®å·®åˆ†ãŒå‡ºã‚‹ã“ã¨ã§å½±éŸ¿ç¯„囲をレビューã—ã‚„ã™ããªã‚Šã¾ã™ã€‚ + +### Codecov +ã“ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã§ã¯ã‚«ãƒãƒ¬ãƒƒã‚¸ã®è¨ˆæ¸¬ã«[Codecov](https://about.codecov.io/)ã‚’å°Žå…¥ã—ã¦ã„ã¾ã™ã€‚ã‚«ãƒãƒ¬ãƒƒã‚¸ã¯ã€ã‚³ãƒ¼ãƒ‰ãŒã©ã‚Œãらã„テストã§ã‚«ãƒãƒ¼ã•ã‚Œã¦ã„ã‚‹ã‹ã‚’表ã™ã‚‚ã®ã§ã™ã€‚ + +ã‚«ãƒãƒ¬ãƒƒã‚¸è¨ˆæ¸¬ã¯CIã§è‡ªå‹•çš„ã«è¡Œã‚ã‚Œã€ç‰¹ã«æ“作ã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。カãƒãƒ¬ãƒƒã‚¸ã¯[ã“ã“](https://codecov.io/gh/misskey-dev/mfm.js)ã‹ã‚‰è¦‹ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ + +ã¾ãŸã€å„PRã«å¯¾ã—ã¦ã‚‚ãã®ãƒ–ランãƒã®ã‚«ãƒãƒ¬ãƒƒã‚¸ãŒè‡ªå‹•çš„ã«è¨ˆç®—ã•ã‚Œã€ãƒžãƒ¼ã‚¸å…ˆã®ã‚«ãƒãƒ¬ãƒƒã‚¸ã¨ã®å·®åˆ†ã‚’å«ã‚“ã レãƒãƒ¼ãƒˆãŒCodecovã®botã«ã‚ˆã‚Šã‚³ãƒ¡ãƒ³ãƒˆã•ã‚Œã¾ã™ã€‚ã“ã‚Œã«ã‚ˆã‚Šã€ãã®PRをマージã™ã‚‹ã“ã¨ã§ã©ã‚Œãらã„ã‚«ãƒãƒ¬ãƒƒã‚¸ãŒå¢—åŠ ã™ã‚‹ã®ã‹/減少ã™ã‚‹ã®ã‹ã‚’確èªã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ + +## レビュイーã®å¿ƒå¾— +PRを作æˆã™ã‚‹ã¨ãã®ãƒ†ãƒ³ãƒ—レートã«è‰²ã€…書ã„ã¦ã‚ã‚‹ã®ã§èªã‚“ã§ã¿ã¦ãã ã•ã„。(ã“ã®ãƒ‰ã‚ュメントã«ç§»ã—ã¦ã‚‚ã„ã„ã‹ã‚‚?) +ã¾ãŸã€å¾Œè¿°ã®ã€Œãƒ¬ãƒ“ュー観点ã€ã‚‚æ„è˜ã—ã¦ã¿ã¦ãã ã•ã„。 + +## レビュワーã®å¿ƒå¾— +- ç›´ã—ã¦æ¬²ã—ã„点ã ã‘ã§ãªãã€è‰¯ã„点もç©æ¥µçš„ã«ã‚³ãƒ¡ãƒ³ãƒˆã—ã¾ã—ょã†ã€‚ + - 貢献ã™ã‚‹ãƒ¢ãƒãƒ™ãƒ¼ã‚·ãƒ§ãƒ³ã‚¢ãƒƒãƒ—ã«ç¹‹ãŒã‚Šã¾ã™ã€‚ + +### レビュー観点 +- ã‚»ã‚ュリティ + - ã“ã®PRをマージã™ã‚‹ã“ã¨ã§ã€è„†å¼±æ€§ã‚’生ã¾ãªã„ã‹ï¼Ÿ +- パフォーマンス + - ã“ã®PRをマージã™ã‚‹ã“ã¨ã§ã€äºˆæœŸã›ãšãƒ‘フォーマンスãŒæ‚ªåŒ–ã—ãªã„ã‹ï¼Ÿ + - ã‚‚ã£ã¨åŠ¹çŽ‡çš„ãªæ–¹æ³•ã¯ç„¡ã„ã‹ï¼Ÿ +- テスト + - 期待ã™ã‚‹æŒ¯ã‚‹èˆžã„ãŒãƒ†ã‚¹ãƒˆã§æ‹…ä¿ã•ã‚Œã¦ã„ã‚‹ã‹ï¼Ÿ + - 抜ã‘やモレã¯ç„¡ã„ã‹ï¼Ÿ + - 異常系ã®ãƒã‚§ãƒƒã‚¯ã¯å‡ºæ¥ã¦ã„ã‚‹ã‹ï¼Ÿ -- GitLab