rake-deveiate 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: db3d42996110ac399012a986a20781e0894319bfb34c2074cbafcd3f74b9e495
4
- data.tar.gz: 556ce77876797033960824329500c5794c715bb77a1bd665b0c5289b78f149e3
3
+ metadata.gz: 411dba3c0a85a488b5cc196c1cc431914baa1e8a361a338518a7c6d90997a86e
4
+ data.tar.gz: 6261595cce321454eb95f6ecd775ca294b732cde735997a17ed4e7d436701033
5
5
  SHA512:
6
- metadata.gz: dc84754776dc27a67d0ab8e8db5d2f7d697fc69001da7f385b1cac997955a8b011f5138182f5abbcdfd6f169797a73c1cf0f96358ef6e1448a3e8dcd0962ade9
7
- data.tar.gz: de8fcaf36c1c8a6f9ca1e688bf0c763cc58300b17e772d9562261a18136ec02b93ac071355d5a2778befc59bd3ad1cf24e5d6debfa785d592cfcd0d7a1811838
6
+ metadata.gz: 1862a49ef4b0966deaddaec18e4ac0b2b217a9ece1f06129e5e26b374c34ba09f0416f596d76e3eb2c52fbebee933033816e13fb98f60afe706e9cba63b8028c
7
+ data.tar.gz: 4e6bf0717bf50f656709890b2e50ad8b761a7c768549365c36cb88675dc72a9e4201c5d09e909f4a4cbc0ed2e0d59c3b9fae4316931acc4dbfc5934a4da03b03
checksums.yaml.gz.sig CHANGED
Binary file
data/History.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  ---
4
4
 
5
+ ## v0.3.0 [2019-10-14] Michael Granger <ged@FaerieMUD.org>
6
+
7
+ Improvements:
8
+
9
+ - Add a `diff_manifest` task
10
+ - Run checkin tasks in an order that makes more sense
11
+ - Fix the sign/tag sequence in `release` to allow `sigcheck`ing the tag.
12
+
13
+
5
14
  ## v0.2.0 [2019-10-12] Michael Granger <ged@FaerieMUD.org>
6
15
 
7
16
  Improvements:
@@ -66,7 +66,7 @@ module Rake::DevEiate::Gemspec
66
66
 
67
67
  CLEAN.include( gemspec_file.to_s )
68
68
 
69
- task :checkin => :gemspec
69
+ task :precheckin => :gemspec
70
70
 
71
71
  task( :gemspec_debug, &method(:do_gemspec_debug) )
72
72
  task :debug => :gemspec_debug
@@ -1,6 +1,7 @@
1
1
  # -*- ruby -*-
2
2
  # frozen_string_literal: true
3
3
 
4
+ require 'tempfile'
4
5
  require 'erb'
5
6
 
6
7
  require 'rake/deveiate' unless defined?( Rake::DevEiate )
@@ -38,6 +39,7 @@ module Rake::DevEiate::Generate
38
39
  task( RUBY_VERSION_FILE, &method(:do_generate_ruby_version_file) )
39
40
  task( GEMSET_FILE, &method(:do_generate_gemset_file) )
40
41
 
42
+ desc "Generate any missing project files."
41
43
  task :generate => [
42
44
  self.readme_file,
43
45
  self.history_file,
@@ -45,6 +47,9 @@ module Rake::DevEiate::Generate
45
47
  RUBY_VERSION_FILE,
46
48
  GEMSET_FILE,
47
49
  ]
50
+
51
+ desc "Diff the manifest file against the default set of project files."
52
+ task( :diff_manifest, &method(:do_diff_manifest) )
48
53
  end
49
54
 
50
55
 
@@ -89,6 +94,18 @@ module Rake::DevEiate::Generate
89
94
  end
90
95
 
91
96
 
97
+ ### Task body for the `diff_manifest` task
98
+ def do_diff_manifest( task, args )
99
+ Tempfile.open( ['Manifest','.txt'], Rake::DevEiate::PROJECT_DIR ) do |io|
100
+ file_list = self.default_manifest.to_a
101
+ io.puts( *file_list )
102
+ io.flush
103
+
104
+ sh 'diff', '-ub', self.manifest_file.to_s, io.path
105
+ end
106
+ end
107
+
108
+
92
109
  ### Generate the given +filename+ from the template filed at +template_path+.
93
110
  def generate_from_template( filename, template_path )
94
111
  self.prompt.ok "Generating #{filename}..."
@@ -61,7 +61,14 @@ module Rake::DevEiate::Hg
61
61
  return unless File.directory?( '.hg' )
