simp-rake-helpers 5.10.2 → 5.11.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/Gemfile +1 -0
  4. data/lib/simp/componentinfo.rb +6 -3
  5. data/lib/simp/rake/build/rpmdeps.rb +51 -33
  6. data/lib/simp/rake/build/tar.rb +1 -1
  7. data/lib/simp/rake/helpers/assets/rpm_spec/simp6.spec +15 -1
  8. data/lib/simp/rake/helpers/assets/rpm_spec/simpdefault.spec +15 -1
  9. data/lib/simp/rake/helpers/version.rb +1 -1
  10. data/lib/simp/relchecks.rb +1 -1
  11. data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/suites/default/nodesets +1 -1
  12. data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/suites/default/nodesets +1 -1
  13. data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/suites/default/nodesets +1 -1
  14. data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/suites/default/nodesets +1 -1
  15. data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/suites/default/nodesets +1 -1
  16. data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/default/nodesets +1 -1
  17. data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/default/nodesets +1 -1
  18. data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/suites/default/nodesets +1 -1
  19. data/spec/lib/simp/ci/files/no_gitlab_config_without_tests/spec/acceptance/suites/default/nodesets +1 -1
  20. data/spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/suites/default/nodesets +1 -1
  21. data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/suites/default/nodesets +1 -1
  22. data/spec/lib/simp/componentinfo_spec.rb +25 -37
  23. data/spec/lib/simp/files/build/testpackage.spec +1 -1
  24. data/spec/lib/simp/files/componentinfo_spec/module_with_prerelease_dash_in_version/CHANGELOG +14 -0
  25. data/spec/lib/simp/files/componentinfo_spec/module_with_prerelease_dash_in_version/metadata.json +44 -0
  26. data/spec/lib/simp/files/testpackage-rc0.spec +32 -0
  27. data/spec/lib/simp/rake/build/files/changed_name_mod/metadata.json +12 -8
  28. data/spec/lib/simp/rake/build/files/unmanaged_mod/metadata.json +12 -8
  29. data/spec/lib/simp/rake/build/rpmdeps_spec.rb +12 -3
  30. data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/acceptance/suites/default/nodesets +1 -1
  31. data/spec/lib/simp/relchecks_compare_latest_tag_spec.rb +1 -1
  32. data/spec/lib/simp/rpm_spec.rb +5 -0
  33. metadata +6 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 79ad7ad7188d33672087722a247a56a145315e941ffa7e44fc26b7a847ef91f5
4
- data.tar.gz: 05ff2357f2615369f5e24f84be1aff9d7bb16d535c8b77f2126fdd2a7b2adced
3
+ metadata.gz: 3bde11b6e154b94ae99c983cc5efbc50ee72bfd5e4fff43752f3bde5a1fe9383
4
+ data.tar.gz: 1f20976af7376822f6d4ab663b2d5f4b01bab9c85cc71a3f86035d586771e443
5
5
  SHA512:
6
- metadata.gz: 0fe5a161b357ef4777f58c28397a39622d061750a20c129effc80d4c61f2678f6846ccb710ee170ab4375290498e9cfcad500451c2f24233a1b172c49ec59daf
7
- data.tar.gz: 75c69637690c41f54545f7b977893b8b7b28ca038b2160f2a2a843b3caa2a26a81e10c0861104a75fd9c95ba8db962856e2a51119926b2bb946c74bf6877319d
6
+ metadata.gz: bc56ab90f4e83059108725f9750793ba060bac5af618d72e819f095319233ae1229a7f8a153feb4ecd50de46808792fd9c3c2559f02ec632c606a9fdeb3a8659
7
+ data.tar.gz: 8cdf8f62c251be9bbc3388adaae57516fde2eb0478adf6ec4fd66c09bf411cf1902546ac309a455f87dcef1d30db3f5cd498dcc6838e2a80c0102f1448bc5c1e
@@ -1,3 +1,18 @@
1
+ ### 5.11.4 / 2020-08-03
2
+ * Permit *.md files in `rake pkg:compare_latest_tag`
3
+
4
+ ### 5.11.3 / 2020-05-19
5
+ * Fix automatically added dependencies for SIMP 6.4+
6
+
7
+ ### 5.11.2 / 2020-04-08
8
+ * Version information should not be required on dependencies in metadata.json
9
+
10
+ ### 5.11.1 / 2020-04-07
11
+ * Puppet module RPM logic handles `-rc0` suffix in `metadata.json`
12
+
13
+ ### 5.11.0 / 2020-03-16
14
+ * Add SIMP optional dependencies to RPM requires list
15
+
1
16
  ### 5.10.2 / 2020-02-10
