- ステップ
- 前提条件
- ステップ 1: GitLab Development Kit の設定
- ステップ2:コードの変更
- ステップ 3: あなたの変更をコミュニティフォークにプッシュします
- ステップ4: マージリクエストの作成
チュートリアルGitLabに貢献する
誰でもGitLabの開発に貢献することができます。
足りない機能を追加したいかもしれません。あるいは、改善したいUIのテキストに気づいたかもしれません。
このチュートリアルでは、GitLab Development Kit と GitLab コミュニティフォークを使って UI テキストと関連ファイルを更新する手順を説明します。この例に忠実に従うことでプロセスに慣れることもできますし、他の UI テキストを選んで更新することもできます。
ステップ
貢献するには、以下のことを行います:
前提条件
ローカルマシンで
- Gitがインストールされていることを確認します。(コマンドラインから、
git -v
と入力してください。結果が表示されれば、Gitがインストールされています)。 - ソースコードエディタをインストールするか、ファイルを編集するツールを決めます。
GitLab.comで:
- アカウントを作成します。正常にサインインできることを確認してください。
-
gitlab-community/community-members
グループ にアクセスし、Request accessを選択します。このアクションによって、GitLab コミュニティフォークにアクセスできるようになり、そこで変更を作成することになります。
ステップ 1: GitLab Development Kit の設定
GitLab Development Kit(GDK) はGitLabの内部バージョンで、自由に遊ぶことができます。自分で管理するGitLabのインストールのようなものです。機能をテストするためのサンプルプロジェクトが含まれており、管理者機能にアクセスすることができます。ローカルマシンで実行することもできますし、Gitpodを使ってリモートバージョンを実行することもできます。
GDKを使ったことがなく、複数回貢献する可能性がある場合は、インストールすべきです。すでにGDKを使用している場合は、コミュニティフォークを使用するように更新してください。
新しいGDKのインストール
GDKをインストールするために約2時間を確保してください。すべてがスムーズにいけば、インストールにかかる時間は1時間程度です。
インストールがうまくいくように微調整が必要な場合もありますので、トラブルシューティングの時間も確保してください。大変な作業のように思えるかもしれませんが、GDKを動かした後は、より頻繁に、より簡単に貢献することができるようになります。
GDKをインストールするには:
- サポートされているプラットフォーム(MacOS、Ubuntuなど)を使用していることを確認してください。
- GDKをインストールするディレクトリを選択します。この場所に
gitlab-development-kit
というリポジトリが作成され、アプリケーションがインストールされます。 -
コマンドラインからそのディレクトリに移動します。この例では、
development
ディレクトリを使用します。cd development
-
1行のインストール・コマンドを実行します:
curl "https://gitlab.com/gitlab-org/gitlab-development-kit/-/raw/main/support/install" | bash
-
メッセージ
Where would you like to install the GDK? [./gitlab-development-kit]
、Enterを押してデフォルトの場所を受け入れます。 -
メッセージ
Which GitLab repo URL would you like to clone?
、GitLabコミュニティフォークを入力します:https://gitlab.com/gitlab-community/gitlab.git
インストールが実行されている間、表示されたメッセージをすべてコピーします。インストールに問題がある場合は、トラブルシューティングの一環としてこの出力を使うことができます。
インストールが完了したら:
-
GDKがインストールされたディレクトリに移動します:
cd gitlab-development-kit
-
GDKを起動します:
gdk start
- 提供されたURLを使ってGDKに接続してください。http://127.0.0.1:3000 のようなものです。
- ユーザー名は
root
、パスワードは5iveL!fe
を使用してください。初回サインイン時にパスワードをリセットするよう促されます。
問題がある場合は、gitlab-development-kit/gitlab
ディレクトリに移動し、以下のコマンドを実行してみてください:
yarn install && bundle install
bundle exec rails db:migrate RAILS_ENV=development
gitlab-development-kit
フォルダーから、gdk doctor
を実行してみることもできます。
より高度なトラブルシューティングについては、トラブルシューティングのドキュメントを参照してください。
既存のGDKインストール
既存のGDKインストールがある場合は、コミュニティフォークを使用するように更新してください。
- 既存の
gitlab-development-kit/gitlab
ディレクトリを削除してください。 -
その場所にコミュニティフォークをクローンしてください:
cd gitlab-development-kit git clone https://gitlab.com/gitlab-community/gitlab.git
成功したことを確認するには
-
gitlab-development-kit/gitlab
ディレクトリが存在することを確認します。 - 一番上の
gitlab-development-kit
ディレクトリに移動し、gdk stop
とgdk start
を実行します。
エラーが発生した場合は、gdk doctor
を実行してトラブルシューティングを行ってください。より高度なトラブルシューティングについては、トラブルシューティングのドキュメントを参照してください。
ステップ2:コードの変更
さて、ここからが楽しいところです。コードを編集してみましょう。
この例では、変更したいUIのテキストを見つけました。GitLab の右上にある自分のアバターを選択し、Preferences を選択しました。このテキストを変更したいと思います:
ページ上の他の設定はCustomize
という単語で始まり、This setting allows you to
の部分はスキップされています。このフレーズを他のフレーズと同じになるように更新します。
-
gitlab-development-kit/gitlab
ディレクトリで文字列This setting allows you to customize
を検索してください。その結果、
.haml
ファイルが1つ、.md
ファイルが2つ、.pot
ファイルが1つ、.po
ファイルがいくつか見つかりました。 -
.haml
ファイルを開いてください。このファイルにUIテキストがあります。 - 文字列を更新します。この場合、前の単語を削除
customize
し、単語をcustomize
大文字のC
で始めます。 - ファイルを保存してください。
成功したことを確認できます:
-
gitlab-development-kit/gitlab
ディレクトリでgit status
と入力すると、変更したファイルが表示されます:modified: app/views/profiles/preferences/show.html.haml
-
GDKを表示しているウェブ・ブラウザを更新してください。変更内容が表示されるはずです。スクリーンショットを撮ってください。
翻訳ファイルの更新
英語の UI 文字列は多くの言語にローカライズされています。これらの文字列は.pot
ファイルに保存され、UI テキストを更新するたびに再生成する必要があります。
ローカライズファイルを自動的に再生成するには
-
gitlab-development-kit/gitlab
ディレクトリにいることを確認しましょう。 -
以下のコマンドを実行します:
tooling/bin/gettext_extractor locale/gitlab.pot
/locale
ディレクトリに.pot
ファイルが生成されます。
さて、gitlab-development-kit/gitlab
ディレクトリで、git status
と入力すると、両方のファイルがリストされるはずです:
modified: app/views/profiles/preferences/show.html.haml
modified: locale/gitlab.pot
ローカライゼーションの詳細については、internationalizationを参照してください。
ドキュメントの更新
GitLabのドキュメントはhttps://docs.gitlab.comで公開されています。機能を追加したり更新したりするときは、ドキュメントも更新しなければなりません。
-
機能のドキュメントを見つけるには、docsサイトを検索するのが一番簡単です。この場合、設定はこのドキュメントページに記載されています:
https://docs.gitlab.com/ee/user/profile/preferences.html
-
URLは、
/doc
ディレクトリにあるファイルの場所を示しています。この場合、場所はdoc/user/profile/preferences.md
-
ローカルの
gitlab
リポジトリのこの場所に行き、.md
ファイルと関連する画像を更新してください。
これでgit status
を実行すると、次のようなものができるはずです:
modified: app/views/profiles/preferences/show.html.haml
modified: doc/user/profile/img/profile-preferences-syntax-themes.png
modified: doc/user/profile/preferences.md
modified: locale/gitlab.pot
これらの変更のアクションを見るには、これらの変更がすでに行われたマージリクエストをチェックアウトできます。
ステップ 3: あなたの変更をコミュニティフォークにプッシュします
今度は、変更をコミュニティフォークにプッシュします。これは、変更を GitLab のメインリポジトリに反映させるための次のステップです。
-
gitlab-development-kit/gitlab
ディレクトリにいることを確認しましょう。 -
ブランチを作成します。
master
ブランチで作業することはありません。代わりに、作業用のブランチを作成します。この例では、ブランチをui-updates
と呼ぶことにします。git checkout -b ui-updates
-
ステージングエリアにファイルを追加します。
git add .
-
コミットメッセージを用意します。GitLab のコミットメッセージガイドラインはやや厳密です。安全のために、一般的なルールは、3語から5語、大文字で始まり、ピリオドで終わらないことです。
git commit -m "Updating UI text Standardizing the text on this page so that each area uses consistent language. Changelog: changed"
Changelog: changed
は、既存の機能を変更するためです。もし機能を追加するのであれば、Changelog: added
を使うでしょう。詳しくは変更履歴をご覧ください。 -
変更をコミュニティフォークにプッシュします。同時に、そのフォークをあなたのアップストリームに設定し、将来貢献したときに同期するようにします。
git push --set-upstream origin ui-updates
ステップ4: マージリクエストの作成
これで、コミュニティフォークの変更を GitLab のメインリポジトリにプッシュする準備ができました!
-
GitLab.com のコミュニティフォークにアクセスしましょう。このようなメッセージが表示されるはずです:
Create merge request を選択します。このメッセージが表示されない場合は、左のサイドバーでCode > Merge requests > New merge request を選択します。
-
ブランチ名を見てください。コミュニティフォークのブランチから GitLab リポジトリの
master
ブランチにマージするはずです。 -
情報を入力して、変更を保存を選択します。マージリクエストが完全でなくても心配しないでください。GitLab 関係者にレビューさせたくない場合は、Mark as draftチェックボックスを選択します。マージリクエストを作成した後でその内容に満足できない場合は、そのまま閉じることができます。
-
変更点タブを選択します。このように表示されます:
赤い文字が変更前のコードです。緑色は現在のコードを示しています。
-
このマージリクエストに問題がなく、レビュープロセスを開始したい場合は、コメントに
@gitlab-bot ready
と入力し、[コメント] を選択します。
GitLab の担当者があなたのリクエストを見て、次のステップをお知らせします。
これで、GitLab に貢献したいときはいつでもgitlab-development-kit
フォルダに移動してgdk update
を実行するだけです。そして、gitlab
ディレクトリに変更を加え、フォークにプッシュします。
作業の途中で助けが必要な場合は、コメントに@gitlab-bot help
と入力するか、Discordでメンターセッションを開始してください。
リクエストの提出に貢献し、あなたの貢献に感謝します!