Git リポジトリをフォークする〜U16-プログラミングコンテスト〜

イントロダクション

「フォーク」というのは、Githubのプロジェクト(リポジトリ)からソースを取得します。そして、変更した内容をGithubのリポジトリの所有者に対して変更を依頼する「プルリクエスト」を送信することができます。

「クローン」という操作も「フォーク」と同様に、編集したり自由に扱うことができます。「フォーク」との違いは、「元の上流リポジトリに影響を与えることなしに、プロジェクトに対して自由に変更を加えることができます。」というところです。※引用です。

ちょいと縁があり、北海道は旭川のプログラミングコンテストのプログラムに触れる機会があったのでメモがてらに記載いたします。

インデックス

  1. Gitでフォークする方法
  2. 実際に対象のリポジトリからフォークした時の手順
  3. Mac環境でのC++をコンパイル〜実行

U16-旭川プログラミングコンテストで使用する、GitリポジトリにあるCHaserServerをフォークしてMac用にコンパイル、実行してみようと思います。参照するリポジトリはこちらです。

CHaserサーバー起動画面

Forkする

あまりにも簡単だったので記載することがほとんどないのですが、以下に示します。(ちなみに下の画像はフォーク後です)

<手順>

  1. 一度、自分のGithubにログインしておく
  2. フォークしたいリポジトリへ移動
  3. 下の様な「Fork」と書いてあるボタンを押下する

※フォークした後なので非活性状態になっています。

これだけでフォークされました。

余談

U16-プログラミングコンテストは旭川で行われているという記載がありますが、昨年などは札幌の方で予選を行い、決勝戦を旭川で。。。という様な流れで行われました。

実際に中学生〜高校1年生かな?(16歳以下)が参加して行います。札幌大会の優勝者はハイスペックなパソコンをもらっていました。ちなみに自分はデモンストレーションで、高専の先生とバトルしました。

そして、プログラミングコンテストで使用する。競技用プログラムは「CHaserServer」というサーバーにアクセスしてプログラムでCool,「C」とHot「H」を操作して勝敗をつけます。ちょっとみづらいですが下に「C」と「H」がいます。

サーバーの起動ファイル(Windowsならexeファイル)を実行すると下の様な画面が出てきます。ここの「TCPユーザー」が実際にプレイヤーにあたります。

これを選択した状態で右にある「待機開始」ボタンを押下すると待機が始まります。つまり、クライアントアプリでのアクセスを待ちます。

クライアントアプリを作る

プログラミングコンテストの競技部門では、上記のサーバーを使用して(多分。。。)クライアントアプリでルールに則り勝敗を決します。

まぁダイヤモンドをとったり、相手を壁に挟んだり。。。ってな感じです。

実際のクライアント「H」のプログラムがこちらのZIPファイルです。

こいつをカスタムして、ゲームをやるもよし、競技に出場するのもよし!

そして、サーバーには、データを送信すれば良いので、クライアントアプリはC言語でも、Pythonでもなんでも良いです。自分はJavaで実装しました。

でわでわ。。。

Github 使い方〜リポジトリにライセンスを設定する〜

ライセンスの設定手順

ライセンスを取得したいリポジトリに移動する。

「Create New File」をクリック、テキストボックスに「LICENSE」と入力する

そして、ライセンスのテンプレートがあるのでそれをクリックする

今回はApache2.0を選択しました。そして「Review amd submit」をクリック

細かいところを入力して「Commit New file」をクリック

こんな感じでライセンスの設定(LICENSEファイルの作成)ができました。

でわでわ。。。



Github 使い方〜Issueでやることを整理〜

イントロダクション

「じゃんけんゲーム」のリリースを行うのに以下のものが必要だというので調査を行いました。下のものは参考サイトの内容を翻訳したものです(Google翻訳)。

キーポイント

  • ライセンスは、ライセンスが要求されているオープンソースプロジェクトでのみ使用できます。
  • 非商用のオープンソース開発に限定されています。
  • 1年間有効で年間更新可能です。
  • 申請するには、プロジェクトリーダーまたはコアコミッターになる必要があります。
  • プロジェクトは3ヶ月以上経過している必要があります。
  • プロジェクトは活発に開発中です。
  • プロジェクトは、商用サービスを提供したり、有料のソフトウェアバージョンを配布したりしてはなりません。
  • プロジェクトは、定期的に更新されるニュースセクションまたはプロジェクトの更新が掲載されているソーシャルネットワークアカウントへのリンクを含むWebサイトを持っています。
  • プロジェクトリリースは定期的にビルドを更新しました。

Gitを使用して、プロジェクトの進捗やどのように進めていくのか?を表示する方法を調べていたらここにたどり着きました。

Issueを作る

GitHub(ウェブページのこと)にログインすると画面の上部に下のようなものが見れると思います。

ここでIssueをクリックするしたのような画面が表示されます。(入力済みの場合)

ここではマークダウンが使用できるので使える人はMDで作成するとおしゃれに作成できると思います。

Issueにラベルをつける

画面の上部にある「Issue」をクリックすると下のような画面に変わります。

赤で囲っている部分をクリックすると下のような画面に移動します。

ちなみにInternetExplorerではラベルの追加ができませんでした。サポートしていないようです。

こんな感じで入力ができるので入力します。

そして、Issueの画面で各項目に入力します。

最後に、「Issue」画面のLabelの隣にあるMilestoneをクリックすると下のような画面が出ます。進捗が確認できるようです。

最終的にできた画面


Github 使い方〜プロフィールの設定〜

イントロダクション

じゃんけんゲームVer1.0を作成し、これをリリース(Google play store)しようと考えているのですが、GLUONのフリーライセンスを取得するのにプロジェクトサイトの作成が必須になると思われる。。。キーポイントと記載があったのでこのように思うわけです。。。

GLUONのフリーライセンスに関してはこのサイトに詳細が記載されています。(英語)

作成したGitのアカウントのページを開きます。自分の場合は「https://github.com/ZenryokuService」になります。プロフィールの入力部分は下のような部分になります。

編集(Edit)
 
編集後

 

上から順に。。。

  • BIO: 一言(コメント)を入力部分
  • URL; ブログなどへのURL
  • 所属 Git organizationがある場合は@<organization名>とすることでリンク可
  • 設定したくない項目は空で良い


<プロフィールの設定画面へ>

「Your profile」をクリックする

<最終的に作成したプロフィール>