2
17
  * Allow v3 of simp-rspec-puppet-facts
3
18
  * Fix '~> 0' notation
data/Gemfile CHANGED
@@ -12,6 +12,7 @@ gemspec
12
12
  gem 'simp-build-helpers'
13
13
  gem 'simp-beaker-helpers'
14
14
  gem 'beaker-puppet_install_helper'
15
+ gem 'rake', '>= 12.3.3'
15
16
 
16
17
  if puppetversion
17
18
  gem 'puppet', puppetversion
@@ -99,9 +99,12 @@ class Simp::ComponentInfo
99
99
  require 'json'
100
100
  metadata_file = File.join(@component_dir, 'metadata.json')
101
101
  metadata = JSON.parse(File.read(metadata_file))
102
- @version = metadata['version']
103
- @release = nil
104
- fail("ERROR: Version missing from #{metadata_file}") if @version.nil?
102
+ fail("ERROR: Version missing from #{metadata_file}") if metadata['version'].nil?
103
+
104
+ @version = metadata['version'].split('-').first
105
+ rel_bits = metadata['version'].split('-')[1..-1]
106
+ @release = rel_bits.empty? ? nil : rel_bits.join('-')
107
+
105
108
 
106
109
  changelog_file = File.join(component_dir, 'CHANGELOG')
107
110
  unless File.exists?(changelog_file)
@@ -15,28 +15,29 @@ module Simp::Rake::Build::RpmDeps
15
15
  # raises SIMPRpmDepVersionException if the dependency version
16
16
  # string cannot be parsed
17
17
  def self.get_version_requires(pkg, dep_version)
18
+ return ["Requires: #{pkg}"] if dep_version.nil?
19
+ return ["Requires: #{pkg} = #{$1}"] if dep_version =~ /^\s*(\d+\.\d+\.\d+)\s*$/
20
+
18
21
  requires = []
19
- if dep_version =~ /^\s*(\d+\.\d+\.\d+)\s*$/
20
- requires << "Requires: #{pkg} = #{$1}"
21
- else
22
- if dep_version.include?('x')
23
- dep_parts = dep_version.split('.')
24
-
25
- if dep_parts.count == 3
26
- dep_version = ">= #{dep_parts[0]}.#{dep_parts[1]}.0 < #{dep_parts[0].to_i + 1}.0.0"
27
- else
28
- dep_version = ">= #{dep_parts[0]}.0.0 < #{dep_parts[0].to_i + 1}.0.0"
29
- end
30
- end
31
22
 
32
- # metadata.json is a LOT more forgiving than the RPM spec file
33
- if dep_version =~ /^\s*(?:(?:([<>]=?)\s*(\d+\.\d+\.\d+))\s*(?:(<)\s*(\d+\.\d+\.\d+))?)\s*$/
34
- requires << "Requires: #{pkg} #{$1} #{$2}"
35
- requires << "Requires: #{pkg} #{$3} #{$4}" if $3
23
+ if dep_version.include?('x')
24
+ dep_parts = dep_version.split('.')
25
+
26
+ if dep_parts.count == 3
27
+ dep_version = ">= #{dep_parts[0]}.#{dep_parts[1]}.0 < #{dep_parts[0].to_i + 1}.0.0"
36
28
  else
