12 KiB
このページでは、CodeRoad VS Code 拡張機能を使用して作成された freeCodeCamp チュートリアルやプロジェクトに貢献する方法を説明します。
How the Tutorials Work
Each of the freeCodeCamp tutorials that use CodeRoad has its own repo under the freeCodeCamp GitHub organization. それらはすべて learn- から始まります。 例えば、https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate/ です。
各チュートリアルリポジトリには、main ブランチと「バージョン」ブランチがあります。例えば、 v1.0.0 です。
main ブランチには、TUTORIAL.md と coderoad.yaml 2 つのメインファイルがあります。 TUTORIAL.md には、チュートリアルのすべての手順、ヒント、タイトルなどが含まれています。 coderoad.yaml には、どのコマンドを実行するか、どのファイルの変更を監視するか、どのブランチバージョンをステップに使用するかなど CodeRoad に対する指示が含まれています。
「バージョン」ブランチには、チュートリアルの各ステップにロードされるコミットが含まれています。 このブランチのコミットメッセージは特定のものでなければなりません。 最初のコミットには、メッセージに INIT が必要であり、初回レッスン前にロードするファイルがすべて含まれています。
後続のコミットメッセージは、main ブランチの TUTORIAL.md のステップ数と一致する必要があります。 例えば、ユーザーがステップ 10.1 に行くと、メッセージ 10.1 を含むコミットがロードされます。
バージョンブランチでコミットに変更を加えるには、変更したいコミットをリベースして編集する必要があります。 これにより Git の履歴が書き換えられるので、これらの種類のブランチには PR を受け入れられません。 バージョンブランチが freeCodeCamp リポジトリ上にある場合は、変更しないでください。
Warning
freeCodeCamp リポジトリにあるバージョンブランチに、変更を加えたりプッシュしたりしないでください。 常に新しいものを作成してください。
How to Contribute
必要条件
CodeRoad CLI ツール を npm install -g @coderoad/cli でインストールします。
最新バージョンにはいくつかの問題があります。 coderoad --version がインストール後に動作しない場合は、npm install -g @coderoad/cli@0.7.0 を使用して 0.7.0 にダウングレードしてください。
main に貢献する
この一連の手順は、main で 既存のレッスン に軽微な変更を加える PR のためのものです。 これは主に TUTORIAL.md ファイルのタイプミス、文法、ヒント、指示の変更または修正で構成されています。
レッスンの追加や削除を含むその他すべてについては、バージョンブランチの手順 に従ってください。 このために新しいバージョンブランチを作成する必要はありません。以下の手順に従って PR を作成できます。
Note
これらの変更には既存のバージョンブランチを使用します。 相当量のものであれば、自由に
CHANGELOG.mdに追加してください。 ほとんどの場合、良いコミットメッセージで動作するはずです。
tutorial.json ファイルを直接変更する必要はありません。 これは、CLI ツールで作成されます。
タイプミスや文法上のエラー修正等の軽微な変更の場合は、その変更をテストする必要はありません。
以下の手順に従って PR を作成します。この手順は、通常、周りのレッスンをコンテキストに使用していることを覚えておいてください。
git branch vX.X.X upstream/vX.X.Xを使用して、最新バージョンのブランチのコピーを作成します。このブランチをチェックする必要はありませんが、存在している必要があります。mainの新しいブランチを作成してチェックアウトします。- 変更を行い コミット します。 注意:
tutorial.jsonファイルを変更する必要はありません。TUTORIAL.mdに変更を加える必要があります。 coderoad buildを実行して、tutorial.jsonファイルを再作成します。update jsonでメッセージとして変更をコミットします。- PR を作成します。
Testing Changes on main
上記手順の後、main の変更をテストしたい場合は、次の手順に従います。
- rdb-alpha repo の手順に従ってコンテナを実行します。
- 新しいブランチの
tutorial.jsonファイルを使用してチュートリアルを開始します。
Reviewing PRs to main
上述のように、指示もしくは文法問題に関わる main のみを変更する PR をレビューする場合、TUTORIAL.md の変更は、tutorial.json の変更と一致する必要があります。
tutorial.json ファイルには、コミットハッシュやステップ / レベル ID の変更を含めないでください。 起動コマンドや、レベルコマンド、ファイルウォッチャーも変更すべきではありません。 例外はありますが、ステップに問題があれば、注意深く処理する必要があります。
通常、周りのレッスンをコンテキストに使用していることを覚えておいてください。指示が理にかなっていることを確認してください。
Working on Version Branch
Warning
注: freeCodeCamp リポジトリにあるバージョンブランチに、変更を加えたりプッシュしたりしないでください。 常に新しいものを作成してください。
Git の履歴が書き換えられるため、バージョンブランチ間で何が変更されたかを簡単に確認する方法はありません。 新しいバージョンブランチの使用を承諾するには、慎重な検討とテストが必要です。
これらの手順は、テスト、テストテキスト、ファイルのリセット、ステップの追加や削除など、「バージョン」ブランチを変更するためのものです。
新しいバージョンを作成するには、次の手順に従います。
- 最新の バージョンブランチを
git checkout -b vX.X.X upstream/vX.X.Xでチェックアウトします。 git checkout -b vX.X.Yで、そこから新しいブランチを作成し、バージョンをインクリメントします。- バージョンブランチを変更します。 チュートリアルの使い方については、CodeRoad ドキュメント を参照します。
git push -u origin vX.X.Yで、新しいブランチをフォークにプッシュします。mainブランチをチェックアウトします。mainから新しいブランチを作成します。 例:feat/version-X.X.Ycoderoad.yamlのuriをリポジトリのフォークに変更します。 これにより、あなたとレビュアーが freeCodeCamp リポジトリにプッシュする前に、テストできるようになります。 バージョンを、そのファイルの 2 つのスポットにある新しいブランチに変更します。 新しいバージョンの変更をCHANGELOG.mdに追加します。 その他必要な変更を行います。- メッセージ
feat: release version X.X.Y - <optional description>で、変更をコミットします。 coderoad buildを実行して、新しいtutorial.jsonファイルを作成します。- ファイルを追加してコミットします。
- フォークに変更をプッシュします。
- 以下の テスト手順 に従って変更をテストします。 追加の変更を行い、先ほどと同様にコミットします。追加の変更がなければ、残りの手順に進みます。
- 新しい
feat/version-X.X.Yブランチを使用してmainに PR を作成します。version X.X.Y ready for reviewのタイトルを付けます。 これはマージされません。新しいバージョンが準備ができていることをレビューアーに知らせるためのものです。 - レビュアーのためにそこに残してください。
Testing Changes to a Version Branch
- rdb-alpha repo の手順に従ってコンテナを実行します。
- 変更があるフォークの
tutorial.jsonファイルを使用してチュートリアルを開始します。mainブランチ ではなく、feat: version-X.X.Yブランチのファイルを使用します。
Pushing a New Version
新しいバージョンをプッシュする前に、ユーザーのフォークで新しい feat/version-vX.X.Y (main にマージされる) ブランチを表示してください。 新規変更を含む CHANGELOG.md ファイルに追加があり、coderoad.yaml の 2 つのスポットのバージョンが新しいバージョンブランチと一致していることを確認してください。
freeCodeCamp リポジトリへの書き込みアクセス権を有しており、CHANGELOG と coderoad.yaml ファイルが検証済で、上記手順を使用して変更もテスト済みであり、チュートリアルの新しいバージョンをブッシュしたい場合は、下記を実行してください。
Warning
留意点: freeCodeCamp リポジトリにあるバージョンブランチに変更を加えたりプッシュしたりしないでください。 常に新しいものを作成してください。
- 新しい変更が存在する場所へのリモートがない場合、
git remote add <users_fork>を使用してユーザーのフォークへのリモートを作成します。 - 新しいブランチと同じ local ブランチ名を削除します。 おそらく、
vX.X.Yまたはfeat/version-X.X.Yいずれかの名前です。 - 新しいバージョンブランチを
git checkout -b vX.X.Y <remote>/vX.X.Yでチェックアウトします。 git push -u upstream/vX.X.Yで freeCodeCamp リポジトリに新しいバージョンのブランチをプッシュします。 新しいtutorial.jsonファイルでmainを更新する前に、新しいブランチをプッシュする必要があります。git checkout -b feat/version-X.X.Y <remote>/feat/version-X.X.Yで、mainにマージされるユーザーブランチをチェックアウトします。coderoad.yamlのuriを freeCodeCamp リポジトリに戻します。- 変更を追加してコミットします。
coderoad buildを実行して、新しいtutorial.jsonファイルを作成します。- ファイルを追加してコミットします。
git push -u origin/feat/version-X.X.Yでフォークに変更をプッシュします。- freeCodeCamp リポジトリで
mainにPRを作成します。 - 問題がない場合は、それをマージするか残して、レビューを依頼します。
- PR がマージされた後、rdb-alpha repo の指示に従ってチュートリアルを開き、正しく読み込まれていることと、いくつかのステップが実行できることを確認します。
- Finally, if any PRs for this version exist, close them
How to Revert to a Previous Version
- Create a new branch off of the latest
mainwithgit checkout -b revert/to-version-X.X.X - このブランチにおいて、元に戻したいバージョン以降のコミットをすべて元に戻します。 例えば、次のようなコミットです。
fix: typo
release: version 1.0.1
fix: typo
release: version 1.0.0
v1.0.0 に戻したい場合は、 release: version 1.0.1 以降からすべてのコミットを元に戻します。
- PR を作成します。
revert: to version X.X.Xのタイトルを付けます。