From: NISHIMATSU Takeshi Date: 2007-08-23T06:48:47+09:00 Subject: [ruby-list:43923] [ANN] isi-1.1.3 released! 西松と申します。 isi-1.1.3をリリースしました。isiはISI社の巨大な学術論文データベー スのWeb of Scienceのタグのついた出力ファイルをBibTeX形式に変換す るRubyスクリプトです。ライブラリとしても使えます。平生LaTeXで学術 論文を書いていて、書誌情報をBibTeXで管理している人には便利なスクリ プトかもしれません。以前からisi.rbやisi2bibtex.rbとして公開してい たものです。 今回、小さなバグの修正といくつかのタグへの対応をしました。 プロジェクトホームページは http://isi-rb.rubyforge.org/ です。 http://rubyforge.org/projects/isi-rb からダウンロードできます。 また、gem化してrubyforge.orgに置かせてもらっているので、RubyGems ユーザの方は「gem install isi」だけで簡単にインストールできます。 蛇足ながらRubyForgeのsubversionを使い始めたときのメモを添付します。 ご参考まで。subversionの使い方でアドバイスをいただけたら幸いです。 ========================================================================== = 自分のプログラムisiをRubyForgeのsubversionのレポジトリ(repository)に登録する == 現状 http://d.hatena.ne.jp/secondlife/20061106/1162785661 を参考に、RubyForgeの アカウントは持っていて、プロジェクトのunix名isi-rbをもらってisiを公開していた。 自分のマシンの/home/t-nissie/ruby/isi/isi/以下で開発を行っていた。リリースは $ rake rdoc # rake package だけでうまくいかない場合に必要なことがある。 $ rake package で、1つ上のディレクトリ/home/t-nissie/ruby/isi/に isi-X.Y.Z/ isi-X.Y.Z.gem isi-X.Y.Z.rb* isi-X.Y.Z.tgz isi-X.Y.Z.zip のディレクトリとファイルができるのでそれをRubyForgeでリリースしていた。 ここでX.Y.Zはlib/isi.rbでに書かれているISI_RB_VERSION。 == 準備と練習 === ssh公開鍵の登録とssh-agentの起動 コミットなどのときに毎度毎度RubyForgeのパスワードの入力を促されて鬱陶しい。 まず、http://rubyforge.org/account/editsshkeys.php に行って公開鍵の ~/.ssh/identity.pub を登録しておく。~/.ssh/identity.pub を今まで使った ことがなくて、見当たらないならssh-keygen(1)で作ることができる。 次に、~/.ssh/config に Host rubyforge.org Protocol 1 と書いておく。 最後に、作業をするshellでssh-agentを起動する: $ ssh-agent $ ssh-add ~/.ssh/identity こうすれば、ssh-addのときにsshのパスフレーズを1回だけ聞かれるだけで、 以後そのセッションではRubyForgeのパスワードの入力が必要なくなる。 === EDITOR環境変数の設定 ログを書くときに使うエディタを設定しておくと吉。 $ export EDITOR=emacsclient コミットするときに --message (-m) を使えばエディタは起動されないけど。 === 練習 ローカルにレポジトリを作って練習するする: $ mkdir -p /home/t-nissie/tmp/repos $ svnadmin create /home/t-nissie/tmp/repos 以下のsvn+ssh://t-nissie@rubyforge.org/var/svn/isi-rbのかわりに file:///home/t-nissie/tmp/reposを使えばよい。練習になるし、subversion への理解が深まる。たとえば: $ svn mkdir file:///home/t-nissie/tmp/repos/isi -m 'subproject dir' == HELP! subversionのsvnのコマンドの使い方を知るには: $ svn help [コマンド] たとえば: $ svn help commit == ディレクトリの作成とインポート それでは本番。RubyForgeにもらったプロジェクト名はisi-rb。isiをサブプロ ジェクトとする。他のサブプロジェクトを作る予定はいまのところ無いが、念の ためサブプロジェクトとする。 $ svn mkdir svn+ssh://t-nissie@rubyforge.org/var/svn/isi-rb/isi -m 'subproject dir' $ svn mkdir svn+ssh://t-nissie@rubyforge.org/var/svn/isi-rb/isi/trunk -m 'subproject trunk' $ svn mkdir svn+ssh://t-nissie@rubyforge.org/var/svn/isi-rb/isi/tags -m 'subproject tags' $ svn mkdir svn+ssh://t-nissie@rubyforge.org/var/svn/isi-rb/isi/branches -m 'subproject branches' $ cd /home/t-nissie/ruby/isi/isi/ $ svn import svn+ssh://t-nissie@rubyforge.org/var/svn/isi-rb/isi/trunk -m 'Initial import' これでいままで書いていたファイルがtrunk以下に置かれる。以後、チェックア ウトで自分のマシンにできる作業コピーは一時的かつ従属的なもになる。 == チェックアウト方法 レポジトリのファイルをごそっと取ってくることをチェックアウトというらしい。 $ svn checkout svn+ssh://t-nissie@rubyforge.org/var/svn/isi-rb/isi チェックアウトでsvn+sshをつかえば、コミットのときに同じプロトコルが使われるんじゃなかろうか。 匿名でのチェックアウトは $ svn checkout svn://rubyforge.org/var/svn/isi-rb/isi もちろん、匿名でコミットはできない。 == コミットの方法 先のチェックアウトによってできた作業コピーに移動: $ cd isi/trunk 例えばREADMEを編集してdiffをとってみる: $ emacs README $ svn diff さっそくコミットする: $ svn commit -m 'README: Add hoge.' コミットしただけでは作業コピーは最新の状態にならないことを確認: $ svn log アップデートして作業コピーを最新の状態にする: $ svn update $ svn log コミッタが自分しかいないのでアップデートしてもほとんど何も起きないが、 先にコミットしたときのログメッセージが表示されるようになる。 == 新しいファイルの追加 たぶん $ emacs bin/isi2tohoku $ svn add bin/isi2tohoku $ svn commit -m 'bin/isi2tohoku: New file.' $ svn update たぶん。 == タグ(tag)の打ち方 たぶんtrunk/から $ rake clean $ cd .. $ svn copy trunk tags/isi-X.Y.Z たぶん。 ========================================================================== -- 西松毅