puppet-modulebuilder 0.3.0 → 1.0.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
  SHA256:
3
- metadata.gz: caf535563497b6e0a7bd98c749821dd30c60e33174497449459c754fc8ebffd1
4
- data.tar.gz: e72590d578145ced4d745cab78f32ea581208e537022b9d68ce6856bb3950664
3
+ metadata.gz: 33cb3f5962a7e27303e5c09116d2352ab060f78b38bb4f0047d0dd76ec7d876a
4
+ data.tar.gz: 49b490a39510243d4f85fceff8bc97a74fdd738185e274aea9138b684e35050e
5
5
  SHA512:
6
- metadata.gz: 3d3d125ef17ee7c5598ead12a03c8cd210435d9dd11ee89289233f51ff2231d7dd46ddd2901f4301550a889eac540e8f8ece5ff43610a313f312b9563854261f
7
- data.tar.gz: 16e26fef2258fbc132962aeb8bce6c0ede396fcd0d498778be63450e4df3b10ec9a2870e3043e8a11d2e16a1dcf42bd551dbd62e82d46ae7054f401f8178486f
6
+ metadata.gz: 22a2c93fb8cfa5db2ca19f7ac3a7a13af606f57e45cf3b72279981e483e515c88da1d0b3a14d2790488143856f1bf03df435d2f21a72414461da8027c51e7d2f
7
+ data.tar.gz: 8b2cb7d746ee3cd842d11b6eef82cac646f63aff78928765341ce4b2859e496e8c4f76d38c2c74cde103265cd7c6622d98575844c289a02505476b57ca140248
@@ -0,0 +1,54 @@
1
+ name: "ci"
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - "main"
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ spec:
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ ruby_version:
15
+ - "2.7"
16
+ - "3.2"
17
+ include:
18
+ - ruby-version: '2.7'
19
+ puppet_gem_version: '~> 7.0'
20
+ - ruby_version: '3.2'
21
+ puppet_gem_version: 'https://github.com/puppetlabs/puppet' # puppet8'
22
+ runs_on:
23
+ - "ubuntu-latest"
24
+ - "windows-latest"
25
+ name: "spec (${{ matrix.runs_on }} ruby ${{ matrix.ruby_version }} | puppet ${{matrix.puppet_gem_version}})"
26
+ uses: "puppetlabs/cat-github-actions/.github/workflows/gem_ci.yml@main"
27
+ secrets: "inherit"
28
+ with:
29
+ ruby_version: ${{ matrix.ruby_version }}
30
+ puppet_gem_version: ${{ matrix.puppet_gem_version }}
31
+ runs_on: ${{ matrix.runs_on }}
32
+
33
+ acceptance:
34
+ needs: "spec"
35
+ strategy:
36
+ matrix:
37
+ ruby_version:
38
+ - "2.7"
39
+ - "3.2"
40
+ include:
41
+ - ruby-version: '2.7'
42
+ puppet_gem_version: '~> 7.0'
43
+ - ruby_version: '3.2'
44
+ puppet_gem_version: 'https://github.com/puppetlabs/puppet' # puppet8'
45
+ runs_on:
46
+ - "ubuntu-latest"
47
+ - "windows-latest"
48
+ name: "acceptance (${{ matrix.runs_on }} ruby ${{ matrix.ruby_version }} | puppet ${{matrix.puppet_gem_version}})"
49
+ uses: "puppetlabs/cat-github-actions/.github/workflows/gem_acceptance.yml@main"
50
+ secrets: "inherit"
51
+ with:
52
+ ruby_version: ${{ matrix.ruby_version }}
53
+ puppet_version: ${{ matrix.puppet_gem_version }}
54
+ runs_on: ${{ matrix.runs_on }}
@@ -0,0 +1,22 @@
1
+ name: community-labeller
2
+
3
+ on:
4
+ issues:
5
+ types:
6
+ - opened
7
+ pull_request_target:
8
+ types:
9
+ - opened
10
+
11
+ jobs:
12
+ label:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+
16
+ - uses: puppetlabs/community-labeller@v0
17
+ name: Label issues or pull requests
18
+ with:
19
+ label_name: community
20
+ label_color: '5319e7'
21
+ org_membership: puppetlabs
22
+ token: ${{ secrets.IAC_COMMUNITY_LABELER }}
@@ -0,0 +1,15 @@
1
+ name: "mend"
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - "main"
7
+ schedule:
8
+ - cron: "0 0 * * *"
9
+ workflow_dispatch:
10
+
11
+ jobs:
12
+
13
+ mend:
14
+ uses: "puppetlabs/cat-github-actions/.github/workflows/mend_ruby.yml@main"
15
+ secrets: "inherit"
@@ -0,0 +1,52 @@
1
+ name: "nightly"
2
+
3
+ on:
4
+ schedule:
5
+ - cron: "0 0 * * *"
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ spec:
10
+ strategy:
11
+ fail-fast: false
12
+ matrix:
13
+ ruby_version:
14
+ - "2.7"
15
+ - "3.2"
16
+ include:
17
+ - ruby-version: '2.7'
18
+ puppet_gem_version: '~> 7.0'
19
+ - ruby_version: '3.2'
20
+ puppet_gem_version: 'https://github.com/puppetlabs/puppet' # puppet8'
21
+ runs_on:
22
+ - "ubuntu-latest"
23
+ - "windows-latest"
24
+ name: "spec (${{ matrix.runs_on }} ruby ${{ matrix.ruby_version }} | puppet ${{matrix.puppet_gem_version}})"
25
+ uses: "puppetlabs/cat-github-actions/.github/workflows/gem_ci.yml@main"
26
+ secrets: "inherit"
27
+ with:
28
+ ruby_version: ${{ matrix.ruby_version }}
29
+ puppet_gem_version: ${{ matrix.puppet_gem_version }}
30
+ runs_on: ${{ matrix.runs_on }}
31
+
32
+ acceptance:
33
+ needs: "spec"
34
+ strategy:
35
+ matrix:
36
+ ruby_version:
37
+ - "2.7"
38
+ - "3.2"
39
+ include:
40
+ - ruby-version: '2.7'
41
+ puppet_gem_version: '~> 7.0'
42
+ - ruby_version: '3.2'
43
+ puppet_gem_version: 'https://github.com/puppetlabs/puppet' # puppet8'
44
+ runs_on:
45
+ - "ubuntu-latest"
46
+ - "windows-latest"
47
+ uses: "puppetlabs/cat-github-actions/.github/workflows/gem_acceptance.yml@main"
48
+ secrets: "inherit"
49
+ with:
50
+ ruby_version: ${{ matrix.ruby_version }}
51
+ puppet_version: ${{ matrix.puppet_gem_version }}
52
+ runs_on: ${{ matrix.runs_on }}
@@ -0,0 +1,16 @@
1
+ name: "Release"
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ target:
7
+ description: "The target for the release. This can be a commit sha or a branch."
8
+ required: false
9
+ default: "main"
10
+
11
+ jobs:
12
+ release:
13
+ uses: "puppetlabs/cat-github-actions/.github/workflows/gem_release.yml@main"
14
+ with:
15
+ target: "${{ github.event.inputs.target }}"
16
+ secrets: "inherit"
@@ -0,0 +1,20 @@
1
+ name: "Release Prep"
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ target:
7
+ description: "The target for the release. This can be a commit sha or a branch."
8
+ required: false
9
+ default: "main"
10
+ version:
11
+ description: "Version of gem to be released."
12
+ required: true
13
+
14
+ jobs:
15
+ release_prep:
16
+ uses: "puppetlabs/cat-github-actions/.github/workflows/gem_release_prep.yml@main"
17
+ with:
18
+ target: "${{ github.event.inputs.target }}"
19
+ version: "${{ github.event.inputs.version }}"
20
+ secrets: "inherit"
data/.gitignore CHANGED
@@ -12,4 +12,5 @@ Gemfile.local
12
12
  # rspec failure tracking