37
- raise SIMPRpmDepVersionException.new
29
+ dep_version = ">= #{dep_parts[0]}.0.0 < #{dep_parts[0].to_i + 1}.0.0"
38
30
  end
39
31
  end
32
+
33
+ # metadata.json is a LOT more forgiving than the RPM spec file
34
+ if dep_version =~ /^\s*(?:(?:([<>]=?)\s*(\d+\.\d+\.\d+))\s*(?:(<)\s*(\d+\.\d+\.\d+))?)\s*$/
35
+ requires << "Requires: #{pkg} #{$1} #{$2}"
36
+ requires << "Requires: #{pkg} #{$3} #{$4}" if $3
37
+ else
38
+ raise SIMPRpmDepVersionException.new
39
+ end
40
+
40
41
  requires
41
42
  end
42
43
 
@@ -103,6 +104,13 @@ module Simp::Rake::Build::RpmDeps
103
104
  short_names.include?(dep['name'])
104
105
  }
105
106
 
107
+ if dep_info.empty? && module_metadata['simp'] &&
108
+ module_metadata['simp']['optional_dependencies']
109
+ dep_info = module_metadata['simp']['optional_dependencies'].select{ |dep|
110
+ short_names.include?(dep['name'])
111
+ }
112
+ end
113
+
106
114
  if dep_info.empty?
107
115
  err_msg = "Could not find #{short_names.first} dependency"
108
116
  raise SIMPRpmDepException.new(err_msg)
@@ -145,7 +153,7 @@ module Simp::Rake::Build::RpmDeps
145
153
  end
146
154
 
147
155
  # Generate 'Requires' lines from each dependency specified in the
148
- # module_metadata hash
156
+ # module_metadata hash, including SIMP optional dependencies
149
157
  #
150
158
  # returns array of strings, each of which is a 'Requires' line for
151
159
  # use in an RPM spec file
@@ -157,20 +165,29 @@ module Simp::Rake::Build::RpmDeps
157
165
  # module's 'metadata.json' file
158
166
  def self.generate_module_rpm_requires(module_metadata)
159
167
  rpm_metadata_content = []
160
- # metadata.json should always contain dependencies list, even
161
- # if it is empty, but we'll safely handle that error case here
168
+
169
+ deps = []
162
170
  if module_metadata['dependencies']
163
- module_metadata['dependencies'].each do |dep|
164
- pkg = "pupmod-#{dep['name'].gsub('/', '-')}"
165
- dep_version = dep['version_requirement']
166
-
167
- begin
168
- rpm_metadata_content << get_version_requires(pkg, dep_version)
169
- rescue SIMPRpmDepVersionException
170
- err_msg = "Unable to parse #{dep['name']} dependency" +
171
- " version '#{dep_version}'"
172
- raise SIMPRpmDepException.new(err_msg)
173
- end
171
+ deps += module_metadata['dependencies']
172
+ end
173
+
174
+ if module_metadata['simp'] &&
175
+ module_metadata['simp']['optional_dependencies']
176
+
177
+ deps += module_metadata['simp']['optional_dependencies']
178
+ end
179
+
180
+ deps.sort! { |x,y| x['name'] <=> y['name'] }
181
+ deps.each do |dep|
182
+ pkg = "pupmod-#{dep['name'].gsub('/', '-')}"
183
+ dep_version = dep['version_requirement']
184
+
185
+ begin
186
+ rpm_metadata_content << get_version_requires(pkg, dep_version)
187
+ rescue SIMPRpmDepVersionException
188
+ err_msg = "Unable to parse #{dep['name']} dependency" +
189
+ " version '#{dep_version}'"
190
+ raise SIMPRpmDepException.new(err_msg)
174
191
  end
175
192
  end
176
193
 
@@ -202,8 +219,9 @@ module Simp::Rake::Build::RpmDeps
202
219
  # * 'Requires' line(s) for any external dependencies specified
203
220
  # in the module_rpm_meta hash.
204
221
  #
