qb 0.3.20 → 0.3.21

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
  SHA1:
3
- metadata.gz: 85f1f3cd75304ea28284a8a7e9cea53dcae4c7f2
4
- data.tar.gz: ccd49744cc2b48260201e38bed1776998ab3b13d
3
+ metadata.gz: 92359f70296e31a7e883ac575c8164ce444c8cab
4
+ data.tar.gz: 8070f79142d4c489a6a7961f0d20e37d88a8ceba
5
5
  SHA512:
6
- metadata.gz: 6a8f68092bb909d9a743c22c76e1a7c3a183105b45da634a19e6d428a6282363299d7d0033ea866e45b870a72f3e47098e1806290b8735d385ccd391a3f382ac
7
- data.tar.gz: 2251cdc6d535d543826906478caa30b277e243695b980f40d18d5c8def5bf9630fe904c3bc046f605224b9e82027981fcc05a86892228941bd06d6901d8eca33
6
+ metadata.gz: 3560b2479fcaeccd06404b3a39fab67c3d14e68c3426e5fa94beab60ba721ff4f62a93feb66f2f64ddf712c56902a64e96144687db3f525dc3ef7aaf89a2c9c6
7
+ data.tar.gz: 81aa54dc74f784127245c3c895bdafdb2874f76f5c4f5a96e351a95acc501e08c75a88bc7d1e30a44acef9d3257f220a41b9bedb0a189e98f4d63063dfd909c5
@@ -4,7 +4,7 @@ module QB
4
4
 
5
5
  GEM_NAME = 'qb'
6
6
 
7
- VERSION = "0.3.20"
7
+ VERSION = '0.3.21'
8
8
 
9
9
  MIN_ANSIBLE_VERSION = Gem::Version.new '2.1.2'
10
10
 
@@ -37,7 +37,16 @@ def main
37
37
  end
38
38
  end
39
39
 
40
- result = b.eval args.fetch('src')
40
+ if args['src'] && args['file']
41
+ raise "Don't provide both src and file!"
42
+ end
43
+
44
+ if !args['src'] && !args['file']
45
+ raise "Must provide one of src or file!"
46
+ end
47
+
48
+ src = args['src'] || File.read( args['file'] )
49
+ result = b.eval src
41
50
 
42
51
  if result.is_a? Hash
43
52
  result = namespace(args['namespace'], result) if args['namespace']
@@ -79,4 +88,4 @@ def main
79
88
  end
80
89
  end
81
90
 
