tworingtools 1.4.2 → 1.5.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: 1a93d5c2fe52f7cdde378dbff7071aa17d7ee1952ce3ab31ed06c89b1cb70818
4
- data.tar.gz: 6cb5b3dd0979f338b06576c6e13a9cb56c251022919e8d08d756b55bf2947747
3
+ metadata.gz: 6af08c45396b88d1934326b852314dbb5f82b14e2d4fab645ce20b748b73814e
4
+ data.tar.gz: 65ba5360b292fbbe41a239b7543613639ae653aafcc137bda30d6e3db1310e3c
5
5
  SHA512:
6
- metadata.gz: eb2239f85d86782358fea547f9a4d89485e425effb4915f7c78d1277b30e082357dfff40da04f13fbf1a245170a3c544182ccd6e5f62b49ea974d1da5594232e
7
- data.tar.gz: 96aacfc1244788dd80de236314e6e36d54c93d3827f14db51fb00688d120c511993f85a5ec42770c7dccd14a398bc0e1466475353ab284c40dda7c3bcb4fef6d
6
+ metadata.gz: dd068730c8e522849dd7946cf4824b1645cd98c6ef831133e12f4ed5bd121c7dc2ca193e8b1b5fe35d2c7a8533eda71c7aaadf642af31a3704828ea458f8fbdf
7
+ data.tar.gz: 43637a632b09abbc10d249625875d72f5b787f75d0c0fa24d3c34cd6a95f96462b3558cdffa0067eb9204183a2bf7b37106724bdd2b1ddaef02aa59f031c9dae
@@ -0,0 +1,56 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'open3'
4
+ require 'optparse'
5
+ require_relative '../lib/echoexec'
6
+
7
+ options = {}
8
+ parser = OptionParser.new do |opts|
9
+ opts.banner = <<~BANNER
10
+
11
+ Usage: bumpr <component> /path/to/../version.file
12
+
13
+ Component types:
14
+
15
+ - "major", "minor", "patch" semantic version components
16
+ - "build" numeric build numbers
17
+
18
+ BANNER
19
+ opts.on('-h', '--help', 'Print this help message.') do
20
+ puts opts
21
+ exit
22
+ end
23
+ end
24
+ parser.parse!
25
+
26
+ modified_file_count, stderr, status = Open3.capture3("git status --porcelain | egrep '^(M| M)' | wc -l")
27
+ if modified_file_count.to_i > 0 then
28
+ echo_and_exec 'git stash'
29
+ end
30
+
31
+ component = ARGV[0]
32
+ version_file = ARGV[1]
33
+
34
+ # map this scripts argument values (key) to vrsnr's argument values (value)
35
+ argument = {
36
+ 'major' => 'major',
37
+ 'minor' => 'minor',
38
+ 'patch' => 'patch',
39
+ 'build' => '--numeric'
40
+ }[component]
41
+
42
+ if argument == nil then
43
+ puts 'Unrecognized version component.'
44
+ exit 1
45
+ end
46
+
47
+ command = "vrsn #{argument} --file #{version_file}"
48
+ puts command
49
+ stdout, stderr, status = Open3.capture3(command)
50
+
51
+ echo_and_exec "git add #{version_file}"
52
+ echo_and_exec "git commit --message \"#{stdout}\""
53
+
54
+ if modified_file_count.to_i > 0 then
55
+ echo_and_exec "git stash pop"
56
+ end
@@ -32,16 +32,16 @@ version_file = "#{podspec}.podspec"
32
32
 
33
33
  current_version = `vrsn --read --file #{version_file}`.strip
34
34
  branch = "#{podspec}-#{current_version}-release"
35
- `git checkout -b #{branch}`
35
+ echoexec "git checkout -b #{branch}"
36
36
 
37
37
  tag_root = "#{podspec}-#{current_version}-RC"
38
38
  release_candidate_number = `git tag --list | grep #{tag_root} | wc -l`.strip.to_i + 1
39
39
  release_candidate_tag = "#{tag_root}#{release_candidate_number}"
40
- `sed -i '' \"s/\\(\\.version *= *'\\).*'/\\1\"#{current_version}-RC#{release_candidate_number}\"\\'/g\" #{version_file}`
41
- `git add #{version_file}`
42
- `git commit --message 'TEMP: set podspec version to release candidate version'`
43
- `git tag #{release_candidate_tag}`
44
- `git push --tags`
40
+ echoexec "sed -i '' \"s/\\(\\.version *= *'\\).*'/\\1\"#{current_version}-RC#{release_candidate_number}\"\\'/g\" #{version_file}"
41
+ echoexec "git add #{version_file}"
42
+ echoexec "git commit --message 'TEMP: set podspec version to release candidate version'"
43
+ echoexec "git tag #{release_candidate_tag}"
44
+ echoexec 'git push --tags'
45
45
 
46
46
  puts "About to lint the podspec. This takes a while... (it is now #{Time.now})"
47
47
  spec_lint_flags = Array.new
@@ -53,8 +53,8 @@ if options[:verbose] != nil then
53
53
  end
54
54
  stdout, stderr, status = Open3.capture3 "rbenv exec bundle exec pod spec lint #{podspec}.podspec #{spec_lint_flags.join ' '}"
55
55
 
56
- `git checkout master`
57
- `git branch -D #{branch}`
56
+ echoexec 'git checkout master'
57
+ echoexec "git branch -D #{branch}"
58
58
 
59
59
  if status != 0 then
