simp-rake-helpers 3.5.1 → 3.6.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
  SHA1:
3
- metadata.gz: 0f3004fea3e9d6cba41aa58d83edf6371cc7377d
4
- data.tar.gz: 5882f564f3da59c79ea92a7a290cac2cb44377d9
3
+ metadata.gz: 7f87a58cc38f4d236c1c66e94f9145377b430546
4
+ data.tar.gz: 1f2c7a736e3974a0ce72a65d778b8cd28c75f318
5
5
  SHA512:
6
- metadata.gz: 4be260de21206c756ded9772383a9b51408730b7d5af43cfc2372ed052a9f88099aae14e4bf209a599563ed66ff64cc5171fdb97c080a26d50f93d82cee5defb
7
- data.tar.gz: 8860976873dae06cc31adb53e2c2ab7c14e8267cdd73bc4ceba753a4b46c1d7c63dee831776d586e6e1844b55bfd22171ce499811b6e555f273125b4ffeb9e49
6
+ metadata.gz: 2649f7dc066a02e254e531bd3901b568f0e846892418276a30a5ccd190c3cadbcdb468372038aaf4df245512f6b4b2f4d5931729cb1505b0083db63eed49fea2
7
+ data.tar.gz: eea647a6d2f28d9ace0458b12119888a179cacb248807842486339cd04bd83bd9ddef879a5ffd3bfefec9187d371fd6b8d3ea2694902b0fd941e8465cd05ba90
data/.travis.yml CHANGED
@@ -1,17 +1,32 @@
1
- ---
2
1
  language: ruby
3
2
  sudo: required
4
3
  before_install:
5
- - sudo apt-get update -qq
6
- - sudo apt-get install -y rpm
7
- - rm Gemfile.lock || true
8
- bundler_args: --without development
4
+ - sudo apt-get update -qq
5
+ - sudo apt-get install -y rpm
6
+ - rm Gemfile.lock || true
7
+ bundler_args: "--without development --path .vendor"
9
8
  notifications:
10
9
  email: false
11
10
  rvm:
12
11
  - 2.1.9
13
12
  - 2.3.3
14
13
  script:
15
- - "bundle exec rake spec"
14
+ - 'bundle exec rake spec'
16
15
  matrix:
17
16
  fast_finish: true
17
+ allow_failures:
18
+ - rvm: 2.3.3
19
+ before_deploy:
20
+ - 'bundle exec rake clobber'
21
+ - "export GEM_VERSION=`ruby -r ./lib/simp/rake/helpers/version.rb -e 'puts Simp::Rake::Helpers::VERSION'`"
22
+ - '[[ $TRAVIS_TAG =~ ^${GEM_VERSION}$ ]]'
23
+ deploy:
24
+ provider: rubygems
25
+ gemspec: simp-rake-helpers.gemspec
26
+ gem: simp-rake-helpers
27
+ on:
28
+ tags: true
29
+ rvm: 2.1.9
30
+ condition: '($SKIP_PUBLISH != true)'
31
+ api_key:
32
+ secure: aoPmOZ3WgjNJ56UXmamKxaRv37iUaxKekAeS8n2fPk78X/nU2qGjdDHFH+SBrfl33PyzsGnS3WAANMKaIkAgssvKoaII/sAC+Sl6q1eyVUprZqloXrG+cHlnHY4GnziWEH3JrkHDChW0xoJq7hhpj7qTRKrEIp6nA25MjozjveoL+HH4kKy/ACJhiEdsYTFaDLYYFY50gGUL9KjIkwN6g9d+dIzG9JqcYoDbneQlO6/23yr4GiAHQ8HM1j5tUoBqJad+CWjWhSY7pbfYBy2ziwVhFy1qoOS4/bhlasRCsLTtz0AjjR0YWOhJap1vJqYhrSxtvhmVuzScmDkueAem/PfWS3XCQvbmjdmFMzPOxo0aRRJMlaeVWRsZ/aVFC7ngpRzokq1duZEKI47xZC27vJSOp3RZMmYl/7GsykoYkqHHsTvzSALEQiVtQq8sIOtN0JOTFI8H4LSMirXuqGq+SgCJiAQ3mQzSgh50TXiZaA2UPPcQaw4AzY36BRKs1cgw3cEWuL38O2cWUTAzEE4SUh499wrU5x+N0PsYL0AvMFONsRaq5epOYrlIL9UPSL/qZRLmzpcEWZRfOX4Ni5N6Aa9ZR8juenR6UmE79S2dupBxQeinkdfXuWznUZH7BcnUDoz8rErABpJGHNVY60dUO/s055WCr7Y95Gi+H75X9/I=
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ### 3.6.0 / 2017-07-03
2
+ * Added changelog_annotation task
3
+
4
+ ### 3.5.2 / 2017-06-16
5
+ * Fixed code count error
6
+
1
7
  ### 3.5.1 / 2017-05-15
