bones 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,12 @@
1
+ == 2.0.2 / 2008-06-02
2
+
3
+ * 2 minor enhancements
4
+ - Added a gem cleanup rake task
5
+ - Tasks to support Git projects
6
+ * 2 bug fixes
7
+ - Check for Rakefile when creating a new project
8
+ - Failed dependency resolution when not using fully qualified task names
9
+
1
10
  == 2.0.1 / 2008-04-15
2
11
 
3
12
  * 1 minor enchancement
@@ -14,6 +14,7 @@ data/spec/spec_helper.rb.erb
14
14
  data/tasks/ann.rake
15
15
  data/tasks/bones.rake
16
16
  data/tasks/gem.rake
17
+ data/tasks/git.rake
17
18
  data/tasks/manifest.rake
18
19
  data/tasks/notes.rake
19
20
  data/tasks/post_load.rake
@@ -32,6 +33,7 @@ lib/bones/smtp_tls.rb
32
33
  tasks/ann.rake
33
34
  tasks/bones.rake
34
35
  tasks/gem.rake
36
+ tasks/git.rake
35
37
  tasks/manifest.rake
36
38
  tasks/notes.rake
37
39
  tasks/post_load.rake
@@ -39,5 +41,4 @@ tasks/rdoc.rake
39
41
  tasks/rubyforge.rake
40
42
  tasks/setup.rb
41
43
  tasks/spec.rake
42
- tasks/svn.rake
43
44
  tasks/test.rake
data/README.txt CHANGED
@@ -100,6 +100,8 @@ Mr Bones provides the following rake tasks:
100
100
  gem:release # Package and upload to RubyForge
101
101
  gem:repackage # Force a rebuild of the package files
102
102
  gem:uninstall # Uninstall the gem
103
+ git:create_tag # Create a new tag in the Git repository
104
+ git:show_tags # Show tags from the Git repository
103
105
  manifest # Alias to manifest:check
104
106
  manifest:check # Verify the manifest
105
107
  manifest:create # Create a new manifest
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
- # $Id: Rakefile 596 2008-04-15 05:51:29Z tim_pease $
1
+ # $Id$
2
2
 
3
3
  $:.unshift('lib')
4
4
 
@@ -10,7 +10,7 @@ PROJ.authors = 'Tim Pease'
10
10
  PROJ.email = 'tim.pease@gmail.com'
11
11
  PROJ.url = 'http://codeforpeople.rubyforge.org/bones'
12
12
  PROJ.version = Bones::VERSION
13
- PROJ.release_name = 'Happy Tax Day'
13
+ PROJ.release_name = 'Haughty Hen'
14
14
 
15
15
  PROJ.rubyforge.name = 'codeforpeople'
16
16
 
@@ -30,11 +30,12 @@ PROJ.gem.extras[:post_install_message] = <<-MSG
30
30
  --------------------------
31
31
  MSG
32
32
 
33
- PROJ.ann.paragraphs = %w[install synopsis features requirements].unshift('version 2.0.0 changes')
33
+ PROJ.ann.paragraphs = %w[install synopsis features requirements]
34
34
  PROJ.ann.text = <<-ANN
35
35
  == FUN FACT
36
36
 
37
- The number of left-handed men is double that of left-handed women.
37
+ XML is much like violence --
38
+ if it's not solving your problem then you are not using enough of it.
38
39
 
39
40
  == POST SCRIPT
40
41
 
@@ -91,7 +91,7 @@ namespace :gem do
91
91
  end
92
92
 
93
93
  desc 'Install the gem'
94
- task :install => [:clobber, :package] do
94
+ task :install => [:clobber, 'gem:package'] do
95
95
  sh "#{SUDO} #{GEM} install --local pkg/#{PROJ.gem._spec.full_name}"
96
96
 
97
97
  # use this version of the command for rubygems > 1.0.0
