👏
Juliaのパッケージ開発とGitHubとの連携
事前準備
- GitHubのアカウントを作成
- Localな環境で、Gitのユーザ名、メールアドレスを設定、GitHubアカウント名への紐付け
例
git config --global user.name "Hiroshi Shinaoka"
git config --global user.email h.shinaoka@gmail.com
git config --global github.user shinaoka
- GitHubへのSSHキー追加 公式ドキュメント
GitHub上でのレポジトリ作成
- まずはGitHubにログインします。
- ログインしたら右上にある「+」(プラス)マークをクリックして、ドロップダウンメニューから「New repository」を選択します。
- 次に以下の情報を入力します:
- Repository name: 作成するリポジトリの名前を入力します。名前はユニークである必要はありませんが、リポジトリの内容を簡単に理解できる名前が好ましいです。今回はMyPackageにしましょう
- Description (optional): リポジトリの詳細な説明を追加します。これはオプションで、リポジトリの内容を他のユーザーに説明するためのものです。
- Public/Private: リポジトリが公開(Public)されるか、非公開(Private)にされるかを選択します。公開リポジトリは誰でも見ることができますが、非公開リポジトリは選択したユーザーだけがアクセスできます。今回はPublicを選びます
- 追加設定が必要であれば、以下のオプションも選択できます (今回は選択しません):
- Initialize this repository with a README: これを選択すると、リポジトリにはREADMEファイルが自動的に作成され、そのファイルにはリポジトリの説明が書かれます。
- Add .gitignore: 特定のファイルやディレクトリをGitのトラックから除外するための.gitignoreファイルを追加します。ここでは使用しているプログラミング言語やツールに応じたテンプレートを選択できます。
- Add a license: リポジトリにライセンスを追加します。オープンソースプロジェクトでは一般的にライセンスが追加されます。
- 最後に「Create repository」ボタンをクリックします。
以上で、GitHub上で新しいリポジトリが作成されます。
Localでのレポジトリ作成と同期
上の操作を完了すると、以下の様にLocalなレポジトリとの連携が促されます。
今回は、"create a new repository on the command line"を試してみましょう。
前回までの記事で作った~/workspace/MyPackageに移動して、お勧めされている以下の一連のコマンドを実行しましょう。以下には適宜コメントを付けてあります。
echo "# MyPackage" >> README.md # READMEファイルを作成
git init # ~/workspace/MyPackage/.git以下に管理用のファイルが作成sareru
git add README.md # README.mdを"ステージ"する
git commit -m "first commit" # ステージされたファイル ("README.md")をcommitする
git branch -M main # 現在のブランチの名前をmainに変更
git remote add origin git@github.com:shinaoka/MyPackage.git # このレポジトリをGitHub上のレポジトリに連携させる
git push -u origin main # データを転送
では、GitHub上のMyPackageレポジトリの中身を確認してみましょう。無事README.mdファイルが登録されていますか?
他のファイルの登録
他の、src, test以下のファイルはどうなったのでしょうか?実は、明示的にそれらのファイルを"git add"して、localなレポジトリに登録した後、GitHubのレポジトリにpushする必要があります。以下で試してみましょう。Manifest.tomlをステージしないようにしましょう
- Project.toml, src, test以下の*.jlファイルをステージする
> git add Project.toml src/*.jl test/*.jl
- statusを確認。Gitが新しいファイルがcommitの対象として認識していることを確認
> git status
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: Project.toml
new file: src/MyPackage.jl
new file: test/runtests.jl
Untracked files:
(use "git add <file>..." to include in what will be committed)
Manifest.toml
notebook/
test/Project.toml
~/
- commitする
> git commit -m "Add project files"
[main e73c3cc] Add project files
3 files changed, 31 insertions(+)
create mode 100644 Project.toml
create mode 100644 src/MyPackage.jl
create mode 100644 test/runtests.jl
- commit logを確認
> git log
commit e73c3cc9efe452ff7769d6a0ff63287913ebefeb (HEAD -> main)
Author: Hiroshi Shinaoka <h.shinaoka@gmail.com>
Date: Mon May 29 11:48:12 2023 +0900
Add project files
commit 1071a85f2e166fc46e7c2082dbba24e20d33a5cc (origin/main)
Author: Hiroshi Shinaoka <h.shinaoka@gmail.com>
Date: Mon May 29 11:41:28 2023 +0900
first commit
- GitHub上のレポジトリへpush
> git push
X11 forwarding request failed on channel 0
Enumerating objects: 8, done.
Counting objects: 100% (8/8), done.
Delta compression using up to 8 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (7/7), 908 bytes | 908.00 KiB/s, done.
Total 7 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:shinaoka/MyPackage.git
1071a85..e73c3cc main -> main
演習問題
GitHub上にアップロードしたレポジトリを、localの他の場所にgit cloneしましょう。
そのレポジトリを使ってプロジェクト環境を構築し、テストが実行できることを確認しましょう。
ヒント: Pkg.instantiate()
Discussion