rake-deveiate 0.15.1 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0fd5ebf2ecae73378b090addfcda377b8f6eaa034d4c7a3ad39de0649701c5fe
4
- data.tar.gz: 22b38e5878db4fd78e4cbc5a0bcbff0813812d4a57ed236fbaf00ae60d1c9794
3
+ metadata.gz: 6294dfb27450c830428cd59e747a2039b33691e2092a2a70470370612347297f
4
+ data.tar.gz: fba0f6a23e4cd52de453bfb7d1441b873afe3a340cd0f137edf0621aeece57a4
5
5
  SHA512:
6
- metadata.gz: 715be431cafef4db394efc1740b35bbb61d8df3f53b850837a66d82ca9d2cb0095bf2c88ad8b93316600ca00b6769060b9cf7b635ee032896bac48709935e0b1
7
- data.tar.gz: f172e22901d23884594f6703dec21f3af5976aa67460a9e062323578f5987680e2edbdb196f6d37cc4f227df72552922702cb30737d4f757d79a01241325fe88
6
+ metadata.gz: 23eea2fb28c372d70bd5456ce7de3fd474e9c5312db520ce9562af3fb35ee377514030acb6728bc3ae6e9376e7ac7fd066c1ea5cec868768102faa64ec5e8710
7
+ data.tar.gz: 5806ea7d4bc077138b875e64ef4d11ad02d816a81d8e17760ffa4393451d08c2e8b70b3cfa354147dff88f4b20063ff76f673e11749d8fa9c4f2422ca39213e0
Binary file
data.tar.gz.sig CHANGED
@@ -1,2 +1,3 @@
1
- ��t~��H��ۻ������ �%��ɕ����%z�r���/����L���5z̟������dZ
2
- �ҍ'K���/��p�wl���X��Z#���ɼz��0w�[�����t!Q���l8#����׼���J�����F�g2{P1�; �G�p�ތęsڹ��5��+�,&�$A���^%[Em���Lxu9h 07�Wb;w��x}��Yϐ���Bp��((��
1
+ ELA��L�#�� ᬤ�
2
+ :�%&טU�����<~����Y3�Sd�Ƕ�]7�."��$^ �=r(��< 䏰�[Xo80�r��z�� ��z�5����j����dCs�%����YUC� ��l>�i ;)c�P�$�ꠣ���2f����W�����c��p��������Z�|��{�?vt��6�,���h+�Ye �%�ê��VnU�>^RaNq�z�&�ܼS/N�:�SK��_5�<P�h#|�2���ӕ��v�
3
+ �^}0�ѧ��X���Ke�:erL2��)�K��n��9o܅��da��^[��9$lV= ���4��5#�����r�ޥ���p/��'H��fx1�5���H�o�C��@.�ئ�3��
data/History.md CHANGED
@@ -1,6 +1,14 @@
1
1
  # Release History for rake-deveiate
2
2
 
3
3
  ---
4
+
5
+ ## v0.16.0 [2020-11-23] Michael Granger <ged@FaerieMUD.org>
6
+
7
+ Improvements:
8
+
9
+ - Add support for projects managed with Git.
10
+
11
+
4
12
  ## v0.15.1 [2020-10-29] Michael Granger <ged@FaerieMUD.org>
5
13
 
6
14
  Bugfixes:
@@ -35,7 +35,7 @@ class Rake::DevEiate < Rake::TaskLib
35
35
  VERSION_PATTERN = /VERSION\s*=\s*(?<quote>['"])(?<version>\d+(\.\d+){2}.*)\k<quote>/
36
36
 
37
37
  # The version of this library
38
- VERSION = '0.15.1'
38
+ VERSION = '0.16.0'
39
39
 
40
40
  # The server to release to by default
41
41
  DEFAULT_GEMSERVER = 'https://rubygems.org/'
@@ -46,6 +46,9 @@ class Rake::DevEiate < Rake::TaskLib
46
46
  # The version to use if one cannot be read from the source
47
47
  DEFAULT_VERSION = '0.1.0'
48
48
 
49
+ # The prefix to use for release version tags by default
50
+ DEFAULT_RELEASE_TAG_PREFIX = 'v'
51
+
49
52
  # Words in the package/gem name that should not be included in deriving paths,
50
53
  # file names, etc.
51
54
  PACKAGE_IGNORE_WORDS = %w[ruby]
@@ -158,6 +161,7 @@ class Rake::DevEiate < Rake::TaskLib
158
161
  @licenses = [ DEFAULT_LICENSE ]
159
162
  @version_from = env( :version_from, as_pathname: true ) ||
160
163
  LIB_DIR + "%s.rb" % [ version_file_from(name) ]
164
+ @release_tag_prefix = DEFAULT_RELEASE_TAG_PREFIX
161
165
 
162
166
  @docs_dir = DOCS_DIR.dup
163
167
 
@@ -289,6 +293,10 @@ class Rake::DevEiate < Rake::TaskLib
289
293
  # The version of Ruby required by this gem, in Gem version format.
290
294
  attr_accessor :required_ruby_version
291
295
 
296
+ ##
297
+ # The prefix to use for version tags
298
+ attr_accessor :release_tag_prefix
299
+
292
300
 
293
301
  #
294
302
  # Task definition
@@ -372,6 +380,11 @@ class Rake::DevEiate < Rake::TaskLib
372
380
  self.install_dependencies
373
381
  end
374
382
 
383
+ desc "Turn on maintainer mode: build with extra warnings and debugging"
384
+ task :maint do
385
+ ENV['MAINTAINER_MODE'] = 'yes'
386
+ end
387
+
375
388
  end
376
389
 
377
390
 
@@ -532,6 +545,24 @@ class Rake::DevEiate < Rake::TaskLib
532
545
  end
533
546
 
534
547
 
548
+ ### Return a Regexp that matches the project's convention for versions.
549
+ def release_tag_pattern
550
+ prefix = self.release_tag_prefix
551
+ return /#{prefix}\d+(\.\d+)+/
552
+ end
553
+
554
+
555
+ ### Fetch the list of the versions of releases that have entries in the history
556
+ ### file.
557
+ def get_history_file_versions
558
+ tag_pattern = self.release_tag_pattern
559
+
560
+ return IO.readlines( self.history_file ).grep( tag_pattern ).map do |line|
561
+ line[ /^(?:h\d\.|#+|=+)\s+(#{tag_pattern})\s+/, 1 ]
562
+ end.compact
563
+ end
564
+
565
+
535
566
  ### Returns +true+ if the manifest file exists and is readable.
536
567
  def has_manifest?
537
568
  return self.manifest_file.readable?
@@ -665,6 +696,7 @@ class Rake::DevEiate < Rake::TaskLib
665
696
 
666
697
  ### Install the gems listed in the gem dependencies file.
667
698
  def install_dependencies
699
+ self.prompt.say "Installing dependencies"
668
700
  ruby '-S', 'gem', 'i', '-Ng'
669
701
  end
670
702
 
@@ -744,9 +776,9 @@ class Rake::DevEiate < Rake::TaskLib
744
776
  self.prompt.say( "Summary: " )
745
777
  self.prompt.say( summary, color: :bold )
746
778
  self.prompt.say( "Description:" )
747
- self.prompt.say( description, color: :bold )
779
+ self.prompt.say( " " + description, color: :bold )
748
780
  self.prompt.say( "Homepage:" )
749
- self.prompt.say( homepage, color: :bold )
781
+ self.prompt.say( " " + homepage, color: :bold )
750
782
  self.prompt.say( "\n" )
751
783
  end
752
784
 
@@ -824,4 +856,29 @@ class Rake::DevEiate < Rake::TaskLib
824
856
  join( '/' )
825
857
  end
826
858
 
859
+
860
+ ### Delete the files in the given +filelist+ after confirming with the user.
861
+ def delete_extra_files( *filelist )
862
+ description = humanize_file_list( filelist, ' ' )
863
+ self.prompt.say "Files to delete:"
864
+ self.prompt.say( description )
865
+
866
+ if self.prompt.yes?( "Really delete them?" ) {|q| q.default(false) }
867
+ filelist.each do |f|
868
+ rm_rf( f, verbose: true )
869
+ end
870
+ end
871
+ end
872
+
873
+
874
+ ### Returns a human-scannable file list by joining and truncating the list if it's too long.
875
+ def humanize_file_list( list, indent=FILE_INDENT )
876
+ listtext = list[0..5].join( "\n#{indent}" )
877
+ if list.length > 5
878
+ listtext << " (and %d other/s)" % [ list.length - 5 ]
879
+ end
880
+
881
+ return listtext
882
+ end
883
+
827
884
  end # class Rake::DevEiate
@@ -78,6 +78,10 @@ module Rake::DevEiate::Extension
78
78
  end
79
79
 
80
80
  task :spec => :compile
81
+
82
+ task :maint do
83
+ ENV['V'] = 1
84
+ end
81
85
  end
82
86
 
83
87
 
@@ -89,7 +93,6 @@ module Rake::DevEiate::Extension
89
93
  end
90
94
 
91
95
 
92
-
93
96
  ### Task function -- output debugging for extension tasks.
94
97
  def do_extensions_debug( task, args )
95
98
  self.prompt.say( "Extension config scripts:", color: :bright_green )
@@ -204,6 +204,10 @@ module Rake::DevEiate::Gemspec
204
204
  bt_uri = source_uri.dup
205
205
  bt_uri.host = 'todo.sr.ht'
206
206
  metadata['bug_tracker_uri'] = bt_uri.to_s
207
+ when /\.gitlab\.com/
208
+ bt_uri = source_uri.dup
209
+ bt_uri.path += '-/issues'
210
+ metadata['bug_tracker_uri'] = bt_uri.to_s
207
211
  else
208
212
  self.trace "No idea what bug tracker URIs for %s look like!" % [ source_uri.host ]
209
213
  end
@@ -54,11 +54,23 @@ module Rake::DevEiate::Generate
54
54
 
55
55
  # Abstract named tasks; mostly for invoking programmatically
56
56
  namespace :generate do
57
+
58
+ desc "Generate a Rakefile"
57
59
  task :rakefile => self.rakefile
60
+
61
+ desc "Generate a %s file" % [ self.readme_file ]
58
62
  task :readme => self.readme_file
63
+
64
+ desc "Generate a %s file" % [ self.history_file ]
59
65
  task :history_file => self.history_file
66
+
67
+ desc "Generate a %s file" % [ self.manifest_file ]
60
68
  task :manifest => self.manifest_file
69
+
70
+ desc "Generate a %s file" % [ RUBY_VERSION_FILE ]
61
71
  task :ruby_version_file => RUBY_VERSION_FILE
72
+
73
+ desc "Generate a %s file" % [ GEMSET_FILE ]
62
74
  task :gemset_file => GEMSET_FILE
63
75
  end
64
76
 
@@ -9,7 +9,7 @@ require 'tty/editor'
9
9
  require 'rake/deveiate' unless defined?( Rake::DevEiate )
10
10
 
11
11
 
12
- # Version-control tasks
12
+ # Mercurial version-control tasks
13
13
  module Rake::DevEiate::Hg
14
14
 
15
15
  # The name of the file to edit for the commit message
@@ -18,9 +18,6 @@ module Rake::DevEiate::Hg
18
18
  # The name of the ignore file
19
19
  IGNORE_FILE = Rake::DevEiate::PROJECT_DIR + '.hgignore'
20
20
 
21
- # The prefix to use for release version tags by default
22
- DEFAULT_RELEASE_TAG_PREFIX = 'v'
23
-
24
21
  # Colors for presenting file statuses
25
22
  STATUS_COLORS = {
26
23
  'M' => [:blue], # modified
@@ -36,29 +33,16 @@ module Rake::DevEiate::Hg
36
33
  FILE_INDENT = " • "
37
34
 
38
35
 
39
- ### Set up defaults
40
- def setup( _name, **options )
41
- super if defined?( super )
42
-
43
- @release_tag_prefix = options[:release_tag_prefix] || DEFAULT_RELEASE_TAG_PREFIX
44
- end
45
-
46
-
47
- ##
48
- # The prefix to use for version tags
49
- attr_accessor :release_tag_prefix
50
-
51
-
52
36
  ### Define version-control tasks
53
37
  def define_tasks
54
38
  super if defined?( super )
55
39
 
56
- return unless File.directory?( '.hg' )
40
+ return unless self.is_hg_working_copy?
57
41
 
58
42
  file COMMIT_MSG_FILE.to_s do |task|
59
43
  commit_log = Pathname( task.name )
60
44
 
61
- edit_commit_log( commit_log )
45
+ hg_edit_commit_log( commit_log )
62
46
  unless commit_log.size?
63
47
  self.prompt.error "Empty commit message; aborting."
64
48
  commit_log.unlink if commit_log.exist?
@@ -137,11 +121,17 @@ module Rake::DevEiate::Hg
137
121
  end
138
122
 
139
123
 
124
+ ### Returns +true+ if the current directory looks like a Mercurial working copy.
125
+ def is_hg_working_copy?
126
+ return File.directory?( '.hg' )
127
+ end
128
+
129
+
140
130
  ### The body of the hg:prerelease task.
141
131
  def do_hg_prerelease( task, args )
142
132
  uncommitted_files = self.hg.status( n: true )
143
133
  unless uncommitted_files.empty?
144
- self.show_file_statuses( uncommitted_files )
134
+ self.show_hg_file_statuses( uncommitted_files )
145
135
 
146
136
  fail unless self.prompt.yes?( "Release anyway?" ) do |q|
147
137
  q.default( false )
@@ -150,7 +140,7 @@ module Rake::DevEiate::Hg
150
140
  self.prompt.warn "Okay, releasing with uncommitted versions."
151
141
  end
152
142
 
153
- pkg_version_tag = self.current_version_tag
143
+ pkg_version_tag = self.current_hg_version_tag
154
144
  rev = self.hg.identity.id
155
145
 
156
146
  # Look for a tag for the current release version, and if it exists abort
@@ -316,7 +306,7 @@ module Rake::DevEiate::Hg
316
306
  end
317
307
 
318
308
  self.prompt.say "Checking history..."
319
- missing_tags = self.get_unhistoried_version_tags
309
+ missing_tags = self.get_hg_unhistoried_version_tags
320
310
 
321
311
  unless missing_tags.empty?
322
312
  self.prompt.error "%s needs updating; missing entries for tags: %s" %
@@ -343,8 +333,8 @@ module Rake::DevEiate::Hg
343
333
  abort
344
334
  end
345
335
 
346
- version_tag = self.current_version_tag
347
- previous_tag = self.previous_version_tag
336
+ version_tag = self.current_hg_version_tag
337
+ previous_tag = self.previous_hg_version_tag
348
338
  self.prompt.say "Updating history for %s..." % [ version_tag ]
349
339
 
350
340
  if self.get_history_file_versions.include?( version_tag )
@@ -408,27 +398,31 @@ module Rake::DevEiate::Hg
408
398
  def do_hg_debug( task, args )
409
399
  self.prompt.say( "Hg Info", color: :bright_green )
410
400
 
411
- self.prompt.say( "Mercurial version: " )
412
- self.prompt.say( Hglib.version, color: :bold )
413
- self.prompt.say( "Release tag prefix: " )
414
- self.prompt.say( self.release_tag_prefix, color: :bold )
401
+ if self.is_hg_working_copy?
402
+ self.prompt.say( "Mercurial version: " )
403
+ self.prompt.say( Hglib.version, color: :bold )
404
+ self.prompt.say( "Release tag prefix: " )
405
+ self.prompt.say( self.release_tag_prefix, color: :bold )
415
406
 
416
- self.prompt.say( "Version tags:" )
417
- self.get_version_tag_names.each do |tag|
418
- self.prompt.say( '- ' )
419
- self.prompt.say( tag, color: :bold )
420
- end
407
+ self.prompt.say( "Version tags:" )
408
+ self.get_hg_version_tag_names.each do |tag|
409
+ self.prompt.say( '- ' )
410
+ self.prompt.say( tag, color: :bold )
411
+ end
421
412
 
422
- self.prompt.say( "History file versions:" )
423
- self.get_history_file_versions.each do |tag|
424
- self.prompt.say( '- ' )
425
- self.prompt.say( tag, color: :bold )
426
- end
413
+ self.prompt.say( "History file versions:" )
414
+ self.get_history_file_versions.each do |tag|
415
+ self.prompt.say( '- ' )
416
+ self.prompt.say( tag, color: :bold )
417
+ end
427
418
 
428
- self.prompt.say( "Unhistoried version tags:" )
429
- self.get_unhistoried_version_tags.each do |tag|
430
- self.prompt.say( '- ' )
431
- self.prompt.say( tag, color: :bold )
419
+ self.prompt.say( "Unhistoried version tags:" )
420
+ self.get_hg_unhistoried_version_tags.each do |tag|
421
+ self.prompt.say( '- ' )
422
+ self.prompt.say( tag, color: :bold )
423
+ end
424
+ else
425
+ self.prompt.say( "Doesn't appear to be a Mercurial repository." )
432
426
  end
433
427
 
434
428
  self.prompt.say( "\n" )
@@ -447,7 +441,7 @@ module Rake::DevEiate::Hg
447
441
 
448
442
  ### Given a +status_hash+ like that returned by Hglib::Repo.status, return a
449
443
  ### string description of the files and their status.
450
- def show_file_statuses( statuses )
444
+ def show_hg_file_statuses( statuses )
451
445
  lines = statuses.map do |entry|
452
446
  status_color = STATUS_COLORS[ entry.status ]
453
447
  " %s: %s" % [
@@ -462,48 +456,30 @@ module Rake::DevEiate::Hg
462
456
 
463
457
 
464
458
  ### Fetch the name of the current version's tag.
465
- def current_version_tag
459
+ def current_hg_version_tag
466
460
  return [ self.release_tag_prefix, self.version ].join
467
461
  end
468
462
 
469
463
 
470
464
  ### Fetch the name of the tag for the previous version.
471
- def previous_version_tag
472
- return self.get_version_tag_names.first
473
- end
474
-
475
-
476
- ### Return a Regexp that matches the project's convention for versions.
477
- def release_tag_pattern
478
- prefix = self.release_tag_prefix
479
- return /#{prefix}\d+(\.\d+)+/
465
+ def previous_hg_version_tag
466
+ return self.get_hg_version_tag_names.first
480
467
  end
481
468
 
482
469
 
483
470
  ### Fetch the list of names of tags that match the versioning scheme of this
484
471
  ### project.
485
- def get_version_tag_names
472
+ def get_hg_version_tag_names
486
473
  tag_pattern = self.release_tag_pattern
487
474
  return self.hg.tags.map( &:name ).grep( tag_pattern )
488
475
  end
489
476
 
490
477
 
491
- ### Fetch the list of the versions of releases that have entries in the history
492
- ### file.
493
- def get_history_file_versions
494
- tag_pattern = self.release_tag_pattern
495
-
496
- return IO.readlines( self.history_file ).grep( tag_pattern ).map do |line|
497
- line[ /^(?:h\d\.|#+|=+)\s+(#{tag_pattern})\s+/, 1 ]
498
- end.compact
499
- end
500
-
501
-
502
478
  ### Read the list of tags and return any that don't have a corresponding section
503
479
  ### in the history file.
504
- def get_unhistoried_version_tags( include_current_version: true )
505
- release_tags = self.get_version_tag_names
506
- release_tags.unshift( self.current_version_tag ) if include_current_version
480
+ def get_hg_unhistoried_version_tags( include_current_version: true )
481
+ release_tags = self.get_hg_version_tag_names
482
+ release_tags.unshift( self.current_hg_version_tag ) if include_current_version
507
483
 
508
484
  self.get_history_file_versions.each do |tag|
509
485
  release_tags.delete( tag )
@@ -514,7 +490,7 @@ module Rake::DevEiate::Hg
514
490
 
515
491
 
516
492
  ### Generate a commit log and invoke the user's editor on it.
517
- def edit_commit_log( logfile )
493
+ def hg_edit_commit_log( logfile )
518
494
  diff = self.hg.diff
519
495
 
520
496
  TTY::Editor.open( logfile, text: diff )
@@ -533,32 +509,6 @@ module Rake::DevEiate::Hg
533
509
  end
534
510
  end
535
511
 
536
-
537
- ### Delete the files in the given +filelist+ after confirming with the user.
538
- def delete_extra_files( *filelist )
539
- description = humanize_file_list( filelist, ' ' )
540
- self.prompt.say "Files to delete:"
541
- self.prompt.say( description )
542
-
543
- if self.prompt.yes?( "Really delete them?" ) {|q| q.default(false) }
544
- filelist.each do |f|
545
- rm_rf( f, verbose: true )
546
- end
547
- end
548
- end
549
-
550
-
551
- ### Returns a human-scannable file list by joining and truncating the list if it's too long.
552
- def humanize_file_list( list, indent=FILE_INDENT )
553
- listtext = list[0..5].join( "\n#{indent}" )
554
- if list.length > 5
555
- listtext << " (and %d other/s)" % [ list.length - 5 ]
556
- end
557
-
558
- return listtext
559
- end
560
-
561
-
562
512
  end # module Rake::DevEiate::Hg
563
513
 
564
514
 
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.15.1
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -33,7 +33,7 @@ cert_chain:
33
33
  83uuAYSy65yXDGXXPVBeKPVnYrqp91pqpS5Nh7wfuiCrE8lgU8PATh7K4BV1UhAT
34
34
  0MHbAT42wTYkfUj3
35
35
  -----END CERTIFICATE-----
36
- date: 2020-10-29 00:00:00.000000000 Z
36
+ date: 2020-11-23 00:00:00.000000000 Z
37
37
  dependencies:
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: rake
@@ -167,6 +167,20 @@ dependencies:
167
167
  - - "~>"
168
168
  - !ruby/object:Gem::Version
169
169
  version: '0.7'
170
+ - !ruby/object:Gem::Dependency
171
+ name: git
172
+ requirement: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - "~>"
175
+ - !ruby/object:Gem::Version
176
+ version: '1.7'
177
+ type: :runtime
178
+ prerelease: false
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - "~>"
182
+ - !ruby/object:Gem::Version
183
+ version: '1.7'
170
184
  - !ruby/object:Gem::Dependency
171
185
  name: rdoc-generator-fivefish
172
186
  requirement: !ruby/object:Gem::Requirement
@@ -233,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
247
  - !ruby/object:Gem::Version
234
248
  version: '0'
235
249
  requirements: []
236
- rubygems_version: 3.1.2
250
+ rubygems_version: 3.1.4
237
251
  signing_key:
238
252
  specification_version: 4
239
253
  summary: This is a collection of Rake tasks I use for development.
metadata.gz.sig CHANGED
Binary file