@@ -109,6 +109,11 @@ namespace :gem do
109
109
  desc 'Reinstall the gem'
110
110
  task :reinstall => [:uninstall, :install]
111
111
 
112
+ desc 'Cleanup the gem'
113
+ task :cleanup do
114
+ sh "#{SUDO} #{GEM} cleanup #{PROJ.gem._spec.name}"
115
+ end
116
+
112
117
  end # namespace :gem
113
118
 
114
119
  desc 'Alias to gem:package'
@@ -0,0 +1,41 @@
1
+ # $Id$
2
+
3
+ if HAVE_GIT
4
+
5
+ namespace :git do
6
+
7
+ # A prerequisites task that all other tasks depend upon
8
+ task :prereqs
9
+
10
+ desc 'Show tags from the Git repository'
11
+ task :show_tags => 'git:prereqs' do |t|
12
+ puts %x/git tag/
13
+ end
14
+
15
+ desc 'Create a new tag in the Git repository'
16
+ task :create_tag => 'git:prereqs' do |t|
17
+ v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
18
+ abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
19
+
20
+ tag = "%s-%s" % [PROJ.name, PROJ.version]
21
+ msg = "Creating tag for #{PROJ.name} version #{PROJ.version}"
22
+
23
+ puts "Creating Git tag '#{tag}'"
24
+ unless system "git tag -a -m '#{msg}' #{tag}"
25
+ abort "Tag creation failed"
26
+ end
27
+
28
+ if %x/git remote/ =~ %r/^origin\s*$/
29
+ unless system "git push origin #{tag}"
30
+ abort "Could not push tag to remote Git repository"
31
+ end
32
+ end
33
+ end
34
+
35
+ end # namespace :git
36
+
37
+ task 'gem:release' => 'git:create_tag'
38
+
39
+ end # if HAVE_GIT
40
+
41
+ # EOF
@@ -7,7 +7,7 @@ require 'rake/contrib/sshpublisher'
7
7
 
8
8
  namespace :gem do
9
9
  desc 'Package and upload to RubyForge'
10
- task :release => [:clobber, :package] do |t|
10
+ task :release => [:clobber, 'gem:package'] do |t|
11
11
  v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
12
12
  abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
13
13
  pkg = "pkg/#{PROJ.gem._spec.full_name}"