205
- # Otherwise, the generated 'requires' file will contain
206
- # "Requires" lines for each dependency specified module_metadata.
222
+ # Otherwise, the generated 'requires' file will contain "Requires"
223
+ # lines for each dependency and each SIMP optional dependency
224
+ # specified in module_metadata.
207
225
  #
208
226
  # raises SIMPRpmDepException if any 'metadata.json' dependency
209
227
  # version string from module_metadata cannot be parsed or a
@@ -62,7 +62,7 @@ module Simp::Rake::Build
62
62
  else
63
63
  required_rpms['noarch'] << 'simp-rsync-skeleton'
64
64
  required_rpms['noarch'] << 'simp-environment-skeleton'
65
- required_rpms['noarch'] << 'simp-environment-selinux-policy'
65
+ required_rpms['noarch'] << 'simp-selinux-policy'
66
66
  end
67
67
 
68
68
  rpm_dir = File.join(@build_dir,'SIMP','RPMS')
@@ -196,14 +196,28 @@ end
196
196
 
197
197
  -- Get the Module Version
198
198
 
199
- local version_match = metadata:match('"version":%s+"(.-)"%s*,')
199
+ -- Note on '-rc0' style Release versions in metadata.json:
200
+ -- Some Puppet orgs (like voxpupuli) append '-rc0' to the module version
201
+ -- to denote prerelease status and act as a safety check (because the Forge
202
+ -- only accepts release in SemVer \d+\.\d+\.\d+ release format)
203
+ --
204
+ -- This code will remove a '-rc0' style prerelease string from the RPM
205
+ -- Version, and use it as the default RPM Release (instead of '-0')
200
206
 
207
+ local version_match = metadata:match('"version":%s+"(.-)"%s*,'):gsub('-.*','')
201
208
  if version_match then
202
209
  package_version = version_match
203
210
  else
204
211
  error("Could not find valid package version in 'metadata.json'", 0)
205
212
  end
206
213
 
214
+ -- Get the Module Release (if present)
215
+
216
+ local release_match = metadata:match('"version":%s+"[%d.]+-([^"]+)"')
217
+
218
+ if release_match then
219
+ package_release = release_match
220
+ end
207
221
  }
208
222
 
209
223
  %{lua:
@@ -196,14 +196,28 @@ end
196
196
 
197
197
  -- Get the Module Version
198
198
 
199
- local version_match = metadata:match('"version":%s+"(.-)"%s*,')
199
+ -- Note on '-rc0' style Release versions in metadata.json:
200
+ -- Some Puppet orgs (like voxpupuli) append '-rc0' to the module version
201
+ -- to denote prerelease status and act as a safety check (because the Forge
202
+ -- only accepts release in SemVer \d+\.\d+\.\d+ release format)
203
+ --
204
+ -- This code will remove a '-rc0' style prerelease string from the RPM
205
+ -- Version, and use it as the default RPM Release (instead of '-0')
200
206
 
207
+ local version_match = metadata:match('"version":%s+"(.-)"%s*,'):gsub('-.*','')
201
208
  if version_match then
202
209
  package_version = version_match
203
210
  else
204
211
  error("Could not find valid package version in 'metadata.json'", 0)
205
212
  end
206
213
 
214
+ -- Get the Module Release (if present)
215
+
216
+ local release_match = metadata:match('"version":%s+"[%d.]+-([^"]+)"')
217
+
218
+ if release_match then
219
+ package_release = release_match
220
+ end
207
221
  }
208
222
 
