rake-deveiate 0.15.1 → 0.16.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: 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