packnga 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -76,4 +76,5 @@ end
76
76
 
77
77
  Packnga::ReleaseTask.new(spec) do |task|
78
78
  task.index_html_dir = "../rroonga/doc/html"
79
+ task.changes = File.read("doc/text/news.textile").split(/^h2\.\s(.*)$/)[2]
79
80
  end
@@ -1,5 +1,21 @@
1
1
  h1. NEWS
2
2
 
3
+ h2. 0.9.3: 2011-09-22
4
+
5
+ h3. Improvements
6
+
7
+ * Printed newline after getting password.
8
+ * Added task "release:rubyforge:news:post" to post news to RubyForge.
9
+
10
+ h3. Changes
11
+
12
+ * Changed name of tasks for update po file for each languages.
13
+ (For example, "translate:po:ja:update" was changed to "translate:po:update:ja".)
14
+
15
+ h3. Fixes
16
+
17
+ * Applied version number to tag message instead of "version".
18
+
3
19
  h2. 0.9.2: 2011-08-29
4
20
 
5
21
  h3. Improvements
@@ -0,0 +1,295 @@
1
+ h1. リリース手順
2
+
3
+ h2. news.textileに前回リリースからの変更点のまとめ
4
+
5
+ 前回のリリース時から現在までの変更点をnews.textileにまとめるため、下記コマンドを実行してgitのコミットログを表示する。
6
+
7
+ <pre>
8
+ $ git log -p --reverse (前回のリリースバージョン)..
9
+ </pre>
10
+
11
+ ログを"Author:"で検索しながら、ユーザにとって知る必要があるもの(ユーザに見える情報)のコミットログのみを抜き出す。
12
+ その動詞を過去形にし、頭文字を大文字にする。
13
+ それらログをそれぞれを次のようにまとめる。
14
+ 機能などに新しく追加されたものに関してはImprovement,
15
+ 動作の変更などはChanges,
16
+ バグの修正など前バージョンまでにあった問題を修正したものはFixesに記述する。
17
+ また、コミットログの行末に[人名]がある場合はその人名をThanks以下に書く。
18
+ この作業をリリース予定日よりも前に行った場合は、目に見えるところにコミットIDをメモしておく。
19
+ news.textileだと次のrake reference:po:updateで翻訳対象になってしまいノイズになってしまうので注意すること。
20
+
21
+ h3. news.textileの1リリース分のテンプレート
22
+
23
+ <pre>
24
+ h2. (リリースするバージョン): リリース日(yyyy-mm-dd)
25
+
26
+ h3. Improvements
27
+
28
+ *
29
+
30
+ h3. Changes
31
+
32
+ *
33
+
34
+ h3. Fixes
35
+
36
+ *
37
+
38
+ h3. Thanks
39
+ </pre>
40
+
41
+ h2. 日本語訳の作成
42
+
43
+ 下記コマンドを実行してja.poを更新する。
44
+
45
+ <pre>
46
+ $ rake reference:po:update
47
+ </pre>
48
+
49
+ その後、ja.poを開いて、各msgid(コミットログ)に対応するmsgstrにコミットログの和訳を作成する。
50
+ fuzzyを検索して見つかったらC-iで消す。
51
+
52
+ h2. リファレンスの確認
53
+
54
+ 下記コマンドを実行して、リファレンスの翻訳を行う。
55
+
56
+ <pre>
57
+ $ rake reference:translate
58
+ </pre>
59
+
60
+ doc/reference/ja/file.news.htmlなどのja.poを編集した箇所を確認する。
61
+
62
+ h2. バージョンとリリース日の更新
63
+
64
+ 下記コマンドを入力して、プロジェクトページ(html/index.html、html/index.html.ja)のrroongaの項にある最新バージョンとリリース日をそれぞれ今回のリリースに合わせたものに更新する。
65
+
66
+ <pre>
67
+ $ rake release:info:update OLD_VERSION=(前回リリース時のバージョン) OLD_RELEASE_DATE=(前回リリース日) RELEASE_DATE=(今回のリリース日)
68
+ </pre>
69
+
70
+ TODO:別パッケージで同じ日付があった場合にそちらも更新されてしまうので、バージョンと日付どちらも当てはまる部分のみ更新するようにしたほうがいい。
71
+
72
+ h2. gemパッケージの作成
73
+
74
+ 下記コマンドを打ってアップロード用のgemパッケージをビルドする。
75
+
76
+ <pre>
77
+ $ make clean
78
+ $ ruby1.8 -S rake build
79
+ </pre>
80
+
81
+ rroongaの場合、ruby1.9.1ではパースできないオブジェクトがあるためruby1.8で作成する。
82
+ TODO: YAMLの設定ファイルを直して1.9.1でやる
83
+
84
+ h2. gemパッケージの動作確認
85
+
86
+ そのgemパッケージの動作を確認するため、下記コマンドを打ってローカル環境にインストールする。
87
+
88
+ <pre>
89
+ $ gem1.9.1 install pkg/(パッケージ名)-(今回リリースバージョン番号).gem --user-install
90
+ </pre>
91
+
92
+ インストールが成功すると/home/(ユーザ名)/.gem/ruby/1.9.1/gems/(パッケージ名)-(今回リリースバージョン番号)/にインストールされる。
93
+ このディレクトリに移動して、テストを実行し動作を確認する。
94
+
95
+ <pre>
96
+ $ NO_MAKE=yes ruby1.9.1 test/run-test.rb
97
+ </pre>
98
+
99
+ h2. news.textileの再まとめ
100
+
101
+ news.textileの行頭にコミットIDが残っている場合、
102
+ 下記コマンドを実行してログを表示する。
103
+
104
+ <pre>
105
+ git log --reverse -p (前回のリリース時のバージョン)..(残っていたコミットID)
106
+ </pre>
107
+
108
+ 上記ログを"Author:"で検索しながら、ユーザにとって知る必要があるもの(ユーザに見える情報)のコミットログのみを抜き出す。
109
+ その動詞を過去形にし、頭文字を大文字にする。
110
+ それらログをそれぞれを次のようにまとめる。
111
+ 機能などに新しく追加されたものに関してはImprovement,
112
+ 動作の変更などはChanges,
113
+ バグの修正など前バージョンまでにあった問題を修正したものはFixesに記述する。
114
+ また、コミットログの行末に[人名]がある場合はその人名をThanks以下に書く。
115
+
116
+ その後、下記コマンドを実行してja.poを更新する。
117
+
118
+ <pre>
119
+ $ rake reference:po:update
120
+ </pre>
121
+
122
+ その後、ja.poを開いて、各msgid(追加したコミットログ)に対応するmsgstrにコミットログの和訳を作成する。
123
+ fuzzyを検索して見つかったらC-iで消す。
124
+
125
+ h2. これまでの変更をpush
126
+
127
+ ここまでに行った変更をcommitしてgit pushする。
128
+ h2. リリースバージョンのタグを作成
129
+
130
+ 下記コマンドを入力して、今回リリースするバージョンのタグを打ってgit pushする。
131
+
132
+ <pre>
133
+ $ rake release:tag
134
+ $ git push --tag
135
+ </pre>
136
+
137
+ h2. rubygems.orgにパッケージをアップロード
138
+
139
+ 下記コマンドを実行してパッケージをアップロードする。
140
+
141
+ <pre>
142
+ $ ruby1.8 -S rake gemcutter:release
143
+ </pre>
144
+
145
+ h2. rubyforgeにパッケージをアップロード
146
+
147
+ 下記コマンドを実行してアップロードする。
148
+
149
+ <pre>
150
+ $ ruby1.8 -S rake release:rubyforge:upload
151
+ $ ruby1.8 -S rake release:reference:publish
152
+ $ ruby1.8 -S rake release:html:publish
153
+ </pre>
154
+
155
+ rroonga以外の場合、index.html関連はrake release:html:publishでアップロードされないので、rroonga側からアップロードする。
156
+
157
+ h2. メーリングリストにリリースの周知
158
+
159
+ メーリングリストにリリースした旨を書いたメールを流す。
160
+ 日本語の他、英語のメーリングリストにもリリースした旨を英語で書いたメールを流す。
161
+
162
+ h3.日本語でのメールの具体例
163
+
164
+ 吉原です。
165
+
166
+ (最新バージョンをリリースしたことを書く)
167
+ groongaのRubyバインディングrroonga1.2.3をリリースしました。
168
+ (rroongaのインデックスページのURL)
169
+ http://groonga.rubyforge.org/index.html.ja#about-rroonga
170
+
171
+ (ソフトウェアの概略)
172
+ rroongaはRubyらしい書き方でgroongaを操作できることを重視しています。
173
+ 同時に、groongaの速度をそのまま生かすことも大事にしています。
174
+
175
+ (前回リリースから今回リリースまでに変更された点のうち、ユーザにとって重要なものを書く)
176
+ 1.2.1からの変更された点としては、ドキュメントの一部英訳化、リファ
177
+ レンスのパスの修正などを行いました。また、rroongaをインストールし
178
+ ようとした際、groongaがないと自動でインストールする機能が復活しま
179
+ した。
180
+
181
+ (コマンドなどのインストール方法)
182
+ インストール:
183
+ % sudo gem install rroonga
184
+
185
+ (チュートリアルページのURL)
186
+ irbを使ったrroongaのチュートリアルはこちらにあります。
187
+
188
+ http://groonga.rubyforge.org/rroonga/ja/file.tutorial.html
189
+
190
+ (http://groonga.rubyforge.org/rroonga/ja/file.news.htmlを見て、前回リリース時からの変更点を書く)
191
+ 1.2.1からの変更点は以下の通りです。
192
+
193
+ 1.2.3: 2011-06-27
194
+
195
+ 修正
196
+ gemパッケージに含まれてしまったオブジェクトファイル(*.o)を削除。
197
+ 一部のリファレンスマニュアルの文字化けを修正。
198
+
199
+ 1.2.2: 2011-06-27
200
+
201
+ 改良
202
+ 英語版の「開発者向け情報」ページを作成。
203
+ "html:publish"タスクと"publish"に関しての説明を追加。
204
+
205
+ 変更
206
+ Groonga::Record#attributesが重複したレコードが現れた際に
207
+ 同じattributesオブジェクトを返すようにした。
208
+ Groonga::Record#attributesにドキュメントを追加。
209
+ 「開発者向け情報」ページ内にあるドキュメント作成ツールを変更。
210
+ NEWS*.rdocとtutorial.texttileをディレクトリdoc/text/に移動。
211
+
212
+ 修正
213
+ インデックスページにある「チュートリアル」ページへのリンクを修正。
214
+ インデックスページにある英語版「チュートリアル」ページへのリンクを修正。
215
+ 新しいgroongaのダウンロードURLに対応。 [mallowlabs]
216
+
217
+ 感謝
218
+ mallowlabsさん
219
+
220
+ h3. 英語でのメールの具体例
221
+
222
+ <pre>
223
+ Everyone,
224
+
225
+ (rroongaの再榛バージョンをリリースしたことを書く)
226
+ We relesed rroonga 1.2.3.
227
+
228
+ (インデックスページのURLを書く)
229
+ http://groonga.rubyforge.org/#about-rroonga
230
+
231
+ (rroongaの説明)
232
+ rroonga is the library which ruby-binding for grronga.
233
+
234
+ (前回リリース時からの変更点のうち、ユーザにとって大事なものを書く)
235
+ Since ver.1.2.1 was released, we translated some documents
236
+ from Japanese to English, and fixed pathes in reference-manual.
237
+ Thanks to mallowlabs, when installing rroonga without groonga
238
+ installed, grronga is automatically installed.
239
+
240
+ (インストール方法を書く)
241
+ How to install:
242
+ % sudo gem install rroonga
243
+
244
+ (チュートリアルについてのURLなどを書く)
245
+ There is the tutorial of rroonga with irb:
246
+
247
+ http://groonga.rubyforge.org/rroonga/en/file.tutorial.html
248
+
249
+ (news.textileから今回リリースのために書いた部分をコピーする)
250
+ Please see below changes since ver.1.2.1.
251
+
252
+ == 1.2.3: 2011-06-27
253
+
254
+ === Fixes
255
+
256
+ * remove object files in gem packages.
257
+ * fix charactor corruption in reference.
258
+
259
+ == 1.2.2: 2011-06-27
260
+
261
+ === Improvements
262
+
263
+ * created "Developers" page in English.
264
+ * added description for tasks of "html:publish" and "publish".
265
+
266
+ === Changes
267
+
268
+ * Groonga::Record#attributes return same attributes object for duplicate records.
269
+ * added document for Groonga::Record#attributes.
270
+ * changed tool name in document page for creating document.
271
+ * moved NEWS*.rdoc and tutorial.texttile to doc/text/.
272
+
273
+ === Fixes
274
+
275
+ * fixed the tutorial path in index page.
276
+ * fixed the path of tutorial in index page in English.
277
+ * follow the groonga downlowd URL change. [mallowlabs]
278
+
279
+ === Thanks
280
+
281
+ * mallowlabs
282
+
283
+ --
284
+ (名前とメールアドレス)
285
+ yoshihara
286
+ (yoshihara at clear-code.com)
287
+ </pre>
288
+
289
+ h2. rubyforgeのニュースを更新
290
+
291
+ rubyforgeのpost_newsコマンドを使ってrubyforgeの最新ニュースを更新する。
292
+
293
+ h2. 次回リリース時のバージョン番号の設定
294
+
295
+ ext/groonga/rb-grn.hにある、RB_GRN_MAJOR_VERSION,RB_GRN_MINOR_VERSION,RB_GRN_MICRO_VERSIONの値を次回リリース時のバージョンの値に変更する。
@@ -116,8 +116,8 @@ module Packnga
116
116
 
117
117
  def define_po_tasks
118
118
  namespace :po do
119
+ namespace :update do
119
120
  @translate_languages.each do |language|
120
- namespace language do
121
121
  po_file = "#{@po_dir}/#{language}.po"
122
122
 
123
123
  if File.exist?(po_file)
@@ -138,7 +138,7 @@ module Packnga
138
138
  end
139
139
 
140
140
  desc "Updates po file for #{language}."
141
- task :update => po_file
141
+ task language => po_file
142
142
  end
143
143
  end
144
144
 
@@ -147,7 +147,7 @@ module Packnga
147
147
  ruby($0, "clobber")
148
148
  ruby($0, "yard")
149
149
  @translate_languages.each do |language|
150
- ruby($0, "reference:po:#{language}:update")
150
+ ruby($0, "reference:po:update:#{language}")
151
151
  end
152
152
  end
153
153
  end
@@ -21,7 +21,7 @@ module Packnga
21
21
  # This class creates release tasks.
22
22
  #
23
23
  # Release tasks tag current version and install gem for test.
24
- # It also define tasks to upload rubyforge whether option.
24
+ # It also define tasks to upload RubyForge whether option.
25
25
  #
26
26
  # @since 0.9.0
27
27
  class ReleaseTask
@@ -36,14 +36,18 @@ module Packnga
36
36
  # This attribute is message when tagging in release.
37
37
  # @param [String] message
38
38
  attr_writer :tag_message
39
- # This attribute is options for uploading rubyforge by rsync.
39
+ # This attribute is options for uploading RubyForge by rsync.
40
40
  # @param [Hash] options for uploading.
41
41
  attr_writer :publish_options
42
+ # This attribute is text for changes in new release
43
+ # to post news to RubyForge.
44
+ # @param [String] text for changes.
45
+ attr_writer :changes
42
46
  # Defines task for preparing to release.
43
47
  # Defined tasks update version and release-date in index files
44
48
  # and tag in git.
45
49
  # If you set rubyforge_project of Jeweler::Task.new with its given block,
46
- # it also define tasks to update rubyforge.
50
+ # it also define tasks to update RubyForge.
47
51
  # @param [Jeweler::Task] spec created by Jeweler::Task.new.
48
52
  def initialize(spec)
49
53
  @spec = spec
@@ -51,6 +55,7 @@ module Packnga
51
55
  @rubyforge = nil
52
56
  @tag_messsage = nil
53
57
  @publish_options = nil
58
+ @changes = nil
54
59
  yield(self) if block_given?
55
60
  set_default_values
56
61
  define_tasks
@@ -68,8 +73,9 @@ module Packnga
68
73
  def set_default_values
69
74
  @index_html_dir ||= "doc/html"
70
75
  @base_dir ||= Pathname.new("doc")
71
- @tag_message ||= 'release #{version}!!!'
76
+ @tag_message ||= "release #{@spec.version}!!!"
72
77
  @publish_options ||= {}
78
+ @changes ||= ""
73
79
  end
74
80
 
75
81
  def define_tasks
@@ -137,11 +143,12 @@ module Packnga
137
143
  define_html_task
138
144
  define_publish_task
139
145
  define_upload_tasks
146
+ define_post_task
140
147
  end
141
148
 
142
149
  def define_reference_task
143
150
  namespace :reference do
144
- desc "Upload document to rubyforge."
151
+ desc "Upload document to RubyForge."
145
152
  task :publish => "reference:publication:generate" do
146
153
  rsync_to_rubyforge(@spec, "#{html_reference_dir}/", @spec.name, @publish_options)
147
154
  end
@@ -158,7 +165,7 @@ module Packnga
158
165
  end
159
166
 
160
167
  def define_publish_task
161
- desc "Upload document and HTML to rubyforge."
168
+ desc "Upload document and HTML to RubyForge."
162
169
  task :publish => ["html:publish", "reference:publish"]
163
170
  end
164
171
 
@@ -170,6 +177,7 @@ module Packnga
170
177
  system("stty -echo")
171
178
  @rubyforge.userconfig["password"] = STDIN.gets.chomp
172
179
  system("stty echo")
180
+ puts
173
181
  if @rubyforge.autoconfig["group_ids"][@spec.rubyforge_project].nil?
174
182
  @rubyforge.scrape_config
175
183
  @rubyforge.save_autoconfig
@@ -187,6 +195,23 @@ module Packnga
187
195
  task :rubyforge => "release:rubyforge:upload"
188
196
  end
189
197
 
198
+ def define_post_task
199
+ namespace :rubyforge do
200
+ namespace :news do
201
+ desc "Post news to RubyForge."
202
+ task :post do
203
+ group_id =
204
+ @rubyforge.autoconfig["group_ids"][@spec.rubyforge_project]
205
+ subject =
206
+ "#{@spec.name} version #{@spec.version} has been released!"
207
+ body = @spec.description + "\nChanges:" + @changes
208
+
209
+ @rubyforge.post_news(group_id, subject, body)
210
+ end
211
+ end
212
+ end
213
+ end
214
+
190
215
  def rsync_to_rubyforge(spec, source, destination, options={})
191
216
  host = "#{@rubyforge.userconfig["username"]}@rubyforge.org"
192
217
 
@@ -18,5 +18,5 @@
18
18
 
19
19
  module Packnga
20
20
  # Packnga version.
21
- VERSION = "0.9.2"
21
+ VERSION = "0.9.3"
22
22
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packnga
3
3
  version: !ruby/object:Gem::Version
4
- hash: 63
5
- prerelease:
4
+ hash: 61
5
+ prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 2
10
- version: 0.9.2
9
+ - 3
10
+ version: 0.9.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Haruka Yoshihara
@@ -16,9 +16,13 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-08-28 00:00:00 Z
19
+ date: 2011-09-22 00:00:00 +09:00
20
+ default_executable:
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
23
+ type: :runtime
24
+ prerelease: false
25
+ name: rake
22
26
  version_requirements: &id001 !ruby/object:Gem::Requirement
23
27
  none: false
24
28
  requirements:
@@ -28,11 +32,11 @@ dependencies:
28
32
  segments:
29
33
  - 0
30
34
  version: "0"
31
- name: rake
32
- prerelease: false
33
- type: :runtime
34
35
  requirement: *id001
35
36
  - !ruby/object:Gem::Dependency
37
+ type: :runtime
38
+ prerelease: false
39
+ name: yard
36
40
  version_requirements: &id002 !ruby/object:Gem::Requirement
37
41
  none: false
38
42
  requirements:
@@ -42,11 +46,11 @@ dependencies:
42
46
  segments:
43
47
  - 0
44
48
  version: "0"
45
- name: yard
46
- prerelease: false
47
- type: :runtime
48
49
  requirement: *id002
49
50
  - !ruby/object:Gem::Dependency
51
+ type: :runtime
52
+ prerelease: false
53
+ name: rubyforge
50
54
  version_requirements: &id003 !ruby/object:Gem::Requirement
51
55
  none: false
52
56
  requirements:
@@ -56,11 +60,11 @@ dependencies:
56
60
  segments:
57
61
  - 0
58
62
  version: "0"
59
- name: rubyforge
60
- prerelease: false
61
- type: :runtime
62
63
  requirement: *id003
63
64
  - !ruby/object:Gem::Dependency
65
+ type: :development
66
+ prerelease: false
67
+ name: test-unit
64
68
  version_requirements: &id004 !ruby/object:Gem::Requirement
65
69
  none: false
66
70
  requirements:
@@ -70,11 +74,11 @@ dependencies:
70
74
  segments:
71
75
  - 0
72
76
  version: "0"
73
- name: test-unit
74
- prerelease: false
75
- type: :development
76
77
  requirement: *id004
77
78
  - !ruby/object:Gem::Dependency
79
+ type: :development
80
+ prerelease: false
81
+ name: test-unit-notify
78
82
  version_requirements: &id005 !ruby/object:Gem::Requirement
79
83
  none: false
80
84
  requirements:
@@ -84,11 +88,11 @@ dependencies:
84
88
  segments:
85
89
  - 0
86
90
  version: "0"
87
- name: test-unit-notify
88
- prerelease: false
89
- type: :development
90
91
  requirement: *id005
91
92
  - !ruby/object:Gem::Dependency
93
+ type: :development
94
+ prerelease: false
95
+ name: jeweler
92
96
  version_requirements: &id006 !ruby/object:Gem::Requirement
93
97
  none: false
94
98
  requirements:
@@ -98,11 +102,11 @@ dependencies:
98
102
  segments:
99
103
  - 0
100
104
  version: "0"
101
- name: jeweler
102
- prerelease: false
103
- type: :development
104
105
  requirement: *id006
105
106
  - !ruby/object:Gem::Dependency
107
+ type: :development
108
+ prerelease: false
109
+ name: RedCloth
106
110
  version_requirements: &id007 !ruby/object:Gem::Requirement
107
111
  none: false
108
112
  requirements:
@@ -112,9 +116,6 @@ dependencies:
112
116
  segments:
113
117
  - 0
114
118
  version: "0"
115
- name: RedCloth
116
- prerelease: false
117
- type: :development
118
119
  requirement: *id007
119
120
  description: |
120
121
  Packnga is an library to translate to many languages by YARD.
@@ -134,6 +135,7 @@ files:
134
135
  - Rakefile
135
136
  - doc/text/lgpl.txt
136
137
  - doc/text/news.textile
138
+ - doc/text/release.textile
137
139
  - doc/text/tutorial.textile
138
140
  - lib/packnga.rb
139
141
  - lib/packnga/document-task.rb
@@ -141,6 +143,7 @@ files:
141
143
  - lib/packnga/release-task.rb
142
144
  - lib/packnga/version.rb
143
145
  - lib/packnga/yard-task.rb
146
+ has_rdoc: true
144
147
  homepage: http://groonga.rubyforge.org/
145
148
  licenses:
146
149
  - LGPLv2
@@ -170,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
173
  requirements: []
171
174
 
172
175
  rubyforge_project: groonga
173
- rubygems_version: 1.7.2
176
+ rubygems_version: 1.3.7
174
177
  signing_key:
175
178
  specification_version: 3
176
179
  summary: An utility library to package i18n-ed library.