Matthewの備忘録

忘れたときはここを見ろ。何か書いてある。

Sapphire #3 : githubにガワだけのgemをおいた

githubに何もできない「ガワ」だけのgemをおいた。https://github.com/Matthew238/sapphire-exp-envに置いてある。これから、iseqを依存させたり、サンプルのSapphireプロトタイプを載せたいと思う。

jewelerを使ったgemの作成方法を詳しく書こうと思ったが、大半はgithubに使い方が書いてあるので、かいつまんでおこう。

  1. githubにアカウントを作る。
    • 今回のような規模でプログラムソースが300MB以上になるのってそうそうないから、無料のでよい。
  2. rubygems.orgでもアカウントを作る。
    • つくっておくと、gem install sapphire-exp-envでインストールできる。
  3. Linux/Ubuntuなどの場合、gitは当然のこと、git-core、 git-gui、git-docなどのパッケージも必要に応じてインストールしておく。
  4. 当然jewelerもインストールしておく: gem install jeweler
    • rvmを使っているときは、使いたいgemsetを指定し、作業専用ディレクトリをつくり、.rvmrcも設定しておくとよい。
  5. sshの鍵を用意する。
    1. cd ~/.ssh
    2. すでに鍵がある場合は、一旦鍵を別のところに退避しておく。
    3. $ ssh-keygen -t rsa -C "your_email@youremail.com"
    4. ~/.sshに作成されたir_rsa.pubをgithubサイトのssh keyを登録するところに貼り付け保存する。
    5. ssh -T git@github.com を実行して接続テスト。
  6. ~/.gitconfigの作成。
    1. git config --global user.name "Firstname Lastname"
    2. git config --global user.email "your_email@youremail.com"
    3. git config --global github.user username
      • usernameはgithubにログインするときのusername
    4. git config --global github.token 0123456789yourf0123456789token
      • tokenはgithubの自分の情報を管理する中のAccount Adminに表示されている。
  7. githubのwebで"New Repository"を押して先にリポジトリを作成しておく。
  8. リポジトリにプッシュするファイル群を作成しておく:jeweler --create-repo sapphire-exp-env
    • rspecを利用するときはjeweler --rspec --create-repo atnd4r
  9. rake -Tを実行してエラーが出ないことを確認する。
    • エラーがでたら対処する。おそらくbundle installを実行しろだの、gemが足りないだの言われることが多い。
  10. バージョンファイルを設定する:rake version:write MAJOR=0 MINOR=1 PATCH=0
  11. とりあえず最初のバージョンのgemをローカルないだけの環境を使ってインストール:rake install または sudo rake install
  12. インストールできたら、とりあえず0.1.0をリリース:rake release
    • ここでrubygemsのアカウント情報を尋ねられるので、入力
  13. 後はRakefileのjewelerのインスタンスブロックに、gemの簡単な説明や詳細な説明に"TODO"と書かれているので、編集。
    • これはcommit/releaseする前にやっておいてもよい。
  14. 開発、追加・変更・削除、コミット、バージョン変更、gemをリリースの繰り返し。

ファイルが増えてgit add . & git commitしてない場合は、gemとgithubに反映されないので注意。githubにはソースとgemが、rubygems.orgにはgemだけがアップされる。

(どこかまちがっていそうだ)