@@ -18,7 +18,7 @@ PROJ = OpenStruct.new(
18
18
  :email => nil,
19
19
  :url => "\000",
20
20
  :version => ENV['VERSION'] || '0.0.0',
21
- :exclude => %w(tmp$ bak$ ~$ CVS .svn/ ^pkg/),
21
+ :exclude => %w(tmp$ bak$ ~$ CVS \.svn/ \.git/ ^pkg/),
22
22
  :release_name => ENV['RELEASE'],
23
23
 
24
24
  # System Defaults
@@ -58,7 +58,7 @@ PROJ = OpenStruct.new(
58
58
 
59
59
  # File Annotations
60
60
  :notes => OpenStruct.new(
61
- :exclude => %w(^tasks/setup.rb$),
61
+ :exclude => %w(^tasks/setup\.rb$),
62
62
  :extensions => %w(.txt .rb .erb) << '',
63
63
  :tags => %w(FIXME OPTIMIZE TODO)
64
64
  ),
@@ -74,8 +74,8 @@ PROJ = OpenStruct.new(
74
74
  # Rdoc
75
75
  :rdoc => OpenStruct.new(
76
76
  :opts => [],
77
- :include => %w(^lib/ ^bin/ ^ext/ .txt$),
78
- :exclude => %w(extconf.rb$),
77
+ :include => %w(^lib/ ^bin/ ^ext/ \.txt$),
78
+ :exclude => %w(extconf\.rb$),
79
79
  :main => nil,
80
80
  :dir => 'doc',
81
81
  :remote_dir => nil
@@ -159,6 +159,8 @@ GEM = WIN32 ? 'gem.bat' : 'gem'
159
159
  end
160
160
  HAVE_SVN = (Dir.entries(Dir.pwd).include?('.svn') and
161
161
  system("svn --version 2>&1 > #{DEV_NULL}"))
162
+ HAVE_GIT = (Dir.entries(Dir.pwd).include?('.git') and
163
+ system("git --version 2>&1 > #{DEV_NULL}"))
162
164
 
163
165
  # Reads a file at +path+ and spits out an array of the +paragraphs+
164
166
  # specified.
@@ -1,9 +1,9 @@
1
- # $Id: bones.rb 593 2008-04-07 21:10:34Z tim_pease $
1
+ # $Id$
2
2
 
3
3
  module Bones
4
4
 
5
5
  # :stopdoc:
6
- VERSION = '2.0.1'
6
+ VERSION = '2.0.2'
7
7
  PATH = File.expand_path(File.join(File.dirname(__FILE__), '..'))
8
8
  WIN32 = %r/win32/ =~ RUBY_PLATFORM
9
9
  DEV_NULL = WIN32 ? 'NUL:' : '/dev/null'
@@ -1,4 +1,4 @@
1
- # $Id: annotation_extractor.rb 588 2008-04-07 20:43:07Z tim_pease $
1
+ # $Id$
2
2
 
3
3
  begin
4
4
  require 'facets/ansicode'
@@ -1,4 +1,4 @@
1
- # $Id: debug.rb 579 2008-03-19 18:53:22Z tim_pease $
1
+ # $Id$
2
2
 
3
3
  require 'pp'
4
4
  require 'stringio'
@@ -1,4 +1,4 @@
1
- # $Id: main.rb 579 2008-03-19 18:53:22Z tim_pease $
1
+ # $Id$
2
2
 
3
3
  require 'fileutils'
4
4
  require 'optparse'
@@ -115,16 +115,19 @@ class Main
115
115
  files_to_copy.each {|fn| cp fn}
116
116
 
117
117
  pwd = File.expand_path(FileUtils.pwd)
118
- begin
119
- FileUtils.cd output_dir
120
- system "rake manifest:create 2>&1 > #{::Bones::DEV_NULL}"
121
- msg = "created '#{name}'"
122
- msg << " in directory '#{output_dir}'" if name != output_dir
123
- msg << "\nnow you need to fix these files"
124
- STDOUT.puts msg
125
- system "rake notes"
126
- ensure
127
- FileUtils.cd pwd
118
+ msg = "created '#{name}'"
119
+ msg << " in directory '#{output_dir}'" if name != output_dir
120
+ STDOUT.puts msg
121
+
122
+ if test(?f, File.join(output_dir, 'Rakefile'))
123
+ begin
124
+ FileUtils.cd output_dir
125
+ system "rake manifest:create 2>&1 > #{::Bones::DEV_NULL}"
126
+ STDOUT.puts "now you need to fix these files"
127
+ system "rake notes"
128
+ ensure
129
+ FileUtils.cd pwd
130
+ end
128
131
  end
129
132
  rescue Exception => err
130
133
  FileUtils.rm_rf output_dir
@@ -1,4 +1,4 @@
1
- # $Id: smtp_tls.rb 536 2008-02-18 23:07:49Z tim_pease $
1
+ # $Id$
2
2
 
3
3
  # This code enables SMTPTLS authentication requireed for sending mail
4
4
  # via the gmail servers. I found this code via a blog entry from James
@@ -1,4 +1,4 @@
1
- # $Id: gem.rake 596 2008-04-15 05:51:29Z tim_pease $
1
+ # $Id$
2
2
 
3
3
  require 'rake/gempackagetask'
4
4
 
@@ -91,7 +91,7 @@ namespace :gem do
91
91
  end
92
92
 
93
93
  desc 'Install the gem'
94
- task :install => [:clobber, :package] do
94
+ task :install => [:clobber, 'gem:package'] do
95
95
  sh "#{SUDO} #{GEM} install --local pkg/#{PROJ.gem._spec.full_name}"
96
96
 
97
97
  # use this version of the command for rubygems > 1.0.0
@@ -109,6 +109,11 @@ namespace :gem do
109
109
  desc 'Reinstall the gem'
110
110
  task :reinstall => [:uninstall, :install]
111
111
 
112
+ desc 'Cleanup the gem'
113
+ task :cleanup do
114
+ sh "#{SUDO} #{GEM} cleanup #{PROJ.gem._spec.name}"
115
+ end
116
+
112
117
  end # namespace :gem
113
118
 
114
119
  desc 'Alias to gem:package'
@@ -0,0 +1,41 @@
1
+ # $Id$
2
+
3
+ if HAVE_GIT
4
+
5
+ namespace :git do
6
+
7
+ # A prerequisites task that all other tasks depend upon
8
+ task :prereqs
9
+
10
+ desc 'Show tags from the Git repository'
11
+ task :show_tags => 'git:prereqs' do |t|
12
+ puts %x/git tag/
13
+ end
14
+
15
+ desc 'Create a new tag in the Git repository'
16
+ task :create_tag => 'git:prereqs' do |t|
17
+ v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
18
+ abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
19
+
20
+ tag = "%s-%s" % [PROJ.name, PROJ.version]
21
+ msg = "Creating tag for #{PROJ.name} version #{PROJ.version}"
22
+
23
+ puts "Creating Git tag '#{tag}'"
24
+ unless system "git tag -a -m '#{msg}' #{tag}"
25
+ abort "Tag creation failed"
26
+ end
27
+
28
+ if %x/git remote/ =~ %r/^origin\s*$/
29
+ unless system "git push origin #{tag}"
30
+ abort "Could not push tag to remote Git repository"
31
+ end
32
+ end
33
+ end
34
+
35
+ end # namespace :git
36
+
37
+ task 'gem:release' => 'git:create_tag'
38
+
39
+ end # if HAVE_GIT
40
+
41
+ # EOF
@@ -7,7 +7,7 @@ require 'rake/contrib/sshpublisher'
7
7
 
8
8
  namespace :gem do
9
9
  desc 'Package and upload to RubyForge'
10
- task :release => [:clobber, :package] do |t|
10
+ task :release => [:clobber, 'gem:package'] do |t|
11
11
  v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
12
12
  abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
13
13
  pkg = "pkg/#{PROJ.gem._spec.full_name}"
@@ -18,7 +18,7 @@ PROJ = OpenStruct.new(
18
18
  :email => nil,
19
19
  :url => "\000",
20
20
  :version => ENV['VERSION'] || '0.0.0',
21
- :exclude => %w(tmp$ bak$ ~$ CVS .svn/ ^pkg/),
21
+ :exclude => %w(tmp$ bak$ ~$ CVS \.svn/ \.git/ ^pkg/),
22
22
  :release_name => ENV['RELEASE'],
23
23
 
24
24
  # System Defaults
@@ -58,7 +58,7 @@ PROJ = OpenStruct.new(
58
58
 
59
59
  # File Annotations
60
60
  :notes => OpenStruct.new(
61
- :exclude => %w(^tasks/setup.rb$),
61
+ :exclude => %w(^tasks/setup\.rb$),
62
62
  :extensions => %w(.txt .rb .erb) << '',
63
63
  :tags => %w(FIXME OPTIMIZE TODO)
64
64
  ),
@@ -74,8 +74,8 @@ PROJ = OpenStruct.new(
74
74
  # Rdoc
75
75
  :rdoc => OpenStruct.new(
76
76
  :opts => [],
77
- :include => %w(^lib/ ^bin/ ^ext/ .txt$),
78
- :exclude => %w(extconf.rb$),
77
+ :include => %w(^lib/ ^bin/ ^ext/ \.txt$),
78
+ :exclude => %w(extconf\.rb$),
79
79
  :main => nil,
80
80
  :dir => 'doc',
81
81
  :remote_dir => nil
@@ -159,6 +159,8 @@ GEM = WIN32 ? 'gem.bat' : 'gem'
159
159
  end
160
160
  HAVE_SVN = (Dir.entries(Dir.pwd).include?('.svn') and
161
161
  system("svn --version 2>&1 > #{DEV_NULL}"))
162
+ HAVE_GIT = (Dir.entries(Dir.pwd).include?('.git') and
163
+ system("git --version 2>&1 > #{DEV_NULL}"))
162
164
 
163
165
  # Reads a file at +path+ and spits out an array of the +paragraphs+
164
166
  # specified.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bones
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Pease
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-04-14 00:00:00 -06:00
12
+ date: 2008-06-02 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -48,6 +48,7 @@ files:
48
48
  - data/tasks/ann.rake
49
49
  - data/tasks/bones.rake
50
50
  - data/tasks/gem.rake
51
+ - data/tasks/git.rake
51
52
  - data/tasks/manifest.rake
52
53
  - data/tasks/notes.rake
53
54
  - data/tasks/post_load.rake
@@ -66,6 +67,7 @@ files:
66
67
  - tasks/ann.rake
67
68
  - tasks/bones.rake
68
69
  - tasks/gem.rake
70
+ - tasks/git.rake
69
71
  - tasks/manifest.rake
70
72
  - tasks/notes.rake
71
73
  - tasks/post_load.rake
@@ -73,7 +75,6 @@ files:
73
75
  - tasks/rubyforge.rake
74
76
  - tasks/setup.rb
75
77
  - tasks/spec.rake
76
- - tasks/svn.rake
77
78
  - tasks/test.rake
78
79
  has_rdoc: true
79
80
  homepage: http://codeforpeople.rubyforge.org/bones
@@ -1,48 +0,0 @@
1
- # $Id$
2
-
3
- if HAVE_SVN
4
-
5
- unless PROJ.svn.root
6
- info = %x/svn info ./
7
- m = %r/^Repository Root:\s+(.*)$/.match(info)
8
- PROJ.svn.root = (m.nil? ? '' : m[1])
9
- end
10
- PROJ.svn.root = File.join(PROJ.svn.root, PROJ.svn.path) unless PROJ.svn.path.empty?
11
-
12
- namespace :svn do
13
-
14
- # A prerequisites task that all other tasks depend upon
15
- task :prereqs
16
-
17
- desc 'Show tags from the SVN repository'
18
- task :show_tags => 'svn:prereqs' do |t|
19
- tags = %x/svn list #{File.join(PROJ.svn.root, PROJ.svn.tags)}/
20
- tags.gsub!(%r/\/$/, '')
21
- tags = tags.split("\n").sort {|a,b| b <=> a}
22
- puts tags
23
- end
24
-
25
- desc 'Create a new tag in the SVN repository'
26
- task :create_tag => 'svn:prereqs' do |t|
27
- v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
28
- abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
29
-
30
- svn = PROJ.svn
31
- trunk = File.join(svn.root, svn.trunk)
32
- tag = "%s-%s" % [PROJ.name, PROJ.version]
33
- tag = File.join(svn.root, svn.tags, tag)
34
- msg = "Creating tag for #{PROJ.name} version #{PROJ.version}"
35
-
36
- puts "Creating SVN tag '#{tag}'"
37
- unless system "svn cp -m '#{msg}' #{trunk} #{tag}"
38
- abort "Tag creation failed"
39
- end
40
- end
41
-
42
- end # namespace :svn
43
-
44
- task 'gem:release' => 'svn:create_tag'
45
-
46
- end # if PROJ.svn.path
47
-
48
- # EOF