62
62
 
63
63
  file COMMIT_MSG_FILE.to_s do |task|
64
- edit_commit_log( task.name )
64
+ commit_log = Pathname( task.name )
65
+
66
+ edit_commit_log( commit_log )
67
+ unless commit_log.size?
68
+ self.prompt.error "Empty commit message; aborting."
69
+ commit_log.unlink if commit_log.exist?
70
+ abort
71
+ end
65
72
  end
66
73
 
67
74
  CLEAN.include( COMMIT_MSG_FILE.to_s )
@@ -88,14 +95,14 @@ module Rake::DevEiate::Hg
88
95
  task( :update_and_clobber, &method(:do_hg_update_and_clobber) )
89
96
 
90
97
  desc "Mercurial-specific pre-checkin hook"
91
- task :precheckin
98
+ task :precheckin => [ :pull, :newfiles, :check_for_changes ]
99
+
100
+ desc "Check the current code in if tests pass"
101
+ task( :checkin => COMMIT_MSG_FILE.to_s, &method(:do_hg_checkin) )
92
102
 
93
103
  desc "Mercurial-specific pre-release hook"
94
104
  task :prerelease => 'hg:check_history'
95
105
 
96
- desc "Check the current code in if tests pass"
97
- task( :checkin => [:pull, :newfiles, :precheckin, COMMIT_MSG_FILE.to_s], &method(:do_hg_checkin) )
98
-
99
106
  desc "Mercurial-specific post-release hook"
100
107
  task( :postrelease, &method(:do_hg_postrelease) )
101
108
 
@@ -113,21 +120,22 @@ module Rake::DevEiate::Hg
113
120
  desc "Generate and edit a new version entry in the history file"
114
121
  task( :update_history, &method(:do_hg_update_history) )
115
122
 
123
+ task( :check_for_changes, &method(:do_hg_check_for_changes) )
116
124
  task( :debug, &method(:do_hg_debug) )
117
125
  end
118
126
 
119
127
 
120
128
  # Hook some generic tasks to the mercurial-specific ones
121
- task :ci => 'hg:checkin'
129
+ task :checkin => 'hg:checkin'
130
+ task :precheckin => 'hg:precheckin'
122
131
 
123
132
  task :prerelease => 'hg:prerelease'
124
- task :precheckin => 'hg:precheckin'
125
- task :debug => 'hg:debug'
126
133
  task :postrelease => 'hg:postrelease'
127
134
 
128
135
  desc "Update the history file with the changes since the last version tag."
129
136
  task :update_history => 'hg:update_history'
130
137
 
138
+ task :debug => 'hg:debug'
131
139
  rescue ::Exception => err
132
140
  $stderr.puts "%s while defining Mercurial tasks: %s" % [ err.class.name, err.message ]
133
141
  raise
@@ -148,6 +156,7 @@ module Rake::DevEiate::Hg
148
156
  end
149
157
 
150
158
  pkg_version_tag = self.current_version_tag
159
+ rev = self.hg.identity.id
151
160
 
152
161
  # Look for a tag for the current release version, and if it exists abort
153
162
  if self.hg.tags.find {|tag| tag.name == pkg_version_tag }
@@ -156,15 +165,14 @@ module Rake::DevEiate::Hg
156
165
  end
157
166
 
158
167
  if self.sign_tags
159
- message = "Signing %s" % [ pkg_version_tag ]
168
+ message = "Signing %s" % [ rev ]
160
169
  self.prompt.ok( message )
161
- self.hg.sign( message: message )
170
+ self.hg.sign( rev, message: message )
162
171
  end
163
172
 
164
173
  # Tag the current rev
165
- rev = self.hg.identify
166
174
  self.prompt.ok "Tagging rev %s as %s" % [ rev, pkg_version_tag ]
167
- self.hg.tag( pkg_version_tag )
175
+ self.hg.tag( pkg_version_tag, rev: rev )
168
176
  end
169
177
 
170
178
 
@@ -310,6 +318,16 @@ module Rake::DevEiate::Hg
310
318
  end
311
319
 
312
320
 
321
+ ### Check the status of the repo and ensure there are outstanding changes. If there
322
+ ### are no changes, abort.
323
+ def do_hg_check_for_changes( task, args )
324
+ unless self.hg.dirty?
325
+ self.prompt.error "Working copy is clean."
326
+ abort
327
+ end
328
+ end
329
+
330
+
313
331
  ### Generate a new history file entry for the current version.
314
332
  def do_hg_update_history( task, args ) # Needs refactoring
315
333
  unless self.history_file.readable?