2
8
  * Fix ability to build with existing tarball
3
9
 
data/Gemfile CHANGED
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # SIMP_GEM_SERVERS | a space/comma delimited list of rubygem servers
4
4
  # PUPPET_VERSION | specifies the version of the puppet gem to load
5
- puppetversion = ENV.key?('PUPPET_VERSION') ? "#{ENV['PUPPET_VERSION']}" : false
5
+ puppetversion = ENV.key?('PUPPET_VERSION') ? "#{ENV['PUPPET_VERSION']}" : '~> 4'
6
6
  gem_sources = ENV.key?('SIMP_GEM_SERVERS') ? ENV['SIMP_GEM_SERVERS'].split(/[, ]+/) : ['https://rubygems.org']
7
7
 
8
8
  gem_sources.each { |gem_source| source gem_source }
@@ -86,7 +86,7 @@ module Simp::Rake::Build
86
86
  loc["spec"] = 0
87
87
  loc["other"] = 0
88
88
 
89
- File.open("#{SRC_DIR}/../Rakefile","r").each do |line|
89
+ File.open("#{@base_dir}/Rakefile","r").each do |line|
90
90
  if encode_line(line) !~ /^\s*$/
91
91
  loc["rake"] = loc["rake"] + 1
92
92
  end
@@ -94,7 +94,7 @@ module Simp::Rake::Build
94
94
 
95
95
  other_ext = Array.new
96
96
 