60
60
  puts "Podspec failed validation:\nstdout: #{stdout}\nstderr: #{stderr}"
@@ -1,6 +1,8 @@
1
1
  #! /usr/bin/env ruby
2
2
 
3
+ require 'open3'
3
4
  require 'optparse'
5
+ require_relative '../lib/echoexec'
4
6
 
5
7
  podspec = ARGV[0]
6
8
 
@@ -17,7 +19,7 @@ parser = OptionParser.new do |opts|
17
19
  BANNER
18
20
  opts.on('-w', '--allow-warnings', 'Pass \'--allow-warnings\' to \'cocoapods spec lint\'.') do |force| options[:allow_warnings] = true end
19
21
  opts.on('-v', '--verbose', 'Pass \'--verbose\' to \'cocoapods spec lint\'.') do |name| options[:verbose] = true end
20
- opts.on('-rREPO', '--repo=REPO', 'By default, release-podspec pushed the podspec to CocoaPods trunk. By supplying this argument, instead of \`pod trunk push\`, \`pod repo push\` is used instead.') do |repo| options[:repo] = repo end
22
+ opts.on('-rREPO', '--repo=REPO', 'By default, release-podspec pushes the podspec to CocoaPods trunk. By supplying this argument, instead of \`pod trunk push\`, \`pod repo push\` is used instead.') do |repo| options[:repo] = repo end
21
23
  opts.on('-h', '--help', 'Print this help message.') do
22
24
  puts opts
23
25
  exit
@@ -27,8 +29,11 @@ parser.parse!
27
29
 
28
30
  version_file = "#{podspec}.podspec"
29
31
  version = `vrsn --read --file #{version_file}`
30
- `git tag #{podspec}-#{version.strip}`
31
- `git push --tags`
32
+ stdout, stderr, status = Open3.capture3 "git tag #{podspec}-#{version.strip}"
33
+ if status != 0
34
+ fail 'Tag already exists.'
35
+ end
36
+ echo_and_exec 'git push --tags'
32
37
 
33
38
  spec_lint_flags = Array.new
34
39
  if options[:allow_warnings] != nil then
@@ -38,10 +43,18 @@ if options[:verbose] != nil then
38
43
  spec_lint_flags << '--verbose'
39
44
  end
40
45
 
41
- repo = String.new
46
+ command = String.new
42
47
  if options[:repo] != nil then
43
- `rbenv exec bundle exec pod repo push #{options[:repo]} #{podspec}.podspec #{spec_lint_flags.join ' '}`
48
+ command = "rbenv exec bundle exec pod repo push #{options[:repo]} #{podspec}.podspec #{spec_lint_flags.join ' '}"
44
49
  else
45
- `rbenv exec bundle exec pod trunk push #{podspec}.podspec #{spec_lint_flags.join ' '}`
50
+ command = "rbenv exec bundle exec pod trunk push #{podspec}.podspec #{spec_lint_flags.join ' '}"
46
51
  end
47
52
 
53
+ puts command
54
+ stdout, stderr, status = Open3.capture3 command
55
+
56
+ unless status == 0 then
57
+ fail stderr
58
+ else
59
+ puts 'Successfully pushed spec!'
60
+ end
@@ -1,6 +1,7 @@
1
1
  #! /usr/bin/env ruby
2
2
 
3
3
  require 'optparse'
4
+ require_relative '../lib/echoexec'
4
5
 
5
6
  podspec = ARGV[0]
6
7
 
@@ -25,5 +26,5 @@ parser.parse!
25
26
  version_file = "#{podspec}.podspec"
26
27
  version = `vrsn --read --file #{version_file}`.strip
27
28
  tag = "#{podspec}-#{version}"
28
- `git tag --delete #{tag}`
29
- `git push --delete origin #{tag}`
29
+ echo_and_exec "git tag --delete #{tag}"
30
+ echo_and_exec "git push --delete origin #{tag}"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tworingtools
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew McKnight
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-25 00:00:00.000000000 Z
11
+ date: 2019-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: github_api
@@ -42,6 +42,10 @@ description: |2
42
42
  - rebuild-sims: Delete all simulators and recreate one for each compatible platform and device type pairing.
43
43
  - sync-forks: Make sure all your GitHub forks are clones into a given directory, and have “upstream” remotes pointing to the repos that were forked.
44
44
  - changetag: Extract changelog entries to write into git tag annotation messages.
45
+ - prerelease-podspec: Branch and create/push a release candidate tag, modify the podspec to use that version tag, and try linting it.
46
+ - release-podspec: Create a tag with the version and push it to repo origin, push podspec to CocoaPods trunk.
47
+ - revert-failed-release-tag: In case `release-podspec` fails, make sure the tag it may have created/pushed is destroyed before trying to run it again after fixing, so it doesn't break due to the tag already existing the second time around.
48
+ - bumpr: Increment the desired part of a version number (major/minor/patch/build) and write the change to a git commit.
45
49
  email: andrew@tworingsoft.com
46
50
  executables:
47
51
  - rebuild-sims
@@ -50,9 +54,11 @@ executables:
50
54
  - prerelease-podspec
51
55
  - release-podspec
52
56
  - revert-failed-release-tag
57
+ - bumpr
53
58
  extensions: []
54
59
  extra_rdoc_files: []
55
60
  files:
61
+ - bin/bumpr
56
62
  - bin/changetag
57
63
  - bin/prerelease-podspec
58
64
  - bin/rebuild-sims