13
13
  .rspec_status
14
14
 
15
+ vendor/
15
16
  Gemfile.lock
data/.rubocop.yml CHANGED
@@ -1,180 +1,19 @@
1
- require: rubocop-rspec
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ require:
4
+ - rubocop-performance
5
+ - rubocop-rspec
2
6
 
3
7
  AllCops:
4
- TargetRubyVersion: 2.3
5
8
  Exclude:
6
- # binstubs, and other utilities
7
- - bin/**/*
8
- - vendor/**/*
9
- - vendor/**/.*
10
- # package testing gems
11
- - package-testing/vendor/**/*
12
- - package-testing/vendor/**/.*
13
- # Any thing in test fixtures
9
+ - Gemfile
10
+ - Rakefile
14
11
  - spec/fixtures/**/*
12
+ - vendor/bundle/**/*
13
+ NewCops: enable
14
+ SuggestExtensions: false
15
+ TargetRubyVersion: '2.7'
15
16
 
16
- # Metrics, excludes complexity and sizing metrics for now, as ruby's defaults are very strict
17
- Metrics/AbcSize:
18
- Enabled: False
19
-
20
- Metrics/BlockLength:
21
- Description: rspec uses long describe blocks, so allow long blocks under spec/
22
- Enabled: False
23
- Exclude:
24
- - 'spec/**/*.rb'
25
-
26
- Metrics/ClassLength:
27
- Enabled: False
28
-
29
- Metrics/CyclomaticComplexity:
30
- Enabled: False
31
-
32
- Layout/LineLength:
33
- Description: People have wide screens, use them.
34
- Max: 200
35
-
36
- Metrics/MethodLength:
37
- Enabled: False
38
-
39
- Metrics/ModuleLength:
40
- Enabled: False
41
-
42
- Metrics/ParameterLists:
43
- Enabled: False
44
-
45
- Metrics/PerceivedComplexity:
46
- Enabled: False
47
-
48
- # RSpec cops
49
- RSpec/BeforeAfterAll:
50
- Description: Beware of using after(:all) as it may cause state to leak between tests. A necessary evil in acceptance testing.
51
- Exclude:
52
- - 'spec/acceptance/**/*.rb'
53
- - 'package-testing/spec/package/**/*.rb'
54
-
55
- RSpec/DescribeClass:
56
- Description: This cop does not account for rspec-puppet, and beaker-rspec usage.
57
- Enabled: False
58
-
59
- RSpec/HookArgument:
60
- Description: Prefer explicit :each argument, matching existing module's style
61
- EnforcedStyle: each
62
-
63
- RSpec/NestedGroups:
64
- Description: Nested groups can lead to cleaner tests with less duplication
65
- Max: 10
66
-
67
- RSpec/ExampleLength:
68
- Description: Forcing short examples leads to the creation of one-time use let() helpers
69
- Enabled: False
70
-
71
- RSpec/MessageSpies:
72
- EnforcedStyle: receive
73
-
74
- RSpec/ScatteredSetup:
75
- Enabled: False
76
-
77
- # This is fine
78
- RSpec/ImplicitSubject:
79
- Enabled: false
80
-
81
- # Set a reasonble max level
82
- RSpec/MultipleExpectations:
83
- Max: 10
84
-
85
- # Nested contexts don't comply
86
- RSpec/ContextWording:
87
- Enabled: false
88
-
89
- # This is allowed
90
- RSpec/SubjectStub:
91
- Enabled: false
92
-
93
- # Doesn't help readability
94
- RSpec/PredicateMatcher:
95
- Enabled: false
96
-
97
- # Style Cops
98
- Style/AsciiComments:
99
- Description: Names, non-english speaking communities.
100
- Enabled: False
101
-
102
- Style/BlockDelimiters:
103
- Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to be consistent then.
104
- EnforcedStyle: braces_for_chaining
105
-
17
+ # Disabled
106
18
  Style/ClassAndModuleChildren:
107
- Description: Compact style reduces the required amount of indentation.
108
- EnforcedStyle: compact
109
-
110
- Style/EmptyElse:
111
- Description: Enforce against empty else clauses, but allow `nil` for clarity.
112
- EnforcedStyle: empty
113
-
114
- Style/FormatString:
115
- Description: Following the main puppet project's style, prefer the % format format.
116
- EnforcedStyle: percent
117
-
118
- Style/FormatStringToken:
119
- Description: Following the main puppet project's style, prefer the simpler template tokens over annotated ones.
120
- EnforcedStyle: template
121
-
122
- Style/IfUnlessModifier:
123
- Description: Post-fix `if` modifiers are hard to parse for newcomers. We don't want to encourage them. Post-fix `unless` modifiers could be nice in some cases, but the Cop doesn't differentiate.
124
19
  Enabled: false
125
-
126
- Style/Lambda:
127
- Description: Prefer the keyword for easier discoverability.
128
- EnforcedStyle: literal
129
-
130
- Style/MethodCalledOnDoEndBlock:
131
- Enabled: true
132
-
133
- Style/RegexpLiteral:
134
- Description: Community preference. See https://github.com/voxpupuli/modulesync_config/issues/168
135
- EnforcedStyle: percent_r
136
-
137
- Style/SymbolProc:
138
- Description: SymbolProc notation is not discoverable
139
- Enabled: false
140
-
141
- Style/TernaryParentheses:
142
- Description: Checks for use of parentheses around ternary conditions. Enforce parentheses on complex expressions for better readability, but seriously consider breaking it up.
143
- EnforcedStyle: require_parentheses_when_complex
144
-
145
- Style/TrailingCommaInArguments:
146
- Description: Prefer always trailing comma on multiline argument lists. This makes diffs, and re-ordering nicer.
147
- EnforcedStyleForMultiline: comma
148
-
149
- Style/TrailingCommaInArrayLiteral:
150
- Description: Prefer always trailing comma on multiline literals. This makes diffs, and re-ordering nicer.
151
- EnforcedStyleForMultiline: comma
152
-
153
- Style/TrailingCommaInHashLiteral:
154
- Description: Prefer always trailing comma on multiline literals. This makes diffs, and re-ordering nicer.
155
- EnforcedStyleForMultiline: comma
156
-
157
- Style/SymbolArray:
158
- Description: Using percent style obscures symbolic intent of array's contents.
159
- Enabled: true
160
- EnforcedStyle: brackets
161
-
162
- Style/HashEachMethods:
163
- Enabled: true
164
-
165
- Style/HashTransformKeys:
166
- Enabled: true
167
-
168
- Style/HashTransformValues:
169
- Enabled: true
170
-
171
- # Enforce LF line endings, even when on Windows
172
- Layout/EndOfLine:
173
- EnforcedStyle: lf
174
-
175
- # new as of rubocop 0.81
176
- Lint/RaiseException:
177
- Enabled: true
178
-
179
- Lint/StructNewOverride:
180
- Enabled: true
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,95 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2023-04-18 09:21:48 UTC using RuboCop version 1.50.2.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # This cop supports safe autocorrection (--autocorrect).
11
+ # Configuration parameters: Severity, Include.
12
+ # Include: **/*.gemspec
13
+ Gemspec/RequireMFA:
14
+ Exclude:
15
+ - 'puppet-modulebuilder.gemspec'
16
+
17
+ # Offense count: 1
18
+ # Configuration parameters: Severity, Include.
19
+ # Include: **/*.gemspec
20
+ Gemspec/RequiredRubyVersion:
21
+ Exclude:
22
+ - 'puppet-modulebuilder.gemspec'
23
+
24
+ # Offense count: 5
25
+ # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
26
+ Metrics/AbcSize:
27
+ Max: 31
28
+
29
+ # Offense count: 1
30
+ # Configuration parameters: CountComments, CountAsOne.
31
+ Metrics/ClassLength:
32
+ Max: 255
33
+
34
+ # Offense count: 6
35
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
36
+ Metrics/MethodLength:
37
+ Max: 25
38
+
39
+ # Offense count: 1
40
+ # Configuration parameters: MinSize.
41
+ Performance/CollectionLiteralInLoop:
42
+ Exclude:
43
+ - 'spec/acceptance/puppet/modulebuilder/builder_spec.rb'
44
+
45
+ # Offense count: 4
46
+ # Configuration parameters: Prefixes, AllowedPatterns.
47
+ # Prefixes: when, with, without
48
+ RSpec/ContextWording:
49
+ Exclude:
50
+ - 'spec/acceptance/puppet/modulebuilder/builder_spec.rb'
51
+ - 'spec/unit/puppet/modulebuilder/builder_spec.rb'
52
+
53
+ # Offense count: 2
54
+ # Configuration parameters: CountAsOne.
55
+ RSpec/ExampleLength:
56
+ Max: 11
57
+
58
+ # Offense count: 10
59
+ # Configuration parameters: .
60
+ # SupportedStyles: have_received, receive
61
+ RSpec/MessageSpies:
62
+ EnforcedStyle: receive
63
+
64
+ # Offense count: 6
65
+ RSpec/MultipleExpectations:
66
+ Max: 11
67
+
68
+ # Offense count: 13
69
+ # Configuration parameters: AllowSubject.
70
+ RSpec/MultipleMemoizedHelpers:
71
+ Max: 8
72
+
73
+ # Offense count: 8
74
+ # Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
75
+ # SupportedStyles: always, named_only
76
+ RSpec/NamedSubject:
77
+ Exclude:
78
+ - 'spec/unit/puppet/modulebuilder/builder_spec.rb'
79
+
80
+ # Offense count: 3
81
+ # Configuration parameters: AllowedGroups.
82
+ RSpec/NestedGroups:
83
+ Max: 5
84
+
85
+ # Offense count: 33
86
+ RSpec/SubjectStub:
87
+ Exclude:
88
+ - 'spec/unit/puppet/modulebuilder/builder_spec.rb'
89
+
90
+ # Offense count: 9
91
+ # This cop supports safe autocorrection (--autocorrect).
92
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
93
+ # URISchemes: http, https
94
+ Layout/LineLength:
95
+ Max: 188
data/CHANGELOG.md CHANGED
@@ -1,49 +1,58 @@
1
- # Change log
1
+ <!-- markdownlint-disable MD024 -->
2
+ # Changelog
2
3
 
