about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2010-09-26 06:29:09 +0000
committerEric Wong <e@yhbt.net>2010-09-26 06:29:48 +0000
commit97e9a7e764f912fddea75409dd388eaf3abe6a73 (patch)
tree90236065a07630937a0d7cd1cc9ced4e5917dcc6
parent29bbb053277e9c054f1433c66a2e83ada44a5e8d (diff)
downloadsleepy_penguin-1.0.0.tar.gz
Should be ready for release
-rw-r--r--.document1
-rw-r--r--GNUmakefile2
-rw-r--r--README4
-rw-r--r--Rakefile19
-rw-r--r--sleepy_penguin.gemspec36
5 files changed, 57 insertions, 5 deletions
diff --git a/.document b/.document
index 52f77e5..5b24ce0 100644
--- a/.document
+++ b/.document
@@ -7,4 +7,3 @@ lib
 ext/sleepy_penguin/init.c
 ext/sleepy_penguin/eventfd.c
 ext/sleepy_penguin/timerfd.c
-TODO
diff --git a/GNUmakefile b/GNUmakefile
index dd6f8a9..8e3bfe3 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -144,6 +144,8 @@ release: verify package $(release_notes) $(release_changes)
         # in case of gem downloads from RubyForge releases page
         -rubyforge add_file \
           $(rfproject) $(rfpackage) $(VERSION) $(pkggem)
+        $(RAKE) raa_update VERSION=$(VERSION)
+        $(RAKE) publish_news VERSION=$(VERSION)
 else
 gem install-gem: GIT-VERSION-FILE
         $(MAKE) $@ VERSION=$(GIT_VERSION)
diff --git a/README b/README
index 47500b3..b50251d 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-= sleepy_penguin - Ruby event extensions for Linux
+= sleepy_penguin - Ruby I/O events for Linux
 
 sleepy_penguin provides access to newer, Linux-only system calls to wait
 on events from traditionally non-I/O sources.  Bindings to the eventfd,
@@ -8,6 +8,8 @@ timerfd, and epoll interfaces are provided.
 
 * Thread-safe blocking operations under both Ruby 1.8 and 1.9.
 
+* Mostly working under Rubinius
+
 * IO-like objects are backwards-compatible with IO.select.
 
 * Epoll interface is fork-safe
diff --git a/Rakefile b/Rakefile
index 5812156..3ac6130 100644
--- a/Rakefile
+++ b/Rakefile
@@ -103,8 +103,21 @@ end
 desc "read news article from STDIN and post to rubyforge"
 task :publish_news do
   require 'rubyforge'
-  IO.select([STDIN], nil, nil, 1) or abort "E: news must be read from stdin"
-  msg = STDIN.readlines
+  spec = Gem::Specification.load('sleepy_penguin.gemspec')
+  tmp = Tempfile.new('rf-news')
+  _, subject, body = `git cat-file tag v#{spec.version}`.split(/\n\n/, 3)
+  tmp.puts subject
+  tmp.puts
+  tmp.puts spec.description.strip
+  tmp.puts ""
+  tmp.puts "* #{spec.homepage}"
+  tmp.puts "* #{spec.email}"
+  tmp.puts "* #{git_url}"
+  tmp.print "\nChanges:\n\n"
+  tmp.puts body
+  tmp.flush
+  system(ENV["VISUAL"], tmp.path) or abort "#{ENV["VISUAL"]} failed: #$?"
+  msg = File.readlines(tmp.path)
   subject = msg.shift
   blank = msg.shift
   blank == "\n" or abort "no newline after subject!"
@@ -142,7 +155,7 @@ task :raa_update do
     :category_minor => 'System',
     :url => s.homepage,
     :download => 'http://rubyforge.org/frs/?group_id=8977',
-    :license => "Ruby's",
+    :license => "LGPL",
     :description_style => 'Plain',
     :description => desc,
     :pass => password,
diff --git a/sleepy_penguin.gemspec b/sleepy_penguin.gemspec
new file mode 100644
index 0000000..2fecd06
--- /dev/null
+++ b/sleepy_penguin.gemspec
@@ -0,0 +1,36 @@
+ENV["VERSION"] or abort "VERSION= must be specified"
+manifest = File.readlines('.manifest').map! { |x| x.chomp! }
+summary = File.readlines("README")[0].gsub(/\A=\s+\S+[^\w]+/, '').strip
+description = File.read("README").split(/\n\n/)[1].strip
+
+Gem::Specification.new do |s|
+  s.name = %q{sleepy_penguin}
+  s.version = ENV["VERSION"]
+
+  s.homepage = 'http://bogomips.org/sleepy_penguin/'
+  s.authors = ["sleepy_penguin hackers"]
+  s.date = Time.now.utc.strftime('%Y-%m-%d')
+  s.description = description
+  s.email = %q{sleepy.penguin@librelist.com}
+
+  s.extra_rdoc_files = File.readlines('.document').map! do |x|
+    x.chomp!
+    if File.directory?(x)
+      manifest.grep(%r{\A#{x}/})
+    elsif File.file?(x)
+      x
+    else
+      nil
+    end
+  end.flatten.compact
+
+  s.files = manifest
+  s.rdoc_options = [ "-t", summary ]
+  s.require_paths = %w(lib ext)
+  s.rubyforge_project = %q{rainbows}
+  s.summary = summary
+  s.test_files = Dir['test/test_*.rb']
+  s.extensions = %w(ext/sleepy_penguin/extconf.rb)
+
+  # s.license = %w(LGPL) # disabled for compatibility with older RubyGems
+end