209
223
  %{lua:
@@ -2,5 +2,5 @@ module Simp; end
2
2
  module Simp::Rake; end
3
3
 
4
4
  class Simp::Rake::Helpers
5
- VERSION = '5.10.2'
5
+ VERSION = '5.11.4'
6
6
  end
@@ -87,7 +87,7 @@ class Simp::RelChecks
87
87
  # determine mission-impacting files that have changed
88
88
  files_changed = `git diff tags/#{last_tag} --name-only`.strip.split("\n")
89
89
  files_changed.delete_if do |file|
90
- file[0] == '.' or file == 'Rakefile' or file =~ /^Gemfile|^spec\/|^doc\/|^rakelib\//
90
+ file[0] == '.' or file == 'Rakefile' or file =~ /^Gemfile|^spec\/|^doc\/|^rakelib\/|.*\.md\Z/
91
91
  end
92
92
 
93
93
  if files_changed.empty?
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/no_gitlab_config_without_tests/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -7,14 +7,11 @@ describe Simp::ComponentInfo do
7
7
  }
8
8
 
9
9
  context 'with valid module input' do
10
- it 'loads version and changelog info' do
11
- component_dir = File.join(files_dir, 'module')
12
- info = Simp::ComponentInfo.new(component_dir)
13
- expect( info.component_dir ).to eq component_dir
14
- expect( info.type ).to eq :module
15
- expect( info.version ).to eq '3.8.0'
16
- expect( info.release ).to be nil
17
- expected_changelog = [
10
+ let(:component_dir){ File.join(files_dir, 'module') }
11
+ let(:info){ Simp::ComponentInfo.new(component_dir) }
12
+ let(:expected_release) { nil }
13
+ let(:expected_changelog) do
14
+ [
18
15
  {
19
16
  :date => 'Wed Nov 15 2017',
20
17
  :version => '3.8.0',
@@ -56,37 +53,28 @@ describe Simp::ComponentInfo do
56
53
  ]
57
54
  }
58
55
  ]
59
- expect(info.changelog).to eq expected_changelog
60
56
  end
61
57
 
62
- it 'loads version and latest changelog info' do
63
- component_dir = File.join(files_dir, 'module')
64
- info = Simp::ComponentInfo.new(component_dir, true)
65
- expect( info.component_dir ).to eq component_dir
66
- expect( info.type ).to eq :module
67
- expect( info.version ).to eq '3.8.0'
68
- expect( info.release ).to be nil
69
- expected_changelog = [
70
- {
71
- :date => 'Wed Nov 15 2017',
72
- :version => '3.8.0',
73
- :release => '0',
74
- :content => [
75
- '* Wed Nov 15 2017 Mary Jones <mary.jones@simp.com> - 3.8.0-0',
76
- '- Disable deprecation warnings by default'
77
- ]
78
- },
79
- {
80
- :date => 'Mon Nov 06 2017',
81
- :version => '3.8.0',
82
- :release => '0',
83
- :content => [
84
- '* Mon Nov 06 2017 Tom Smith <tom.smith@simp.com> - 3.8.0-0',
85
- '- Fixes split failure when "findmnt" does not exist on Linux'
86
- ]
87
- }
88
- ]
89
- expect(info.changelog).to eq expected_changelog
58
+ shared_examples 'an instance with expected module data' do
59
+ it { expect( info.component_dir ).to eq component_dir }
60
+ it { expect( info.type ).to eq :module }
61
+ it { expect( info.version ).to eq '3.8.0' }
62
+ it { expect( info.release ).to eq expected_release }
63
+ it { expect(info.changelog).to eq expected_changelog }
64
+ end
65
+
66
+ it_behaves_like 'an instance with expected module data'
67
+
68
+ context 'with loads version and latest-version-only changelog info' do
69
+ let(:info){Simp::ComponentInfo.new(component_dir, true)}
70
+ let(:expected_changelog){ super()[0..1] }
71
+ it_behaves_like 'an instance with expected module data'
72
+ end
73
+
74
+ context 'with a module version containing a prerelease suffix (3.8.0-rc0)' do
75
+ let(:component_dir){ File.join(files_dir, 'module_with_prerelease_dash_in_version') }
76
+ let(:expected_release){ 'rc0' }
77
+ it_behaves_like 'an instance with expected module data'
90
78
  end
91
79
  end
92
80
 