82
- main if __FILE__ == $0
91
+ main if __FILE__ == $0
@@ -0,0 +1,78 @@
1
+
2
+ # 1. Find the gemspec path
3
+
4
+ spec_pattern = "#{ gem_root }/*.gemspec"
5
+ spec_path = Dir.glob(spec_pattern)[0]
6
+
7
+ if spec_path.nil?
8
+ raise "No gemspec found for pattern #{ spec_pattern }"
9
+ end
10
+
11
+
12
+ # 2. Get the gem name and version
13
+ #
14
+ # The gem *may already be loaded*, which would break the standard gemspec
15
+ # approach because the `require` will be a no-op, resulting in the
16
+ # already loaded version number being used instead of the one in the
17
+ # file.
18
+ #
19
+ # This is only a problem for NRSER, which is loaded in vars.rb.rb, but
20
+ # this fix should work for any module without worrying about what is
21
+ # currently loaded... grab the info we need in a clean child process.
22
+ #
23
+ code = <<-END
24
+ require 'json'
25
+ spec = Gem::Specification.load(#{ JSON.dump spec_path })
26
+ puts JSON.dump({
27
+ 'version' => spec.version.version,
28
+ 'name' => spec.name,
29
+ })
30
+ END
31
+
32
+ obj = JSON.load `ruby -e #{ code.shellescape }`
33
+ version = Gem::Version.new obj['version']
34
+ name = obj['name']
35
+
36
+
37
+ # 3. Figure out what the next version will be
38
+
39
+ segments = version.segments.dup
40
+ segments.pop while segments.any? {|s| s.is_a? String}
41
+
42
+ segments[-1] = segments[-1].succ
43
+ segments << 'dev'
44
+
45
+ next_version = segments.join('.')
46
+
47
+
48
+ # 4. Figure out what file the version definition lives in
49
+
50
+ version_path = if version_file.nil?
51
+ bare_path = File.join( gem_root, 'VERSION' )
52
+
53
+ if File.file?( bare_path )
54
+ bare_path
55
+ else
56
+ # quick hack to deal with `a-b => a/b` gem names
57
+ name_path = name.gsub '-', '/'
58
+
59
+ File.join gem_root, 'lib', name_path, 'version.rb'
60
+ end
61
+ else
62
+ File.expand_path version_file, cwd
63
+ end
64
+
65
+ unless File.file?( version_path )
66
+ raise "Version file not found at #{ version_path }"
67
+ end
68
+
69
+ # 5. Return the facts
70
+
71
+ {
72
+ 'name' => name,
73
+ 'current_version' => version.version,
74
+ 'release_version' => version.release,
75
+ 'next_version' => next_version,
76
+ 'version_path' => version_path,
77
+ 'spec_path' => spec_path,
78
+ }
@@ -0,0 +1,43 @@
1
+ # Set the gem version in either a `VERSION` constant in a Ruby source file
2
+ # or as the sole contents of a `<gem_root>/VERSION` file.
3
+
4
+ # Handle Ruby file
5
+ - when: (gem_version_path | basename) != 'VERSION'
6
+ name: >-
7
+ Replace version string with '{{ version }}' in `{{ gem_version_path }}`
8
+ replace:
9
+ dest: >-
10
+ {{ gem_version_path }}
11
+ regexp: >-
12
+ VERSION\s*=\s*["'][^"']+["']
13
+ replace: >-
14
+ VERSION = '{{ version }}'
15
+
16
+
17
+ # Handle VERSION file
18
+ - when: (gem_version_path | basename) == 'VERSION'
19
+ name: >-
20
+ Overwrite VERSION file at `{{ gem_version_path }}` with '{{ version }}'
21
+ copy:
22
+ dest: >-
23
+ {{ gem_version_path }}
24
+ content: >-
25
+ {{ version }}
26
+
27
+
28
+ - name: >-
29
+ Add version file `{{ gem_version_path }}` to Git
30
+ command: >-
31
+ git add {{ gem_version_path | quote }}
32
+ args:
33
+ chdir: >-
34
+ {{ gem_root }}
35
+
36
+
37
+ - name: >-
38
+ Commit version file `{{ gem_version_path }}` in Git
39
+ command: >-
40
+ git commit -m {{ commit_message | quote }}
41
+ args:
42
+ chdir: >-
43
+ {{ gem_root }}
@@ -63,64 +63,15 @@
63
63
  gem_root: "{{ gem_root }}"
64
64
  version_file: "{{ gem_version_file }}"
65
65
  cwd: "{{ qb_cwd }}"
66
- src: |
67
- spec_pattern = "#{ gem_root }/*.gemspec"
68
- spec_path = Dir.glob(spec_pattern)[0]
69
-
70
- if spec_path.nil?
71
- raise "No gemspec found for pattern #{ spec_pattern }"
72
- end
73
-
74
- # The gem *may already be loaded*, which would break the standard gemspec
75
- # approach because the `require` will be a no-op, resulting in the
76
- # already loaded version number being used instead of the one in the
77
- # file.
78
- #
79
- # This is only a problem for NRSER, which is loaded in vars.rb.rb, but
80
- # this fix should work for any module without worrying about what is
81
- # currently loaded... grab the info we need in a clean child process.
82
- #
83
- code = <<-END
84
- require 'json'
85
- spec = Gem::Specification.load(#{ JSON.dump spec_path })
86
- puts JSON.dump({
87
- 'version' => spec.version.version,
88
- 'name' => spec.name,
89
- })
90
- END
91
- obj = JSON.load `ruby -e #{ code.shellescape }`
92
- version = Gem::Version.new obj['version']
93
- name = obj['name']
94
-
95
- segments = version.segments.dup
96
- segments.pop while segments.any? {|s| s.is_a? String}
97
-
98
- segments[-1] = segments[-1].succ
99
- segments << 'dev'
100
-
101
- next_version = segments.join('.')
102
-
103
- version_path = if version_file.nil?
104
- # quick hack to deal with `a-b => a/b` gem names
105
- name_path = name.gsub '-', '/'
106
-
107
- File.join gem_root, 'lib', name_path, 'version.rb'
108
- else
109
- File.expand_path version_file, cwd
110
- end
111
-
112
- unless File.file?( version_path )
113
- raise "Version file not found at #{ version_path }"
114
- end
115
-
116
- {
117
- 'name' => name,
118
- 'current_version' => version.version,
119
- 'release_version' => version.release,
120
- 'next_version' => next_version,
121
- 'version_path' => version_path,
122
- 'spec_path' => spec_path,
123
- }
66
+ file: >-
67
+ {{ role_path }}/scripts/gem_and_version_info.rb
68
+ provides:
69
+ gem_name: non_empty_str
70
+ gem_current_version: non_empty_str
71
+ gem_release_version: non_empty_str
72
+ gem_next_version: non_empty_str
73
+ gem_version_path: abs_path
74
+ gem_spec_path: abs_path
124
75
 
125
76
 
126
77
  - debug:
@@ -131,46 +82,23 @@
131
82
  {{ gem_release_version }}
132
83
  - next: >-
133
84
  {{ gem_next_version }}
134
- # - spec_path: >-
135
- # {{ gem_spec_path }}
136
- # - version_path: >-
137
- # {{ gem_version_path }
85
+ - spec_path: >-
86
+ {{ gem_spec_path }}
87
+ - version_path: >-
88
+ {{ gem_version_path }}
138
89
 
139
90
 
140
91
  - when: gem_current_version != gem_release_version
141
92
  name: >-
142
93
  Change version in `{{ gem_version_path }}` from current
143
- `{{ gem_current_version }}` to `{{ gem_release_version }}`.
144
- block:
145
- - name: >-
146
- Change version to release version `{{ gem_release_version }}`.
147
- replace:
148
- dest: >-
149
- {{ gem_version_path }}
150
- regexp: >-
151
- VERSION\s*=\s*["']{{ gem_current_version }}["']
152
- replace: >-
153
- VERSION = "{{ gem_release_version }}"
154
-
155
-
156
- - when: gem_current_version != gem_release_version
157
- name: >-
158
- Add version file `{{ gem_version_path }}` to Git.
159
- command: >-
160
- git add {{ gem_version_path }}
161
- args:
162
- chdir: >-
163
- {{ gem_root }}
164
-
165
-
166
- - name: >-
167
- Commit version file `{{ gem_version_path }}` in Git.
168
- command: git commit -m "bump to v{{ gem_release_version }}"
169
- args:
170
- chdir: >-
171
- {{ gem_root }}
172
- when: gem_current_version != gem_release_version
173
- # /block
94
+ `{{ gem_current_version }}` to release `{{ gem_release_version }}`.
95
+ include_tasks: >-
96
+ {{ role_path }}/tasks/_set_version.yml
97
+ vars:
98
+ version: >-
99
+ {{ gem_release_version }}
100
+ commit_message: >-
101
+ bump to v{{ gem_release_version }}
174
102
 
175
103
 
176
104
  - name: >-
@@ -181,31 +109,13 @@
181
109
 
182
110
  - name: >-
183
111
  Change version to next version `{{ gem_next_version }}`.
184
- replace:
185
- dest: >-
186
- {{ gem_version_path }}
187
- regexp: >-
188
- VERSION\s*=\s*["']{{ gem_release_version }}["']
189
- replace: >-
190
- VERSION = "{{ gem_next_version }}"
191
-
192
-
193
- - name: >-
194
- Add next dev version to git.
195
- command: >-
196
- git add {{ gem_version_path }}
197
- args:
198
- chdir: >-
199
- {{ gem_root }}
200
-
201
-
202
- - name: >-
203
- Commit next dev version.
204
- command: >-
205
- git commit -m "start {{ gem_next_version }}"
206
- args:
207
- chdir: >-
208
- {{ gem_root }}
112
+ include_tasks: >-
113
+ {{ role_path }}/tasks/_set_version.yml
114
+ vars:
115
+ version: >-
116
+ {{ gem_next_version }}
117
+ commit_message: >-
118
+ start {{ gem_next_version }}
209
119
 
210
120
 
211
121
  - name: >-
@@ -1,5 +1,5 @@
1
1
  ---
2
- # defaults file for qb/rspex/generate
2
+ # defaults file for qb/ruby/nrser/rspex/generate
3
3
 
4
4
  gem_root: >-
5
5
  {{ qb_dir }}
@@ -1,5 +1,5 @@
1
1
  ---
2
- # meta file for qb/rspex/generate
2
+ # meta file for qb/ruby/nrser/rspex/generate
3
3
 
4
4
  allow_duplicates: yes
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- # meta/qb.yml file for qb/rspex/generate
2
+ # meta/qb.yml file for qb/ruby/nrser/rspex/generate
3
3
  #
4
4
  # qb settings for this role. see README.md for more info.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  ---
2
- # tasks file for qb/rspex/generate
2
+ # tasks file for qb/ruby/nrser/rspex/generate
3
3
 
4
4
  - include_tasks: >-
5
5
  {{ role_path }}/tasks/helpers.yml
@@ -0,0 +1,2 @@
1
+ ---
2
+ # defaults file for qb/ruby/nrser/rspex/issue
@@ -1,5 +1,5 @@
1
1
  ---
2
- # meta file for qb/rspex/issue
2
+ # meta file for qb/ruby/nrser/rspex/issue
3
3
 
4
4
  allow_duplicates: yes
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- # meta/qb.yml file for qb/rspex/issue
2
+ # meta/qb.yml file for qb/ruby/nrser/rspex/issue
3
3
  #
4
4
  # qb settings for this role. see README.md for more info.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  ---
2
- # tasks file for qb/rspex/issue
2
+ # tasks file for qb/ruby/nrser/rspex/issue
3
3
 
4
4
  - set_fact:
5
5
  issue: >-
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.20
4
+ version: 0.3.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - nrser
@@ -696,17 +696,6 @@ files:
696
696
  - roles/qb/role/templates/tasks/main.yml.j2
697
697
  - roles/qb/role/templates/vars/main.yml.j2
698
698
  - roles/qb/role/vars/main.yml
699
- - roles/qb/rspex/generate/defaults/main.yml
700
- - roles/qb/rspex/generate/meta/main.yml
701
- - roles/qb/rspex/generate/meta/qb.yml
702
- - roles/qb/rspex/generate/tasks/class.yml
703
- - roles/qb/rspex/generate/tasks/helpers.yml
704
- - roles/qb/rspex/generate/tasks/main.yml
705
- - roles/qb/rspex/generate/templates/class_spec.rb.j2
706
- - roles/qb/rspex/issue/defaults/main.yml
707
- - roles/qb/rspex/issue/meta/main.yml
708
- - roles/qb/rspex/issue/meta/qb.yml
709
- - roles/qb/rspex/issue/tasks/main.yml
710
699
  - roles/qb/ruby/bundler/.qb-options.yml
711
700
  - roles/qb/ruby/bundler/defaults/main.yml
712
701
  - roles/qb/ruby/bundler/filter_plugins/bundler_filters.py
@@ -747,6 +736,8 @@ files:
747
736
  - roles/qb/ruby/gem/release/defaults/main.yml
748
737
  - roles/qb/ruby/gem/release/meta/main.yml
749
738
  - roles/qb/ruby/gem/release/meta/qb.yml
739
+ - roles/qb/ruby/gem/release/scripts/gem_and_version_info.rb
740
+ - roles/qb/ruby/gem/release/tasks/_set_version.yml
750
741
  - roles/qb/ruby/gem/release/tasks/main.yml
751
742
  - roles/qb/ruby/gem/release/tasks/release.yml
752
743
  - roles/qb/ruby/gem/unhack/README.md
@@ -754,6 +745,17 @@ files:
754
745
  - roles/qb/ruby/gem/unhack/meta/main.yml
755
746
  - roles/qb/ruby/gem/unhack/meta/qb.yml
756
747
  - roles/qb/ruby/gem/unhack/tasks/main.yml
748
+ - roles/qb/ruby/nrser/rspex/generate/defaults/main.yml
749
+ - roles/qb/ruby/nrser/rspex/generate/meta/main.yml
750
+ - roles/qb/ruby/nrser/rspex/generate/meta/qb.yml
751
+ - roles/qb/ruby/nrser/rspex/generate/tasks/class.yml
752
+ - roles/qb/ruby/nrser/rspex/generate/tasks/helpers.yml
753
+ - roles/qb/ruby/nrser/rspex/generate/tasks/main.yml
754
+ - roles/qb/ruby/nrser/rspex/generate/templates/class_spec.rb.j2
755
+ - roles/qb/ruby/nrser/rspex/issue/defaults/main.yml
756
+ - roles/qb/ruby/nrser/rspex/issue/meta/main.yml
757
+ - roles/qb/ruby/nrser/rspex/issue/meta/qb.yml
758
+ - roles/qb/ruby/nrser/rspex/issue/tasks/main.yml
757
759
  - roles/qb/ruby/rspec/setup/defaults/main.yml
758
760
  - roles/qb/ruby/rspec/setup/meta/main.yml
759
761
  - roles/qb/ruby/rspec/setup/meta/qb.yml
@@ -1,2 +0,0 @@
1
- ---
2
- # defaults file for qb/rspex/issue