English | 日本語
オープンソースへの貢献は、いくつかの方法で行うことができ、すべてが価値あるものです。これらは、あなたが貢献を準備する際に役立つガイドラインです。
以下の手順で、Yamada UI
への貢献を始められるようになります。
-
リポジトリをフォークします。
-
あなたのローカルにクローンします。
git clone https://github.com/<your_github_username>/yamada-ui.git
cd yamada-ui
pnpm install
を実行して、すべての依存関係とパッケージをセットアップします。このコマンドは、依存関係をインストールします。
開発プロセスを快適するために、ツールとシステムを用意しています。Yamada UI
はモノレポ構造であり、各コンポーネントは独立したパッケージです。
- PNPM パッケージと依存関係の管理
- Tsup パッケージのバンドル
- Storybook コンポーネントの迅速な開発とテスト
- Testing Library コンポーネントとフックのテスト
- Changeset 変更のドキュメンテーション・ログの生成、リリースの管理
pnpm install
: すべての依存関係とパッケージをセットアップし、モノレポ開発のためにすべての依存関係をシンボリックリンクします。pnpm storybook
: storybookサーバーを起動し、ストーリーを読み込みます。pnpm build
: すべてのコンポーネント・フックのパッケージに対してビルドを実行します。pnpm test
: すべてのコンポーネント・フックのパッケージに対してテストを実行します。pnpm gen:component
: Plopを使用して、テンプレートからコンポーネントのパッケージを作成します。- パッケージ名とコンポーネント名はケバブケースで入力してください。
- providerがtrueの場合、が使用するスタイルを含むプロバイダでラップされます。
- プロバイダーが
true
の場合、スタイルプロバイダーはchildren
をラップします。
pnpm gen:hook
: Plopを使用して、テンプレートからフックのパッケージを作成します。- パッケージ名とカスタムフック名はケバブケースで入力してください。
pnpm gen:tokens
: テーマのトークンを生成します。
テンプレートに従って、提供してください。
設計とサンプルAPIコードを提供してください。ロードマップに合わない提案や、説明がない提案はクローズします。
プルリクエストを作成する前に、あなたのコミットがこのリポジトリで使用されているコミット規約に準拠しているかどうかを確認してください。
コミットを作成する際は、次のカテゴリのいずれかを使用しながら、コミットメッセージで規約カテゴリ: あなたのコミットメッセージ
に従うことをお願いします。
feat / feature
: 完全に新しいコードや新機能を導入した場合fix
: バグを修正した変更の場合(可能であれば、詳細も記述する)refactor
:fix
でもfeat / feature
でもない、コード関連の変更をした場合docs
: 既存のドキュメンテーションの変更や新しいドキュメンテーションを作成した場合(例:READMEやJSDocを記述)build
: ビルドに関する変更、依存関係の変更、新しい依存関係の追加をした場合test
: テストに関する変更をした場合(新しいテストの追加や既存のテストの変更)ci
: 継続的インテグレーションの設定に関する変更をした場合(例:github actions、CIシステムなど)chore
: 上記のいずれにも当てはまらないリポジトリへの変更をした場合
Tip
詳しい仕様については、Conventional Commitsを確認するか、Angular Commit Message Guidelinesを確認してください。
-
リポジトリをフォークし、クローンします。
-
main
ブランチから新しいブランチを作成します。[タイプ/スコープ]という命名規則に従います。例えば、fix/accordion-hook
やdocs/menu-typo
などです。タイプ
はdocs
、fix
、feat
、build
などの標準的なコミットタイプのいずれかです。スコープ
は作業範囲を表す短い言葉です。 -
変更を行ったら、その変更のテストコードを追加してください。
pnpm test
またはpnpm test <package-name>
を実行して、すべてのテストが合格することを確認してください。更なるテストの情報はテストのためのヒントを確認してください。 -
pnpm changeset
を実行して、変更の詳細な説明を作成します。これは、更新を公開する際にチェンジログを生成するために使用されます。 Changesetについてさらに学ぶ -
また、jsxのスニペットをchangesetに提供する場合、スニペットの始まりで以下のようにしてライブプレビューをオフにしてください。
```jsx live=false
Note
CIの設定やPrettierなどの小さな変更を行った場合は、pnpm changeset add --empty
を実行して、空のchangesetファイルを生成し、変更を文書化することができます。
-
次に、コミット規約に従ってコミットします。
変更の確認
: コマンドのpnpm storybook
を実行すると、Storybookが起動します。Storybookのソースは、./stories
です。新しいコンポーネントの作成
: コマンドのpnpm gen:component
を実行すると、テンプレートからコンポーネントを作成し、依存関係もインストールします。既存のコンポーネントに機能を追加
: 追加後は、機能が分かるように対象のコンポーネントのストーリーを追加してください。新しいフックの作成
: コマンドのpnpm gen:hook
を実行すると、テンプレートからフックを作成し、依存関係もインストールします。既存のフックに機能を追加
: 追加後は、機能が分かるように対象のフックのストーリーを追加してください。
-
上記の全てのタスクを完了したら、変更をプッシュしてください。プッシュ後、プルリクエストのURLが生成されます。テンプレートに従ってリクエストを提出してください。また、プルリクエスト内のチェックを確認し、品質チェックが正常に完了していることを確認してください。問題がある場合、このプルリクエストはマージされません。
Yamada UI
のGitHubリポジトリにコードを寄贈することで、あなたの寄贈するコードはMITライセンスの下でライセンス付けされることに同意します。