@@ -1 +1 @@
1
- spec/lib/simp/files/build/../testpackage.spec
1
+ ../testpackage.spec
@@ -0,0 +1,14 @@
1
+ * Wed Nov 15 2017 Mary Jones <mary.jones@simp.com> - 3.8.0-0
2
+ - Disable deprecation warnings by default
3
+
4
+ * Mon Nov 06 2017 Tom Smith <tom.smith@simp.com> - 3.8.0-0
5
+ - Fixes split failure when "findmnt" does not exist on Linux
6
+
7
+ * Thu Oct 26 2017 Mary Jones <mary.jones@simp.com> - 3.7.0-0
8
+ - Add Mod::Macaddress data type
9
+
10
+ * Tue Sep 26 2017 Joe Brown <joe.brown@simp.com> - 3.6.0-0
11
+ - Convert all 'sysctl' 'kernel.shm*' entries to Strings
12
+ - shmall and shmmax were causing Facter and newer versions of Puppet to crash
13
+ - See FACT-1732 for additional information
14
+ - Add Puppet function `mod::assert_metadata_os()`
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "simp-module",
3
+ "version": "3.8.0-rc0",
4
+ "author": "SIMP Team",
5
+ "summary": "A collection of common SIMP functions, facts, and types",
6
+ "license": "Apache-2.0",
7
+ "source": "https://github.com/simp/pupmod-simp-simplib",
8
+ "project_page": "https://github.com/simp/pupmod-simp-simplib",
9
+ "issues_url": "https://simp-project.atlassian.net",
10
+ "tags": [
11
+ "simp",
12
+ "functions",
13
+ "facts",
14
+ "types",
15
+ "alias",
16
+ "library"
17
+ ],
18
+ "dependencies": [
19
+
20
+ ],
21
+ "operatingsystem_support": [
22
+ {
23
+ "operatingsystem": "RedHat",
24
+ "operatingsystemrelease": [
25
+ "6",
26
+ "7"
27
+ ]
28
+ },
29
+ {
30
+ "operatingsystem": "CentOS",
31
+ "operatingsystemrelease": [
32
+ "6",
33
+ "7"
34
+ ]
35
+ }
36
+ ],
37
+ "requirements": [
38
+ {
39
+ "name": "puppet",
40
+ "version_requirement": ">= 4.7.0 < 6.0.0"
41
+ }
42
+ ],
43
+ "package_release_version": "0"
44
+ }
@@ -0,0 +1,32 @@
1
+ Name: testpackage
2
+ Version: 1.0.0
3
+ Release: rc0
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
@@ -24,16 +24,20 @@
24
24
  {
25
25
  "name": "foo4/bar4",
26
26
  "version_requirement": ">= 4.0.0 < 5.0.0"
27
- },
28
- {
29
- "name": "foo5/bar5",
30
- "version_requirement": "5.x"
31
- },
32
- {
33
- "name": "foo6/bar6",
34
- "version_requirement": "6.4.x"
35
27
  }
36
28
  ],
29
+ "simp": {
30
+ "optional_dependencies": [
31
+ {
32
+ "name": "foo5/bar5",
33
+ "version_requirement": "5.x"
34
+ },
35
+ {
36
+ "name": "foo6/bar6",
37
+ "version_requirement": "6.4.x"
38
+ }
39
+ ]
40
+ },
37
41
  "operatingsystem_support": [
38
42
  {
39
43
  "operatingsystem": "RedHat",
@@ -12,19 +12,23 @@
12
12
  "name": "puppetlabs/inifile",
13
13
  "version_requirement": ">= 1.6.0 < 2.0.0"
14
14
  },
15
- {
16
- "name": "puppetlabs/puppetdb",
17
- "version_requirement": ">= 5.1.2 < 6.0.0"
18
- },
19
- {
20
- "name": "puppetlabs/postgresql",
21
- "version_requirement": ">= 4.8.0 < 5.0.0"
22
- },
23
15
  {
24
16
  "name": "puppetlabs/stdlib",
25
17
  "version_requirement": ">= 4.13.1 < 5.0.0"
26
18
  }
27
19
  ],