data/lib/rake/deveiate.rb CHANGED
@@ -34,7 +34,7 @@ class Rake::DevEiate < Rake::TaskLib
34
34
  VERSION_PATTERN = /VERSION\s*=\s*(?<quote>['"])(?<version>\d+(\.\d+){2}.*)\k<quote>/
35
35
 
36
36
  # The version of this library
37
- VERSION = '0.2.0'
37
+ VERSION = '0.3.0'
38
38
 
39
39
  # The server to release to by default
40
40
  DEFAULT_GEMSERVER = 'https://rubygems.org/'
@@ -61,13 +61,18 @@ class Rake::DevEiate < Rake::TaskLib
61
61
  DEFAULT_MANIFEST_FILE = PROJECT_DIR + 'Manifest.txt'
62
62
  DEFAULT_README_FILE = PROJECT_DIR + 'README.md'
63
63
  DEFAULT_HISTORY_FILE = PROJECT_DIR + 'History.md'
64
+
64
65
  DEFAULT_PROJECT_FILES = Rake::FileList[
65
66
  '*.{rdoc,md,txt}',
66
67
  'bin/*',
67
- 'lib/*.rb', 'lib/**/*.rb',
68
+ 'lib/**/*.rb',
68
69
  'ext/*.[ch]', 'ext/**/*.[ch]',
69
- 'data/**/*'
70
+ 'data/**/*',
71
+ 'spec/**/*.rb',
70
72
  ]
73
+ DEFAULT_PROJECT_FILES.exclude( 'Manifest*.txt' )
74
+
75
+
71
76
 
72
77
  # The default license for the project in SPDX form: https://spdx.org/licenses
73
78
  DEFAULT_LICENSE = 'BSD-3-Clause'
@@ -291,10 +296,10 @@ class Rake::DevEiate < Rake::TaskLib
291
296
  task( :default => :spec )
292
297
 
293
298
  desc "Check in the current changes"
294
- task :checkin => :precheckin
299
+ task :checkin => [ :precheckin, :check, :test ]
295
300
  task :commit => :checkin
296
301
  task :ci => :checkin
297
- task :precheckin => [ :check, :gemspec, :spec ]
302
+ task :precheckin
298
303
 
299
304
  desc "Sanity-check the project"
300
305
  task :check
@@ -463,11 +468,18 @@ class Rake::DevEiate < Rake::TaskLib
463
468
  else
464
469
  self.prompt.warn "No manifest (%s): falling back to a default list" %
465
470
  [ self.manifest_file ]
466
- return DEFAULT_PROJECT_FILES.dup
471
+ return self.default_manifest
467
472
  end
468
473
  end
469
474
 
470
475
 
476
+ ### Return the Rake::FileList that's used in lieu of the manifest file if it
477
+ ### isn't present.
478
+ def default_manifest
479
+ return DEFAULT_PROJECT_FILES.dup
480
+ end
481
+
482
+
471
483
  ### Make a Rake::FileList of the files that should be used to generate
472
484
  ### documentation.
473
485
  def make_rdoc_filelist
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-deveiate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -34,7 +34,7 @@ cert_chain:
34
34
  jBZSA+N+xUTgUWpXjjwsLZjzJkhWATJWq+krNXcqpwXo6HsjmdUxoFMt63RBb+sI
35
35
  XrxOxp8o0uOkU7FdLSGsyqJ2LzsR4obN
36
36
  -----END CERTIFICATE-----
37
- date: 2019-10-12 00:00:00.000000000 Z
37
+ date: 2019-10-14 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: rake
@@ -84,14 +84,14 @@ dependencies:
84
84
  requirements:
85
85
  - - "~>"
86
86
  - !ruby/object:Gem::Version
87
- version: '0.4'
87
+ version: '0.5'
88
88
  type: :runtime
89
89
  prerelease: false
90
90
  version_requirements: !ruby/object:Gem::Requirement
91
91
  requirements:
92
92
  - - "~>"
93
93
  - !ruby/object:Gem::Version
94
- version: '0.4'
94
+ version: '0.5'
95
95
  - !ruby/object:Gem::Dependency
96
96
  name: tty-prompt
97
97
  requirement: !ruby/object:Gem::Requirement
@@ -206,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
206
  - !ruby/object:Gem::Version
207
207
  version: '0'
208
208
  requirements: []
209
- rubygems_version: 3.0.6
209
+ rubygems_version: 3.0.3
210
210
  signing_key:
211
211
  specification_version: 4
212
212
  summary: This is a collection of Rake tasks I use for development.
metadata.gz.sig CHANGED
Binary file