3
- All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org).
4
+ All notable changes to this project will be documented in this file.
4
5
 
6
+ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org).
5
7
 
6
- ## [v0.3.0](https://github.com/puppetlabs/puppet-modulebuilder/tree/v0.3.0) (2021-05-17)
8
+ ## [v1.0.0](https://github.com/puppetlabs/puppet-modulebuilder/tree/v1.0.0) - 2023-04-25
9
+
10
+ [Full Changelog](https://github.com/puppetlabs/puppet-modulebuilder/compare/v1.0.0.rc.1...v1.0.0)
11
+
12
+ ## [v1.0.0.rc.1](https://github.com/puppetlabs/puppet-modulebuilder/tree/v1.0.0.rc.1) - 2023-04-18
13
+
14
+ [Full Changelog](https://github.com/puppetlabs/puppet-modulebuilder/compare/v0.3.0...v1.0.0.rc.1)
15
+
16
+ ### Changed
17
+ - (CONT-881) Ruby 3 / Puppet 8 Support [#50](https://github.com/puppetlabs/puppet-modulebuilder/pull/50) ([chelnak](https://github.com/chelnak))
18
+
19
+ ## [v0.3.0](https://github.com/puppetlabs/puppet-modulebuilder/tree/v0.3.0) - 2021-05-17
7
20
 
8
21
  [Full Changelog](https://github.com/puppetlabs/puppet-modulebuilder/compare/v0.2.1...v0.3.0)
9
22
 
10
- **Implemented enhancements:**
23
+ ### Added
11
24
 
12
- - Refresh dependency matrix; drop ruby 2.3 and earlier [\#35](https://github.com/puppetlabs/puppet-modulebuilder/pull/35) ([DavidS](https://github.com/DavidS))
13
- - Use Puppet 7 in development on Ruby 2.7+ [\#32](https://github.com/puppetlabs/puppet-modulebuilder/pull/32) ([ekohl](https://github.com/ekohl))
14
- - Add a setter for release\_name [\#31](https://github.com/puppetlabs/puppet-modulebuilder/pull/31) ([ekohl](https://github.com/ekohl))
15
- - Preserve directory mtimes [\#27](https://github.com/puppetlabs/puppet-modulebuilder/pull/27) ([ekohl](https://github.com/ekohl))
16
- - Use match\_path instead of match\_paths [\#26](https://github.com/puppetlabs/puppet-modulebuilder/pull/26) ([ekohl](https://github.com/ekohl))
25
+ - Use Puppet 7 in development on Ruby 2.7+ [#32](https://github.com/puppetlabs/puppet-modulebuilder/pull/32) ([ekohl](https://github.com/ekohl))
26
+ - Add a setter for release_name [#31](https://github.com/puppetlabs/puppet-modulebuilder/pull/31) ([ekohl](https://github.com/ekohl))
27
+ - Preserve directory mtimes [#27](https://github.com/puppetlabs/puppet-modulebuilder/pull/27) ([ekohl](https://github.com/ekohl))
28
+ - Use match_path instead of match_paths [#26](https://github.com/puppetlabs/puppet-modulebuilder/pull/26) ([ekohl](https://github.com/ekohl))
17
29
 
18
- **Fixed bugs:**
30
+ ### Fixed
19
31
 
20
- - Use correct source variable when warning about symlinks [\#36](https://github.com/puppetlabs/puppet-modulebuilder/pull/36) ([DavidS](https://github.com/DavidS))
21
- - Ignore all hidden files in the root dir [\#29](https://github.com/puppetlabs/puppet-modulebuilder/pull/29) ([ekohl](https://github.com/ekohl))
32
+ - Use correct source variable when warning about symlinks [#36](https://github.com/puppetlabs/puppet-modulebuilder/pull/36) ([DavidS](https://github.com/DavidS))
33
+ - Ignore all hidden files in the root dir [#29](https://github.com/puppetlabs/puppet-modulebuilder/pull/29) ([ekohl](https://github.com/ekohl))
22
34
 
23
- ## [v0.2.1](https://github.com/puppetlabs/puppet-modulebuilder/tree/v0.2.1) (2020-06-08)
35
+ ## [v0.2.1](https://github.com/puppetlabs/puppet-modulebuilder/tree/v0.2.1) - 2020-06-08
24
36
 
25
37
  [Full Changelog](https://github.com/puppetlabs/puppet-modulebuilder/compare/v0.2.0...v0.2.1)
26
38
 
27
- **Fixed bugs:**
39
+ ### Fixed
28
40
 
29
- - \(IAC-864\) fix symlinked source [\#23](https://github.com/puppetlabs/puppet-modulebuilder/pull/23) ([DavidS](https://github.com/DavidS))
30
- - \(IAC-859\) add Ruby 2.7 testing; address deprecation warnings [\#22](https://github.com/puppetlabs/puppet-modulebuilder/pull/22) ([DavidS](https://github.com/DavidS))
41
+ - (IAC-864) fix symlinked source [#23](https://github.com/puppetlabs/puppet-modulebuilder/pull/23) ([DavidS](https://github.com/DavidS))
42
+ - (IAC-859) add Ruby 2.7 testing; address deprecation warnings [#22](https://github.com/puppetlabs/puppet-modulebuilder/pull/22) ([DavidS](https://github.com/DavidS))
31
43
 
32
- ## [v0.2.0](https://github.com/puppetlabs/puppet-modulebuilder/tree/v0.2.0) (2020-04-30)
44
+ ## [v0.2.0](https://github.com/puppetlabs/puppet-modulebuilder/tree/v0.2.0) - 2020-04-30
33
45
 
34
46
  [Full Changelog](https://github.com/puppetlabs/puppet-modulebuilder/compare/v0.1.0...v0.2.0)
35
47
 
36
- **Implemented enhancements:**
37
-
38
- - Set defaults for Builder [\#11](https://github.com/puppetlabs/puppet-modulebuilder/pull/11) ([ekohl](https://github.com/ekohl))
39
-
40
- **Fixed bugs:**
48
+ ### Added
41
49
 
42
- - Always ignore .git [\#15](https://github.com/puppetlabs/puppet-modulebuilder/pull/15) ([ekohl](https://github.com/ekohl))
50
+ - Set defaults for Builder [#11](https://github.com/puppetlabs/puppet-modulebuilder/pull/11) ([ekohl](https://github.com/ekohl))
43
51
 
44
- ## v0.1.0
52
+ ### Fixed
45
53
 
46
- This is the initial release of the project.
54
+ - Always ignore .git [#15](https://github.com/puppetlabs/puppet-modulebuilder/pull/15) ([ekohl](https://github.com/ekohl))
47
55
 
56
+ ## [v0.1.0](https://github.com/puppetlabs/puppet-modulebuilder/tree/v0.1.0) - 2020-02-27
48
57
 
49
- \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
58
+ [Full Changelog](https://github.com/puppetlabs/puppet-modulebuilder/compare/01ac316defabe60fb7d3c95ec2b219ad5e8e1591...v0.1.0)
data/CODEOWNERS ADDED
@@ -0,0 +1 @@
1
+ * @puppetlabs/modules
data/Gemfile CHANGED
@@ -5,39 +5,34 @@ source 'https://rubygems.org'
5
5
  # Specify your gem's dependencies in puppet-modulebuilder.gemspec
6
6
  gemspec
7
7
 
8
- group :development do
9
- ruby_version = Gem::Version.new(RUBY_VERSION)
10
-
11
- gem 'rake', '~> 12.0'
12
- gem 'rspec', '~> 3.0'
8
+ def location_for(place_or_version, fake_version = nil)
9
+ git_url_regex = %r{\A(?<url>(https?|git)[:@][^#]*)(#(?<branch>.*))?}
10
+ file_url_regex = %r{\Afile:\/\/(?<path>.*)}
11
+
12
+ if place_or_version && (git_url = place_or_version.match(git_url_regex))
13
+ [fake_version, { git: git_url[:url], branch: git_url[:branch], require: false }].compact
14
+ elsif place_or_version && (file_url = place_or_version.match(file_url_regex))
15
+ ['>= 0', { path: File.expand_path(file_url[:path]), require: false }]
16
+ else
17
+ [place_or_version, { require: false }]
18
+ end
19
+ end
13
20
 
14
- gem 'rubocop', ['~> 0.68', '< 0.82.0']
15
- gem 'rubocop-rspec', '~> 1.38'
21
+ group :development do
22
+ gem 'puppet', *location_for(ENV['PUPPET_GEM_VERSION'])
16
23
 
17
- gem 'codecov', '~> 0.1'
18
- gem 'github_changelog_generator', '~> 1.15', require: false
19
- gem 'simplecov', '~> 0.18'
20
- gem 'simplecov-console', '~> 0.6'
24
+ gem 'rake'
25
+ gem 'rspec', '~> 3.1'
21
26
 
22
- puppet_version = if ruby_version >= Gem::Version.new('2.7.0')
23
- '~> 7.0'
24
- elsif ruby_version >= Gem::Version.new('2.5.0')
25
- '~> 6.0'
26
- else
27
- '~> 5.0'
28
- end
27
+ gem 'rubocop', '~> 1.48', require: false
28
+ gem 'rubocop-performance', '~> 1.16', require: false
29
+ gem 'rubocop-rspec', '~> 2.19', require: false
29
30
 
30
- gem 'puppet', puppet_version
31
- end
31
+ gem 'codecov'
32
+ gem 'simplecov'
33
+ gem 'simplecov-console'
32
34
 
33
- # Evaluate Gemfile.local and ~/.gemfile if they exist
34
- extra_gemfiles = [
35
- "#{__FILE__}.local",
36
- File.join(Dir.home, '.gemfile'),
37
- ]
38
35
 
39
- extra_gemfiles.each do |gemfile|
40
- if File.file?(gemfile) && File.readable?(gemfile)
41
- eval(File.read(gemfile), binding) # rubocop:disable Security/Eval
42
- end
36
+ # Required for testing on Windows
37
+ gem 'ffi', :platforms => [:x64_mingw]
43
38
  end
data/README.md CHANGED
@@ -1,5 +1,3 @@
1
- [![Build Status](https://travis-ci.com/puppetlabs/puppet-modulebuilder.svg?branch=main)](https://travis-ci.com/puppetlabs/puppet-modulebuilder) [![Build status](https://ci.appveyor.com/api/projects/status/j9tosvq4a09iw0bx/branch/main?svg=true)](https://ci.appveyor.com/project/puppetlabs/puppet-modulebuilder/branch/main)
2
-
3
1
  # Puppet::Modulebuilder
4
2
 
5
3
  The `puppet-modulebuilder` gem contains the reference implementation for building Puppet modules from source.
data/Rakefile CHANGED
@@ -2,18 +2,6 @@
2
2
 
3
3
  require 'bundler/gem_tasks'
4
4
  require 'rspec/core/rake_task'
5
- begin
6
- # make rubocop optional to deal with ruby 2.1
7
- require 'rubocop/rake_task'
8
-
9
- RuboCop::RakeTask.new(:rubocop) do |task|
10
- task.options = %w[-D -S -E]
11
- end
12
-
13
- task default: [:rubocop]
14
- rescue LoadError => e
15
- puts "Can't load 'rubocop/rake_task': #{e.inspect}"
16
- end
17
5
 
18
6
  RSpec::Core::RakeTask.new(:spec) do |t|
19
7
  t.pattern = 'spec/unit/**/*_spec.rb'
@@ -24,24 +12,3 @@ RSpec::Core::RakeTask.new(:acceptance) do |t|
24
12
  end
25
13
 
26
14
  task default: [:spec, :acceptance]
27
-
28
- if Bundler.rubygems.find_name('github_changelog_generator').any?
29
- require 'github_changelog_generator/task'
30
- GitHubChangelogGenerator::RakeTask.new :changelog do |config|
31
- config.user = 'puppetlabs'
32
- config.project = 'puppet-modulebuilder'
33
- require 'puppet/modulebuilder/version'
34
- config.future_release = "v#{Puppet::Modulebuilder::VERSION}"
35
- config.exclude_labels = ['maintenance']
36
- config.header = <<-HEADER
37
- # Change log
38
-
39
- All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org).
40
- HEADER
41
- .gsub(%r{^ *}, '')
42
-
43
- config.add_pr_wo_labels = true
44
- config.issues = false
45
- config.merge_prefix = '### UNCATEGORIZED PRS; GO LABEL THEM'
46
- end
47
- end
@@ -13,15 +13,17 @@ module Puppet::Modulebuilder
13
13
  '/checksums.json',
14
14
  '/REVISION',
15
15
  '/spec/fixtures/modules/',
16
- '/vendor/',
16
+ '/vendor/'
17
17
  ].freeze
18
18
 
19
- attr_reader :destination
20
-
21
- attr_reader :logger
19
+ attr_reader :destination, :logger
22
20
 
23
21
  def initialize(source, destination = nil, logger = nil)
24
- raise ArgumentError, 'logger is expected to be nil or a Logger. Got %{klass}' % { klass: logger.class } unless logger.nil? || logger.is_a?(Logger)
22
+ unless logger.nil? || logger.is_a?(Logger)
23
+ raise ArgumentError,
24
+ format('logger is expected to be nil or a Logger. Got %<klass>s',
25
+ klass: logger.class)
26
+ end
25
27
 
26
28
  @source_validated = false
27
29
  @source = source
@@ -63,7 +65,7 @@ module Puppet::Modulebuilder
63
65
  def build_context
64
66
  {
65
67
  parent_dir: destination,
66
- build_dir_name: release_name,
68
+ build_dir_name: release_name
67
69
  }.freeze
68
70
  end
69
71
 
@@ -121,7 +123,9 @@ module Puppet::Modulebuilder
121
123
  fileutils_cp(path, dest_path, preserve: true)
122
124
  end
123
125
  rescue ArgumentError => e
124
- raise '%{message} Rename the file or exclude it from the package by adding it to the .pdkignore file in your module.' % { message: e.message }
126
+ raise format(
127
+ '%<message>s Rename the file or exclude it from the package by adding it to the .pdkignore file in your module.', message: e.message
128
+ )
125
129
  end
126
130
  end
127
131
 
@@ -143,7 +147,7 @@ module Puppet::Modulebuilder
143
147
  #
144
148
  # @return [Boolean] true if the path matches and should be ignored.
145
149
  def ignored_path?(path)
146
- path = path.to_s + '/' if File.directory?(path)
150
+ path = "#{path}/" if File.directory?(path)
147
151
 
148
152
  ignored_files.match_path(path, source)
149
153
  end
@@ -160,10 +164,8 @@ module Puppet::Modulebuilder
160
164
  symlink_path = Pathname.new(path)
161
165
  module_path = Pathname.new(source)
162
166
 
163
- logger.warn 'Symlinks in modules are not supported and will not be included in the package. Please investigate symlink %{from} -> %{to}.' % {
164
- from: symlink_path.relative_path_from(module_path),
165
- to: symlink_path.realpath.relative_path_from(module_path),
166
- }
167
+ logger.warn format('Symlinks in modules are not supported and will not be included in the package. Please investigate symlink %<from>s -> %<to>s.',
168
+ from: symlink_path.relative_path_from(module_path), to: symlink_path.realpath.relative_path_from(module_path))
167
169
  end
168
170
 
169
171
  # Select the most appropriate ignore file in the module directory.
@@ -177,7 +179,7 @@ module Puppet::Modulebuilder
177
179
  @ignore_file ||= [
178
180
  File.join(source, '.pdkignore'),
179
181
  File.join(source, '.pmtignore'),
180
- File.join(source, '.gitignore'),
182
+ File.join(source, '.gitignore')
181
183
  ].find { |file| file_exists?(file) && file_readable?(file) }
182
184
  end
183
185
 
@@ -194,10 +196,10 @@ module Puppet::Modulebuilder
194
196
  #
195
197
  # @return [nil]
196
198
  def validate_path_encoding!(path)
197
- return unless path =~ %r{[^\x00-\x7F]}
199
+ return unless /[^\x00-\x7F]/.match?(path)
198
200
 
199
- raise ArgumentError, "'%{path}' can only include ASCII characters in its path or " \
200
- 'filename in order to be compatible with a wide range of hosts.' % { path: path }
201
+ raise ArgumentError, format("'%<path>s' can only include ASCII characters in its path or " \
202
+ 'filename in order to be compatible with a wide range of hosts.', path: path)
201
203
  end
202
204
 
203
205
  # Creates a gzip compressed tarball of the build directory.
@@ -221,7 +223,7 @@ module Puppet::Modulebuilder
221
223
  tar = Minitar::Output.new(gz)
222
224
  Find.find(build_context[:build_dir_name]) do |entry|
223
225
  entry_meta = {
224
- name: entry,
226
+ name: entry
225
227
  }
226
228
 
227
229
  orig_mode = File.stat(entry).mode
@@ -230,10 +232,8 @@ module Puppet::Modulebuilder
230
232
  entry_meta[:mode] = orig_mode | min_mode
231
233
 
232
234
  if entry_meta[:mode] != orig_mode
233
- logger.debug('Updated permissions of packaged \'%{entry}\' to %{new_mode}' % {
234
- entry: entry,
235
- new_mode: (entry_meta[:mode] & 0o7777).to_s(8),
236
- })
235
+ logger.debug(format('Updated permissions of packaged \'%<entry>s\' to %<new_mode>s', entry: entry,
236
+ new_mode: (entry_meta[:mode] & 0o7777).to_s(8)))
237
237
  end
238
238
 
239
239
  Minitar.pack_file(entry_meta, tar)
@@ -259,9 +259,7 @@ module Puppet::Modulebuilder
259
259
  PathSpec.new(read_file(ignore_file, open_args: 'rb:UTF-8'))
260
260
  end
261
261
 
262
- if File.realdirpath(destination).start_with?(File.realdirpath(source))
263
- ignored = ignored.add("\/#{File.basename(destination)}\/")
264
- end
262
+ ignored = ignored.add("/#{File.basename(destination)}/") if File.realdirpath(destination).start_with?(File.realdirpath(source))
265
263
 
266
264
  DEFAULT_IGNORED.each { |r| ignored.add(r) }
267
265
 
@@ -296,18 +294,22 @@ module Puppet::Modulebuilder
296
294
  metadata_json_path = File.join(source, 'metadata.json')
297
295
 
298
296
  unless file_exists?(metadata_json_path)
299
- raise ArgumentError, "'%{file}' does not exist or is not a file." % { file: metadata_json_path }
297
+ raise ArgumentError,
298
+ format("'%<file>s' does not exist or is not a file.",
299
+ file: metadata_json_path)
300
300
  end
301
301
 
302
302
  unless file_readable?(metadata_json_path)
303
- raise ArgumentError, "Unable to open '%{file}' for reading." % { file: metadata_json_path }
303
+ raise ArgumentError,
304
+ format("Unable to open '%<file>s' for reading.",
305
+ file: metadata_json_path)
304
306
  end
305
307
 
306
308
  require 'json'
307
309
  begin
308
310
  @metadata = JSON.parse(read_file(metadata_json_path))
309
311
  rescue JSON::JSONError => e
310
- raise ArgumentError, 'Invalid JSON in metadata.json: %{msg}' % { msg: e.message }
312
+ raise ArgumentError, format('Invalid JSON in metadata.json: %<msg>s', msg: e.message)
311
313
  end
312
314
  @metadata.freeze
313
315
  end
@@ -334,7 +336,7 @@ module Puppet::Modulebuilder
334
336
  def release_name
335
337
  @release_name ||= [
336
338
  metadata['name'],
337
- metadata['version'],
339
+ metadata['version']
338
340
  ].join('-')
339
341
  end
340
342
 
@@ -360,11 +362,7 @@ module Puppet::Modulebuilder
360
362
  #
361
363
  # @return [nil]
362
364
  def validate_ustar_path!(path)
363
- if path.bytesize > 256
364
- raise ArgumentError, "The path '%{path}' is longer than 256 bytes." % {
365
- path: path,
366
- }
367
- end
365
+ raise ArgumentError, format("The path '%<path>s' is longer than 256 bytes.", path: path) if path.bytesize > 256
368
366
 
369
367
  if path.bytesize <= 100
370
368
  prefix = ''
@@ -387,9 +385,9 @@ module Puppet::Modulebuilder
387
385
  return unless path.bytesize > 100 || prefix.bytesize > 155
388
386
 
389
387
  raise ArgumentError, \
390
- "'%{path}' could not be split at a directory separator into two " \
391
- 'parts, the first having a maximum length of 155 bytes and the ' \
392
- 'second having a maximum length of 100 bytes.' % { path: path }
388
+ format("'%<path>s' could not be split at a directory separator into two " \
389
+ 'parts, the first having a maximum length of 155 bytes and the ' \
390
+ 'second having a maximum length of 100 bytes.', path: path)
393
391
  end
394
392
 
395
393
  private
@@ -397,7 +395,8 @@ module Puppet::Modulebuilder
397
395
  # Validates that source is able to be built
398
396
  def validate_source!
399
397
  unless file_directory?(@source) && file_readable?(@source)
400
- raise ArgumentError, "Module source '%{source}' does not exist as a directory is or is not readable" % { source: @source }
398
+ raise ArgumentError,
399
+ format("Module source '%<source>s' does not exist as a directory is or is not readable", source: @source)
401
400
  end
402
401
 
403
402
  @source_validated = true
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Puppet # rubocop:disable Style/ClassAndModuleChildren
3
+ module Puppet
4
4
  module Modulebuilder
5
- VERSION = '0.3.0'
5
+ VERSION = '1.0.0'
6
6
  end
7
7
  end
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.email = ['sheena@puppet.com', 'https://puppetlabs.github.io/iac/']
10
10
  spec.summary = 'A gem to set up puppet-modulebuilder'
11
11
  spec.homepage = 'https://github.com/puppetlabs/puppet-modulebuilder'
12
- spec.required_ruby_version = Gem::Requirement.new('>= 2.1.0')
12
+ spec.license = 'Apache-2.0'
13
13
 
14
14
  spec.metadata['homepage_uri'] = spec.homepage
15
15
  spec.metadata['source_code_uri'] = 'https://github.com/puppetlabs/puppet-modulebuilder'
@@ -26,4 +26,6 @@ Gem::Specification.new do |spec|
26
26
  # minitar and pathspec is required for building Puppet modules
27
27
  spec.add_runtime_dependency 'minitar', '~> 0.9'
28
28
  spec.add_runtime_dependency 'pathspec', '>= 0.2.1', '< 2.0.0'
29
+
30
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.7.0')
29
31
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-modulebuilder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sheena
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2021-05-17 00:00:00.000000000 Z
12
+ date: 2023-04-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: minitar
@@ -53,25 +53,29 @@ executables: []
53
53
  extensions: []
54
54
  extra_rdoc_files: []
55
55
  files:
56
- - ".github/CODEOWNERS"
57
- - ".github/dependabot.yml"
56
+ - ".github/workflows/ci.yml"
57
+ - ".github/workflows/labeller.yml"
58
+ - ".github/workflows/mend.yml"
59
+ - ".github/workflows/nightly.yml"
60
+ - ".github/workflows/release.yml"
61
+ - ".github/workflows/release_prep.yml"
58
62
  - ".gitignore"
59
63
  - ".rspec"
60
64
  - ".rubocop.yml"
61
- - ".travis.yml"
65
+ - ".rubocop_todo.yml"
62
66
  - CHANGELOG.md
67
+ - CODEOWNERS
63
68
  - Gemfile
64
- - HISTORY.md
65
69
  - LICENSE
66
70
  - README.md
67
71
  - Rakefile
68
- - appveyor.yml
69
72
  - lib/puppet/modulebuilder.rb
70
73
  - lib/puppet/modulebuilder/builder.rb
71
74
  - lib/puppet/modulebuilder/version.rb
72
75
  - puppet-modulebuilder.gemspec
73
76
  homepage: https://github.com/puppetlabs/puppet-modulebuilder
74
- licenses: []
77
+ licenses:
78
+ - Apache-2.0
75
79
  metadata:
76
80
  homepage_uri: https://github.com/puppetlabs/puppet-modulebuilder
77
81
  source_code_uri: https://github.com/puppetlabs/puppet-modulebuilder
@@ -84,14 +88,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
84
88
  requirements:
85
89
  - - ">="
86
90
  - !ruby/object:Gem::Version
87
- version: 2.1.0
91
+ version: 2.7.0
88
92
  required_rubygems_version: !ruby/object:Gem::Requirement
89
93
  requirements:
90
94
  - - ">="
91
95
  - !ruby/object:Gem::Version
92
96
  version: '0'
93
97
  requirements: []
94
- rubygems_version: 3.0.3
98
+ rubygems_version: 3.1.6
95
99
  signing_key:
96
100
  specification_version: 4
97
101
  summary: A gem to set up puppet-modulebuilder
data/.github/CODEOWNERS DELETED
@@ -1,2 +0,0 @@
1
- # Setting ownership to the modules team
2
- * @puppetlabs/modules @puppetlabs/pdk
@@ -1,15 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: bundler
4
- directory: "/"
5
- schedule:
6
- interval: daily
7
- time: "13:00"
8
- open-pull-requests-limit: 10
9
- ignore:
10
- - dependency-name: rake
11
- versions:
12
- - ">= 13.a, < 14"
13
- - dependency-name: rubocop
14
- versions:
15
- - "> 0.68"
data/.travis.yml DELETED
@@ -1,11 +0,0 @@
1
- ---
2
- os: linux
3
- language: ruby
4
- cache: bundler
5
- env:
6
- - SIMPLECOV=yes
7
- jobs:
8
- include:
9
- - rvm: 2.7
10
- - rvm: 2.5
11
- - rvm: 2.4
data/HISTORY.md DELETED
@@ -1,3 +0,0 @@
1
- ## v0.1.0
2
-
3
- This is the initial release of the project.
data/appveyor.yml DELETED
@@ -1,30 +0,0 @@
1
- ---
2
- environment:
3
- matrix:
4
- - RUBY_VERSION: 25-x64
5
- - RUBY_VERSION: 24-x64
6
-
7
- install:
8
- - set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
9
- - set SIMPLECOV=yes
10
- - gem install bundler -v 2.1.4
11
- - bundle -v
12
- - bundle install --retry 2
13
-
14
- build: off
15
-
16
- branches:
17
- only:
18
- - main
19
-
20
- before_test:
21
- - bundle env
22
- - type Gemfile.lock
23
-
24
- test_script:
25
- - bundle exec rake
26
-
27
- # Uncomment this block to enable RDP access to the AppVeyor test instance for
28
- # debugging purposes.
29
- # on_finish:
30
- # - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))