20
+ "simp": {
21
+ "optional_dependencies": [
22
+ {
23
+ "name": "puppetlabs/puppetdb",
24
+ "version_requirement": ">= 5.1.2 < 6.0.0"
25
+ },
26
+ {
27
+ "name": "puppetlabs/postgresql",
28
+ "version_requirement": ">= 4.8.0 < 5.0.0"
29
+ }
30
+ ]
31
+ },
28
32
  "requirements": [
29
33
  {
30
34
  "name": "puppet",
@@ -16,7 +16,8 @@ describe 'Simp::Rake::Build::RpmDeps#get_version_requires' do
16
16
  "5.x" => ['Requires: pupmod-foo-bar >= 5.0.0',
17
17
  'Requires: pupmod-foo-bar < 6.0.0'],
18
18
  "6.4.x" => ['Requires: pupmod-foo-bar >= 6.4.0',
19
- 'Requires: pupmod-foo-bar < 7.0.0']
19
+ 'Requires: pupmod-foo-bar < 7.0.0'],
20
+ nil => ['Requires: pupmod-foo-bar']
20
21
  }.each do |input, output|
21
22
  it do
22
23
  expect(Simp::Rake::Build::RpmDeps::get_version_requires(pkg, input)).to eq output
@@ -40,6 +41,14 @@ describe 'Simp::Rake::Build::RpmDeps#get_version_requires' do
40
41
  end
41
42
  end
42
43
 
44
+ # In the tests below, a 'managed' component is one with an entry in the
45
+ # simp-core/build/rpm/dependencies.yaml. It is a module, whose RPM
46
+ # dependencies, obsoletes, and/or release qualifier need to be managed.
47
+ #
48
+ # An 'unmanaged' component is a module that has no special packaging needs.
49
+ # It has no obsoletes, can use the default release qualifier of 0, and needs
50
+ # no adjustments to the dependencies it advertises in its metadata.json file.
51
+ #
43
52
  describe 'Simp::Rake::Build::RpmDeps#generate_rpm_meta_files' do
44
53
  let(:files_dir) { File.join(File.dirname(__FILE__), 'files') }
