チュートリアルGitLabに貢献する

誰でもGitLabの開発に貢献することができます。

足りない機能を追加したいかもしれません。あるいは、改善したいUIのテキストに気づいたかもしれません。

このチュートリアルでは、GitLab Development Kit と GitLab コミュニティフォークを使って UI テキストと関連ファイルを更新する手順を説明します。この例に忠実に従うことでプロセスに慣れることもできますし、他の UI テキストを選んで更新することもできます。

ステップ

貢献するには、以下のことを行います:

  1. GitLab Development Kit を設定します。
  2. コードの更新
  3. 変更をコミュニティフォークにプッシュします
  4. マージリクエストを作成します。

前提条件

ローカルマシンで

  • 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のインストール

GDKをインストールするために約2時間を確保してください。すべてがスムーズにいけば、インストールにかかる時間は1時間程度です。

インストールがうまくいくように微調整が必要な場合もありますので、トラブルシューティングの時間も確保してください。大変な作業のように思えるかもしれませんが、GDKを動かした後は、より頻繁に、より簡単に貢献することができるようになります。

GDKをインストールするには:

  1. サポートされているプラットフォーム(MacOS、Ubuntuなど)を使用していることを確認してください。
  2. GDKをインストールするディレクトリを選択します。この場所にgitlab-development-kit というリポジトリが作成され、アプリケーションがインストールされます。
  3. コマンドラインからそのディレクトリに移動します。この例では、development ディレクトリを使用します。

    cd development
    
  4. 1行のインストール・コマンドを実行します:

    curl "https://gitlab.com/gitlab-org/gitlab-development-kit/-/raw/main/support/install" | bash
    
  5. メッセージWhere would you like to install the GDK? [./gitlab-development-kit] 、Enterを押してデフォルトの場所を受け入れます。

  6. メッセージWhich GitLab repo URL would you like to clone? 、GitLabコミュニティフォークを入力します:

    https://gitlab.com/gitlab-community/gitlab.git
    

インストールが実行されている間、表示されたメッセージをすべてコピーします。インストールに問題がある場合は、トラブルシューティングの一環としてこの出力を使うことができます。

インストールが完了したら:

  1. GDKがインストールされたディレクトリに移動します:

    cd gitlab-development-kit
    
  2. GDKを起動します:

    gdk start
    
  3. 提供されたURLを使ってGDKに接続してください。http://127.0.0.1:3000 のようなものです。
  4. ユーザー名は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インストールがある場合は、コミュニティフォークを使用するように更新してください。

  1. 既存のgitlab-development-kit/gitlab ディレクトリを削除してください。
  2. その場所にコミュニティフォークをクローンしてください:

    cd gitlab-development-kit
    git clone https://gitlab.com/gitlab-community/gitlab.git
    

成功したことを確認するには

  1. gitlab-development-kit/gitlab ディレクトリが存在することを確認します。
  2. 一番上のgitlab-development-kit ディレクトリに移動し、gdk stopgdk startを実行します。

エラーが発生した場合は、gdk doctor を実行してトラブルシューティングを行ってください。より高度なトラブルシューティングについては、トラブルシューティングのドキュメントを参照してください。

ステップ2:コードの変更

さて、ここからが楽しいところです。コードを編集してみましょう。

この例では、変更したいUIのテキストを見つけました。GitLab の右上にある自分のアバターを選択し、Preferences を選択しました。このテキストを変更したいと思います:

UI text

ページ上の他の設定はCustomize という単語で始まり、This setting allows you to の部分はスキップされています。このフレーズを他のフレーズと同じになるように更新します。

  1. gitlab-development-kit/gitlab ディレクトリで文字列This setting allows you to customize を検索してください。

    その結果、.haml ファイルが1つ、.md ファイルが2つ、.pot ファイルが1つ、.po ファイルがいくつか見つかりました。

  2. .haml ファイルを開いてください。このファイルにUIテキストがあります。
  3. 文字列を更新します。この場合、前の単語を削除customize し、単語を customize大文字のC で始めます。
  4. ファイルを保存してください。

成功したことを確認できます:

  • gitlab-development-kit/gitlab ディレクトリでgit status と入力すると、変更したファイルが表示されます:

             modified:   app/views/profiles/preferences/show.html.haml
    
  • GDKを表示しているウェブ・ブラウザを更新してください。変更内容が表示されるはずです。スクリーンショットを撮ってください。

    UI text

翻訳ファイルの更新

英語の UI 文字列は多くの言語にローカライズされています。これらの文字列は.pot ファイルに保存され、UI テキストを更新するたびに再生成する必要があります。

ローカライズファイルを自動的に再生成するには

  1. gitlab-development-kit/gitlab ディレクトリにいることを確認しましょう。
  2. 以下のコマンドを実行します:

    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で公開されています。機能を追加したり更新したりするときは、ドキュメントも更新しなければなりません。

  1. 機能のドキュメントを見つけるには、docsサイトを検索するのが一番簡単です。この場合、設定はこのドキュメントページに記載されています:

    https://docs.gitlab.com/ee/user/profile/preferences.html
    
  2. URLは、/doc ディレクトリにあるファイルの場所を示しています。この場合、場所は

    doc/user/profile/preferences.md
    
  3. ローカルの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 のメインリポジトリに反映させるための次のステップです。

  1. gitlab-development-kit/gitlab ディレクトリにいることを確認しましょう。
  2. ブランチを作成します。master ブランチで作業することはありません。代わりに、作業用のブランチを作成します。この例では、ブランチをui-updates と呼ぶことにします。

    git checkout -b ui-updates
    
  3. ステージングエリアにファイルを追加します。

    git add .
    
  4. コミットメッセージを用意します。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 を使うでしょう。詳しくは変更履歴をご覧ください。

  5. 変更をコミュニティフォークにプッシュします。同時に、そのフォークをあなたのアップストリームに設定し、将来貢献したときに同期するようにします。

    git push --set-upstream origin ui-updates
    

ステップ4: マージリクエストの作成

これで、コミュニティフォークの変更を GitLab のメインリポジトリにプッシュする準備ができました!

  1. GitLab.com のコミュニティフォークにアクセスしましょう。このようなメッセージが表示されるはずです:

    Create merge request banner

    Create merge request を選択します。このメッセージが表示されない場合は、左のサイドバーでCode > Merge requests > New merge request を選択します。

  2. ブランチ名を見てください。コミュニティフォークのブランチから GitLab リポジトリのmaster ブランチにマージするはずです。

    New merge request

  3. 情報を入力して、変更を保存を選択します。マージリクエストが完全でなくても心配しないでください。GitLab 関係者にレビューさせたくない場合は、Mark as draftチェックボックスを選択します。マージリクエストを作成した後でその内容に満足できない場合は、そのまま閉じることができます。

  4. 変更点タブを選択します。このように表示されます:

    Changes tab

    赤い文字が変更前のコードです。緑色は現在のコードを示しています。

  5. このマージリクエストに問題がなく、レビュープロセスを開始したい場合は、コメントに@gitlab-bot ready と入力し、[コメント] を選択します。

    GitLab bot ready comment

GitLab の担当者があなたのリクエストを見て、次のステップをお知らせします。

これで、GitLab に貢献したいときはいつでもgitlab-development-kit フォルダに移動してgdk updateを実行するだけです。そして、gitlab ディレクトリに変更を加え、フォークにプッシュします。

作業の途中で助けが必要な場合は、コメントに@gitlab-bot help と入力するか、Discordメンターセッションを開始してください。

リクエストの提出に貢献し、あなたの貢献に感謝します!