97
- Find.find(SRC_DIR) do |path|
97
+ Find.find(@src_dir) do |path|
98
98
  if (
99
99
  ( File.basename(path)[0] == ?. ) or
100
100
  ( path =~ /src\/rsync/ ) or
@@ -0,0 +1 @@
1
+ lib/simp/rake/helpers/assets/rpm_spec/simpdefault.spec
@@ -2,5 +2,5 @@ module Simp; end
2
2
  module Simp::Rake; end
3
3
 
4
4
  class Simp::Rake::Helpers
5
- VERSION = '3.5.1'
5
+ VERSION = '3.6.0'
6
6
  end
@@ -80,6 +80,72 @@ class Simp::Rake::Pupmod::Helpers < ::Rake::TaskLib
80
80
  sh "metadata-json-lint metadata.json"
81
81
  end
82
82
 
83
+ desc <<-EOM
84
+ Generate an appropriate annotated tag entry from a CHANGELOG.
85
+
86
+ ARGS:
87
+ * :quiet => Set to 'true' if you want to suppress warning messages
88
+
89
+ NOTES:
90
+ * The entries are extracted from a match with the version from the
91
+ module's metadata.json
92
+ * If no match is found, the task will fail
93
+ * Changelog entries must follow the format:
94
+ * Wed Jul 05 2017 UserName <username@simp.com> - 1.2.3-4
95
+ - The entry must start with *. Any line beginning with * will be
96
+ interpreted as an entry.
97
+ - The dates must be RPM compatible, in chronological order
98
+ - The user email must be contained in < >
99
+ - The entry must be terminated by the release
100
+ * Any entry that does not follow the prescribed format will not be
101
+ annotated properly
102
+ EOM
103
+ # TODO: Hook in a query of the auto-generated specfile:
104
+ # `rpm -q --specfile dist/tmp/*.spec --changelog`
105
+ # That will give Travis a way of warning us if the changelog
106
+ # will prevent the rpm from building.
107
+ task :changelog_annotation, [:quiet] do |t,args|
108
+ require 'json'
109
+
110
+ quiet = true if args[:quiet].to_s == 'true'
111
+
112
+ module_version = JSON.parse(File.read('metadata.json'))['version']
113
+
114
+ changelog = Hash.new
115
+ delim = nil
116
+ ignore_line = false
117
+
118
+ File.read('CHANGELOG').each_line do |line|
119
+ if line =~ /^\*/
120
+ if /^\*\s+((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{2} \d{4})\s+(.+<.+>)(?:\s+|\s*-\s*)?(\d+\.\d+\.\d+)/.match(line).nil?
121
+ warn "WARNING: invalid changelog entry: #{line}" unless quiet
122
+ # Don't add anything to the annotation until we reach the next
123
+ # valid entry
124
+ ignore_line = true
125
+ else
126
+ ignore_line = false
127
+ delim = Hash.new
128
+ delim[:date] = $1
129
+ delim[:user] = $2
130
+ delim[:release] = $3
131
+
132
+ changelog[delim[:release]] ||= Array.new
133
+ changelog[delim[:release]] << line
134
+ end
135
+
136
+ next
137
+ end
138
+
139
+ if delim && delim[:release]
140
+ changelog[delim[:release]] << ' ' + line unless ignore_line
141
+ end
142
+ end
143
+
144
+ fail "Did not find any changelog entries for version #{module_version}" if changelog[module_version].nil?
145
+ puts "\nRelease of #{module_version}\n\n"
146
+ puts changelog[module_version]
147
+ end
148
+
83
149
 
84
150
  desc "Run syntax, lint, and spec tests."
85
151
  task :test => [
@@ -0,0 +1 @@
1
+ spec/lib/simp/files/build/../testpackage.spec
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simp-rake-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.1
4
+ version: 3.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Tessmer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-05-19 00:00:00.000000000 Z
12
+ date: 2017-07-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -504,7 +504,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
504
504
  version: '0'
505
505
  requirements: []
506
506
  rubyforge_project:
507
- rubygems_version: 2.4.8
507
+ rubygems_version: 2.6.11
508
508
  signing_key:
509
509
  specification_version: 4
510
510
  summary: SIMP rake helpers
@@ -1,356 +0,0 @@
1
- %{lua:
2
-
3
- --
4
- -- When you build you must to pass this along so that we know how
5
- -- to get the preliminary information.
6
- -- This directory should hold the following items:
7
- -- * 'build/rpm_metadata/requires' <- optional list of 'Requires', 'Provides',
8
- -- and 'Obsoletes' to supplement those auto-generated in this spec file
9
- -- * 'build/rpm_metadata/release' <- optional RPM release number to use in
10
- -- lieu of number hard-coded in this spec file
11
- -- * 'CHANGELOG' <- optional RPM formatted Changelog to use in lieu of minimal,
12
- -- changelog entry auto-generated in this spec file
13
- -- * 'metadata.json' <- required file that must contain the following metadata:
14
- -- - 'name' - package name
15
- -- - 'version' - package version
16
- -- - 'license' - package license
17
- -- - 'summary' - package summary
18
- -- - 'source' - package source
19
- --
20
- -- Example:
21
- -- rpmbuild -D 'pup_module_info_dir /home/user/project/puppet_module' -ba SPECS/specfile.spec
22
- --
23
- -- If this is not found, we will look in %{_sourcedir} for the files and fall
24
- -- back to the current directory
25
- --
26
-
27
- src_dir = rpm.expand('%{pup_module_info_dir}')
28
-
29
- if string.match(src_dir, '^%%') or (posix.stat(src_dir, 'type') ~= 'directory') then
30
- src_dir = rpm.expand('%{_sourcedir}')
31
-
32
- if (posix.stat((src_dir .. "/metadata.json"), 'type') ~= 'regular') then
33
- src_dir = './'
34
- end
35
- end
36
-
37
- -- These UNKNOWN entries should break the build if something bad happens
38
-
39
- package_name = "UNKNOWN"
40
- package_version = "UNKNOWN"
41
- module_license = "UNKNOWN"
42
-
43
- --
44
- -- Default to 2016
45
- -- This was done due to the change in naming scheme across all of the modules.
46
- -- The '.1' bump is there for the SIMP 6 path changes
47
- --
48
-
49
- package_release = '2016.1'
50
-
51
- }
52
-
53
- %{lua:
54
- -- Pull the Relevant Metadata out of the Puppet module metadata.json.
55
-
56
- metadata = ''
57
- metadata_file = io.open(src_dir .. "/metadata.json","r")
58
- if metadata_file then
59
- metadata = metadata_file:read("*all")
60
-
61
- -- Ignore the first curly brace
62
- metadata = metadata:gsub("{}?", '|', 1)
63
-
64
- -- Ignore all keys that are below the first level
65
- metadata = metadata:gsub("{.-}", '')
66
- metadata = metadata:gsub("%[.-%]", '')
67
- else
68
- error("Could not open 'metadata.json'", 0)
69
- end
70
-
71
- -- This starts as an empty string so that we can build it later
72
- module_requires = ''
73
-
74
- }
75
-
76
- %{lua:
77
-
78
- -- Get the Module Name and put it in the correct format
79
-
80
- local name_match = string.match(metadata, '"name":%s+"(.-)"%s*,')
81
-
82
- module_author = ''
83
- module_name = ''
84
-
85
- if name_match then
86
- package_name = ('pupmod-' .. name_match)
87
-
88
- local i = 0
89
- for str in string.gmatch(name_match,'[^-]+') do
90
- if i == 0 then
91
- module_author = str
92
- else
93
- if module_name == '' then
94
- module_name = str
95
- else
96
- module_name = (module_name .. '-' .. str)
97
- end
98
- end
99
-
100
- i = i+1
101
- end
102
- else
103
- error("Could not find valid package name in 'metadata.json'", 0)
104
- end
105
-
106
- }
107
-
108
- %{lua:
109
-
110
- -- Get the Module Version
111
-
112
- local version_match = string.match(metadata, '"version":%s+"(.-)"%s*,')
113
-
114
- if version_match then
115
- package_version = version_match
116
- else
117
- error("Could not find valid package version in 'metadata.json'", 0)
118
- end
119
-
120
- }
121
-
122
- %{lua:
123
-
124
- -- Get the Module License
125
-
126
- local license_match = string.match(metadata, '"license":%s+"(.-)"%s*,')
127
-
128
- if license_match then
129
- module_license = license_match
130
- else
131
- error("Could not find valid package license in 'metadata.json'", 0)
132
- end
133
-
134
- }
135
-
136
- %{lua:
137
-
138
- -- Get the Module Summary
139
-
140
- local summary_match = string.match(metadata, '"summary":%s+"(.-)"%s*,')
141
-
142
- if summary_match then
143
- module_summary = summary_match
144
- else
145
- error("Could not find valid package summary in 'metadata.json'", 0)
146
- end
147
-
148
- }
149
-
150
- %{lua:
151
-
152
- -- Get the Module Source line for the URL string
153
-
154
- local source_match = string.match(metadata, '"source":%s+"(.-)"%s*,')
155
-
156
- if source_match then
157
- module_source = source_match
158
- else
159
- error("Could not find valid package source in 'metadata.json'", 0)
160
- end
161
-
162
- }
163
-
164
- %{lua:
165
-
166
- -- Snag the RPM-specific items out of the 'build/rpm_metadata' directory
167
-
168
- -- First, the Release Number
169
-
170
- rel_file = io.open(src_dir .. "/build/rpm_metadata/release", "r")
171
-
172
- if not rel_file then
173
- -- Need this for the SRPM case
174
- rel_file = io.open(src_dir .. "/release", "r")
175
- end
176
-
177
- if rel_file then
178
- for line in rel_file:lines() do
179
- is_comment = string.match(line, "^%s*#")
180
- is_blank = string.match(line, "^%s*$")
181
-
182
- if not (is_comment or is_blank) then
183
- package_release = line
184
- break
185
- end
186
- end
187
- end
188
-
189
- }
190
-
191
- %{lua:
192
-
193
- -- Next, the Requirements
194
- req_file = io.open(src_dir .. "/build/rpm_metadata/requires", "r")
195
-
196
- if not req_file then
197
- -- Need this for the SRPM case
198
- req_file = io.open(src_dir .. "/requires", "r")
199
- end
200
-
201
- if req_file then
202
- for line in req_file:lines() do
203
- valid_line = (string.match(line, "^Requires: ") or string.match(line, "^Obsoletes: ") or string.match(line, "^Provides: "))
204
-
205
- if valid_line then
206
- module_requires = (module_requires .. "\n" .. line)
207
- end
208
- end
209
- end
210
- }
211
-
212
- %define module_name %{lua: print(module_name)}
213
- %define package_name %{lua: print(package_name)}
214
-
215
- Summary: %{module_name} Puppet Module
216
- Name: %{package_name}
217
-
218
- Version: %{lua: print(package_version)}
219
- Release: %{lua: print(package_release)}
220
- License: %{lua: print(module_license)}
221
- Group: Applications/System
222
- Source0: %{package_name}-%{version}-%{release}.tar.gz
223
- Source1: %{lua: print("metadata.json")}
224
- %{lua:
225
- -- Include our sources as appropriate
226
- changelog = io.open(src_dir .. "/CHANGELOG","r")
227
- if changelog then
228
- print("Source2: " .. "CHANGELOG\n")
229
- end
230
-
231
- if rel_file then
232
- print("Source3: " .. "release\n")
233
- end
234
- if req_file then
235
- print("Source4: " .. "requires\n")
236
- end
237
- }
238
- URL: %{lua: print(module_source)}
239
- BuildRoot: %{_tmppath}/%{package_name}-%{version}-%{release}-buildroot
240
- BuildArch: noarch
241
-
242
- Requires(pre,preun,post,postun): simp-adapter >= 0.0.1
243
-
244
- %if ("%{package_name}" != "pupmod-simp-simplib") && ("%{package_name}" != "pupmod-puppetlabs-stdlib")
245
- Requires: pupmod-simp-simplib >= 1.2.6
246
- %endif
247
-
248
- %if "%{package_name}" != "pupmod-puppetlabs-stdlib"
249
- Requires: pupmod-puppetlabs-stdlib >= 4.9.0
250
- Requires: pupmod-puppetlabs-stdlib < 6.0.0
251
- %endif
252
-
253
- %{lua: print(module_requires)}
254
-
255
- Provides: pupmod-%{lua: print(module_name)} = %{lua: print(package_version .. "-" .. package_release)}
256
- Obsoletes: pupmod-%{lua: print(module_name)} < %{lua: print(package_version .. "-" .. package_release)}
257
-
258
- %{lua:
259
-
260
- -- This is a workaround for the 'simp-rsync' real RPM conflict but is
261
- -- required by some external modules.
262
- -- This should be removed when SIMP 6 is stable
263
-
264
- author_rpm_name = module_author .. "-" .. module_name
265
-
266
- if author_rpm_name ~= 'simp-rsync' then
267
- print("Provides: " .. author_rpm_name .. " = " .. package_version .. "-" .. package_release .. "\n")
268
- print("Obsoletes: " .. author_rpm_name .. " < " .. package_version .. "-" .. package_release .. "\n")
269
- end
270
- }
271
-
272
- Prefix: /usr/share/simp/modules
273
-
274
- %description
275
- %{lua: print(module_summary)}
276
-
277
- %prep
278
- %setup -q -n %{package_name}-%{version}
279
-
280
- %build
281
-
282
- %install
283
- [ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
284
-
285
- mkdir -p %{buildroot}/%{prefix}
286
-
287
- curdir=`pwd`
288
- dirname=`basename $curdir`
289
- cp -r ../$dirname %{buildroot}/%{prefix}/%{module_name}
290
- rm -rf %{buildroot}/%{prefix}/%{module_name}/.git
291
- rm -f %{buildroot}/%{prefix}/*.lock
292
- rm -rf %{buildroot}/%{prefix}/spec/fixtures/modules
293
- rm -rf %{buildroot}/%{prefix}/dist
294
- rm -rf %{buildroot}/%{prefix}/junit
295
- rm -rf %{buildroot}/%{prefix}/log
296
-
297
- %clean
298
- [ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
299
-
300
- mkdir -p %{buildroot}/%{prefix}
301
-
302
- %files
303
- %defattr(0640,root,root,0750)
304
- %{prefix}/%{module_name}
305
-
306
- # when $1 = 1, this is an install
307
- # when $1 = 2, this is an upgrade
308
- %pre
309
- /usr/local/sbin/simp_rpm_helper --rpm_dir=%{prefix}/%{module_name} --rpm_section='pre' --rpm_status=$1
310
-
311
- # when $1 = 1, this is an install
312
- # when $1 = 2, this is an upgrade
313
- %post
314
- /usr/local/sbin/simp_rpm_helper --rpm_dir=%{prefix}/%{module_name} --rpm_section='post' --rpm_status=$1
315
-
316
- # when $1 = 1, this is the uninstall of the previous version during an upgrade
317
- # when $1 = 0, this is the uninstall of the only version during an erase
318
- %preun
319
- /usr/local/sbin/simp_rpm_helper --rpm_dir=%{prefix}/%{module_name} --rpm_section='preun' --rpm_status=$1
320
-
321
- # when $1 = 1, this is the uninstall of the previous version during an upgrade
322
- # when $1 = 0, this is the uninstall of the only version during an erase
323
- %postun
324
- /usr/local/sbin/simp_rpm_helper --rpm_dir=%{prefix}/%{module_name} --rpm_section='postun' --rpm_status=$1
325
-
326
- %changelog
327
- %{lua:
328
- -- Finally, the CHANGELOG
329
-
330
- -- A default CHANGELOG in case we cannot find a real one
331
-
332
- default_changelog = [===[
333
- * $date Auto Changelog <auto@no.body> - $version-$release
334
- - Latest release of $name
335
- ]===]
336
-
337
- default_lookup_table = {
338
- date = os.date("%a %b %d %Y"),
339
- version = package_version,
340
- release = package_release,
341
- name = package_name
342
- }
343
-
344
- changelog = io.open(src_dir .. "/CHANGELOG","r")
345
- if changelog then
346
- first_line = changelog:read()
347
- if string.match(first_line, "^*%s+%a%a%a%s+%a%a%a%s+%d%d?%s+%d%d%d%d%s+.+") then
348
- changelog:seek("set",0)
349
- print(changelog:read("*all"))
350
- else
351
- print((default_changelog:gsub('$(%w+)', default_lookup_table)))
352
- end
353
- else
354
- print((default_changelog:gsub('$(%w+)', default_lookup_table)))
355
- end
356
- }
@@ -1,32 +0,0 @@
1
- Name: testpackage
2
- Version: 1
3
- Release: 0
4
- Summary: dummy test package
5
- BuildArch: noarch
6
-
7
- License: Apache-2.0
8
- URL: http://foo.bar
9
-
10
- %description
11
- A dummy package used to test Simp::RPM methods
12
-
13
- %prep
14
- exit 0
15
-
16
- %build
17
- exit 0
18
-
19
-
20
- %install
21
- exit 0
22
-
23
- %clean
24
- exit 0
25
-
26
- %files
27
- %doc
28
-
29
-
30
- %changelog
31
- * Wed Jun 10 2015 nobody
32
- - some comment