45
54
  let(:rpm_metadata) {
@@ -143,10 +152,10 @@ EOM
143
152
  expected = <<EOM
144
153
  Requires: pupmod-puppetlabs-inifile >= 1.6.0
145
154
  Requires: pupmod-puppetlabs-inifile < 2.0.0
146
- Requires: pupmod-puppetlabs-puppetdb >= 5.1.2
147
- Requires: pupmod-puppetlabs-puppetdb < 6.0.0
148
155
  Requires: pupmod-puppetlabs-postgresql >= 4.8.0
149
156
  Requires: pupmod-puppetlabs-postgresql < 5.0.0
157
+ Requires: pupmod-puppetlabs-puppetdb >= 5.1.2
158
+ Requires: pupmod-puppetlabs-puppetdb < 6.0.0
150
159
  Requires: pupmod-puppetlabs-stdlib >= 4.13.1
151
160
  Requires: pupmod-puppetlabs-stdlib < 5.0.0
152
161
  EOM
@@ -1 +1 @@
1
- spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -31,7 +31,7 @@ describe 'Simp::RelChecks.compare_latest_tag' do
31
31
  Simp::RelChecks.expects(:`).with('git fetch -t origin 2>/dev/null').returns("\n")
32
32
  Simp::RelChecks.expects(:`).with('git tag -l').returns("1.0.0\nv1.0.1\n1.1.0\n")
33
33
  Simp::RelChecks.expects(:`).with('git diff tags/1.1.0 --name-only').returns(
34
- ".travis.yml\nRakefile\nGemfile.lock\nspec/some_spec.rb\ndoc/index.html\nrakelib/mytasks.rake\n")
34
+ ".travis.yml\nRakefile\nREFERENCE.md\nGemfile.lock\nspec/some_spec.rb\ndoc/index.html\nrakelib/mytasks.rake\n")
35
35
 
36
36
  msg = " No new tag required: No significant files have changed since '1.1.0' tag\n"
37
37
  expect{ Simp::RelChecks.compare_latest_tag(component_dir) }.
@@ -20,6 +20,9 @@ describe Simp::RPM do
20
20
  @d_rpm_file = File.join( dir, 'testpackage-1-0.el7.noarch.rpm' )
21
21
  @d_rpm_obj = Simp::RPM.new( @d_rpm_file )
22
22
 
23
+ @rc0_spec_file = File.join( dir, 'testpackage-rc0.spec' )
24
+ @rc0_spec_obj = Simp::RPM.new( @rc0_spec_file )
25
+
23
26
  #FIXME
24
27
  # @signed_rpm_file = File.join( dir, 'testpackage-1-0.noarch.rpm' )
25
28
  # @signed_rpm_obj = Simp::RPM.new( @signed_rpm_file )
@@ -85,6 +88,7 @@ describe Simp::RPM do
85
88
  expect( @m_spec_obj.version ).to eq '1'
86
89
  expect( @m_spec_obj.version('testpackage') ).to eq '1'
87
90
  expect( @m_spec_obj.version('testpackage-doc') ).to eq '1.0.1'
91
+ expect( @rc0_spec_obj.version ).to eq '1.0.0'
88
92
  end
89
93
 
90
94
  it 'fails when invalid package specified' do
@@ -103,6 +107,7 @@ describe Simp::RPM do
103
107
  expect( @m_spec_obj.release ).to eq '0'
104
108
  expect( @m_spec_obj.release('testpackage') ).to eq '0'
105
109
  expect( @m_spec_obj.release('testpackage-doc') ).to eq '2'
110
+ expect( @rc0_spec_obj.release ).to eq 'rc0'
106
111
  end
107
112
 
108
113
  it 'fails when invalid package specified' do
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: 5.10.2
4
+ version: 5.11.4
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: 2020-02-11 00:00:00.000000000 Z
12
+ date: 2020-08-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: simp-beaker-helpers
@@ -534,6 +534,8 @@ files:
534
534
  - spec/lib/simp/files/componentinfo_spec/module_with_invalid_weekday_entry/metadata.json
535
535
  - spec/lib/simp/files/componentinfo_spec/module_with_malformed_metadata/CHANGELOG
536
536
  - spec/lib/simp/files/componentinfo_spec/module_with_malformed_metadata/metadata.json
537
+ - spec/lib/simp/files/componentinfo_spec/module_with_prerelease_dash_in_version/CHANGELOG
538
+ - spec/lib/simp/files/componentinfo_spec/module_with_prerelease_dash_in_version/metadata.json
537
539
  - spec/lib/simp/files/componentinfo_spec/module_with_version_misordered_entries/CHANGELOG
538
540
  - spec/lib/simp/files/componentinfo_spec/module_with_version_misordered_entries/metadata.json
539
541
  - spec/lib/simp/files/componentinfo_spec/module_without_changelog/metadata.json
@@ -568,6 +570,7 @@ files:
568
570
  - spec/lib/simp/files/testpackage-1-0.noarch.rpm
569
571
  - spec/lib/simp/files/testpackage-dist.spec
570
572
  - spec/lib/simp/files/testpackage-multi.spec
573
+ - spec/lib/simp/files/testpackage-rc0.spec
571
574
  - spec/lib/simp/files/testpackage.spec
572
575
  - spec/lib/simp/local_gpg_signing_key_spec.rb.beaker-only
573
576
  - spec/lib/simp/packer/iso_vars_json_spec.rb
@@ -647,8 +650,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
647
650
  - !ruby/object:Gem::Version
648
651
  version: '0'
649
652
  requirements: []
650
- rubyforge_project:
651
- rubygems_version: 2.7.7
653
+ rubygems_version: 3.0.8
652
654
  signing_key:
653
655
  specification_version: 4
654
656
  summary: SIMP rake helpers