フィルタクラスをGitHubに公開する
■前回記事からの続き
JEPG画像の入出力に関する記事を書いた後、
mame-mame.hatenadiary.com
JPEG画像に対してフィルタ処理を実行する記事を書きました。
フィルタ処理用にフィルタクラスを定義しました。
mame-mame.hatenadiary.com
そして、フィルタクラスをライブラリ化して利用するように編集しました。
mame-mame.hatenadiary.com
①JPEG画像を取り扱うためのライブラリの取得
②JPEG画像を取得して画素値を抽出する
★画素値にフィルタをかける
③JPEG画像を新たに保存する
①⇒②⇒★⇒③
という処理の流れをC/C++で記述していました。
★を前回、ライブラリ化しました。
ライブラリ化する事で他のプロジェクトにも利用できます。
今回のテーマは、
フィルタクラスをGitHubに公開する
です。
■前置き:GitHubとは
Gitというリポジトリ管理システムのソフトウェアがあります。
Git上でソースコードを管理する事で、ソースコードの修正履歴を記録できます。
特に効果的な事は集団での編集作業です。
・誰かが編集中に別の誰かがファイル内容を編集してしまった。
・誰かが誤ってファイルを消してしまった。
・編集した内容に間違いがある事が分かり、前の状態に戻さなくて原ならない。
こういったケースにレポジトリ管理システムは効果を発揮します。
そしてGitHubはウェブ上で、そうした管理をしていく仕組みです。
決まった複数人とファイル編集をしても良し、
或いは全く知らない一般の方までコードを公開して編集権限を持たせるも良しです。
昨今のソフト開発はOSS利用が盛んです。
「車輪の再発明はしない」という言葉の通り、誰かが開発済みの物は完成物を利用してしまえば良いのです。
ソフト開発はこうしたOSSや協調の文化により加速度的に進化してきています。
今回は出来上がった(※稚拙な)ライブラリをGitHubに公開します。
ライブラリにする事で自身の他プロジェクトだけでなく、他人のプロジェクトでも転用可能となったからです。
■GitHubの公開方法
まずGitHubのアカウントを登録しましょう。
以下のサイトで新規アカウントを作成します。
github.com
次にGitをローカル上で管理/アップロードするための、
GitHub Desktopをダウンロードします。
desktop.github.com
GitHub Desktopで新しいレポジトリを作成します。
LocalPathで指定した場所にフォルダが作られます。
今回は、前回記事で作ったFilterLIBのコードなどをフォルダにコピーしていきます。
VS環境ですぐにビルドできるようにコードだけでなくビルド環境もコピーします。
今回、コピーしたのは以下ファイルです。
・FilterLIB.sln
・FilterLIB.vcxproj
・FilterLIB.vcxproj.filters
・Filter.h
・Filter.cpp
・stdafx.h
・stdafx.cpp
反対に、コピーしなかったのは以下ファイルです。
これらはビルド時に作成されるためアップの必要がないと判断しました。
・FilterLIB.vcxproj.user
・targetver.h
・Debugフォルダ
・Releaseフォルダ
フォルダにコピーすると、
GitHub DesktopのGUI表示にも同期されます。
ではこれらをGitHubにアップします。
まず、GitHub DesktopのGUI上でコミットを実施します。
SummaryとDescriptionに何等かの記載をしなければ、
Commit to masterが押下できない仕組みになっています。
「複数人で履歴管理する場合にこうした記述を実施するようにしましょう」
というメッセージなのでしょう。
次にCommitした内容をGitHubと共有できる形にします。
GitHub DesktopのGUIに「Fetch origin」ボタンがあります。
これを押下する事でGitHubへのアップロードが実行できます。
GitHub上で確認してみましょう。
作られているはずです。
ちなみに、この状態は上の写真の通り、「Private」設定となっています。
これを広く人に公開したい場合は
Repositories(今回で言えばFilter)をクリックし、
選択タブの「Setting」を選択。
Setting画面をずっと下スクロールしたら以下の選択肢があります。
Make publicを選択しましょう。
これで万事完了、どんどん出来上がったプロジェクトはアップしましょう。
■おわりに
今回は作ったライブラリをGitHubで外部公開しました。
上で万事完了と言いましたが、外部に公開するにはもっと多くの気にかけなければならない事があるはずです。
例えば、ReadMeで「このレポジトリの目的や使用方法、転載の可否」などを記載する事はした方が良いです。
これらはマナーに関わる項目だと思います。
人に使ってもらいたい内容はより良く整備をしましょう。
私自身、やり方が分からない部分が多いので、色々調べてやってみます。