RubyGems パッケージの作り方 - rubyforge 登録まで

日本語の解説で RubyGems パッケージの作り方や rubyforge 登録までの一連の方法が書いてあるところを見かけたことがないため、エントリーにしてみます。なれると割と簡単です。

優しい RubyGems パッケージの作り方

newgem コマンドでのひな形作成

http://drnicwilliams.com/2006/10/11/generating-new-gems/
perl  module-starter CPAN 便gem  newgem 
使
# gem install newgem

 newgem  newgem 
$ newgem packagename
creating: packagename
creating: packagename/CHANGELOG
creating: packagename/README
creating: packagename/lib
〜以下略〜

 cd packagename  rake package  gem 
$ rake package
(in /home/gorou/tmp/ruby/gem/packagename)
rm -r .config
〜中略〜
  Successfully built RubyGem
  Name: packagename
  Version: 0.0.1
  File: packagename-0.0.1.gem
mv packagename-0.0.1.gem pkg/packagename-0.0.1.gem

 pkg  gem  tar  package 
 rubyforge packagename  rubyforge  unix ()

ひな形のカスタマイズ


 lib test README  Rakefile 
AUTHOR = "secondlife"
EMAIL = "your contact email for bug fixes and info"
DESCRIPTION = "description of gem"
RUBYFORGE_PROJECT = "packagename"


#s.add_dependency('activesupport', '>=1.3.1')
#s.required_ruby_version = '>= 1.8.2'

 ActiveRecord  ActiveSupport 使 gem 
s.add_dependency('activerecord')
s.add_dependency('activesupport')

 RubyGems 

rubyforge への Package 登録の方法


rubyforge  sourceforge  ruby BTS 


gem 

web  ( http://hatenaapigraph.rubyforge.org/ )

svn/cvs 


 svn  checkout/commit gem 

ユーザ登録

まず https://rubyforge.org/account/register.php からユーザ登録をしましょう。ログイン名は unix のユーザアカウントにもなります。

プロジェクトの登録

http://rubyforge.org/register/
から登録を行います。

Project full name

プロジェクト名です。Hatena API Graph とかそういう。これは後からでも変えられ(たしか)ます。

Project Purpose And Summarization

これはたぶん rubyforge 管理している人がプロジェクトの 許可/拒否 するのに使うところなので熱い思いを込めて書きましょう。
ちなみにいままで自分が申請したプロジェクトはほぼ一行の適当サマリーでしたがすべて通ったので、適当でも良さそうです(マテ)。

License

適当なライセンスを選びましょう。

Project Public Description

概要です。後からでも変えられます。

Project Unix Name

プロジェクトの unix アカウントの名前です。たとえば example で登録すると、もらえるサブドメインが example.rubyforge.org になったり、svnレポジトリが /var/svn/example になったりしますので割と慎重に決めましょう。

SCM

 CVS  subversion SVN 

 submit 

ssh の公開鍵の登録


rubyforge 使 ssh  subversion  svn+ssh  ssh 便
 scp  username@rubyforge.org:.ssh/authorized_keys 

subversion レポジトリのチェックアウト


 rubyforge  subversion 使

svn co svn+ssh://secondlife@rubyforge.org/var/svn/example ./

 ssh-agent  keychain 使
svn co svn://rubyforge.org/var/svn/example ./

 svn 

gem パッケージのアップロード

それでは rake package などで作成した gem パッケージをアップロードしてみましょう。プロジェクトページから右上の「ファイル」を選び、「To create a new release click here.」をクリックするするとアップロードの画面が表示されます。
そこで適当に入力して ( FileType は .gem にすることを忘れずに!)アップロードし、少したつと gem install packagename で登録したパッケージが rubyforge から gem コマンドでインストールできるようになります。

web へのコンテンツのアップロード


rubyforge  http://hatenaauthapi.rubyforge.org/  scp rdoc 
 Rake::RubyForgePublisher 使Rakefile 
Rake::RDocTask.new do |rdoc|
  rdoc.rdoc_dir = 'html'
  rdoc.options += RDOC_OPTS
  rdoc.template = "#{ENV['template']}.rb" if ENV['template']
  if ENV['DOC_FILES']
    rdoc.rdoc_files.include(ENV['DOC_FILES'].split(/,\s*/))
  else
    rdoc.rdoc_files.include('README', 'CHANGELOG')
    rdoc.rdoc_files.include('lib/**/*.rb')
  end
end

desc "Publish to RubyForge"
task :rubyforge => [:rdoc, :package] do
  Rake::RubyForgePublisher.new(RUBYFORGE_PROJECT, 'rubyforgeのアカウント名(secondlifeとか)').upload
end


rake rubyforge

 rdoc  scp 

 rubyforge  rubyforge