puppet-modulebuilder 0.2.1 → 1.0.0.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +54 -0
- data/.github/workflows/labeller.yml +22 -0
- data/.github/workflows/mend.yml +15 -0
- data/.github/workflows/nightly.yml +52 -0
- data/.github/workflows/release.yml +16 -0
- data/.github/workflows/release_prep.yml +20 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +12 -173
- data/.rubocop_todo.yml +95 -0
- data/CHANGELOG.md +38 -16
- data/CODEOWNERS +1 -0
- data/Gemfile +24 -26
- data/README.md +0 -2
- data/Rakefile +0 -33
- data/lib/puppet/modulebuilder/builder.rb +78 -45
- data/lib/puppet/modulebuilder/version.rb +2 -2
- data/puppet-modulebuilder.gemspec +6 -4
- metadata +27 -16
- data/.github/CODEOWNERS +0 -2
- data/.travis.yml +0 -17
- data/HISTORY.md +0 -3
- data/appveyor.yml +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fef044bf578d47eaeaae72be420c4fbeff9680d57c7d857c717aff287d353353
|
4
|
+
data.tar.gz: ff7be7ef4e34fd8854c330dd437a6f3e901d9ef5b36dcbc3f6d01da82ba10f0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38a7bbf226d1fba4dcc7ab1bb974da4f3399c7711ecd9675fac2f38d46a0579cb187f087274911bc5362518d33aa906ecb331f5f40cc75096bb2780a114c5ace
|
7
|
+
data.tar.gz: 55e4a68f956e52f440c0b30031475bff2d45996d88abe78629fa6c3f8c5f1fd98b036510e0660b3c763a5b42770c1734a0c86730aace89a71da8bc312b50d9f7
|
@@ -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,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
data/.rubocop.yml
CHANGED
@@ -1,180 +1,19 @@
|
|
1
|
-
|
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
|
-
|
7
|
-
-
|
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
|
-
#
|
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,32 +1,54 @@
|
|
1
|
-
|
1
|
+
<!-- markdownlint-disable MD024 -->
|
2
|
+
# Changelog
|
2
3
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
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
|
-
## [
|
8
|
+
## [v1.0.0-rc.1](https://github.com/puppetlabs/puppet-modulebuilder/tree/v1.0.0-rc.1) - 2023-04-18
|
7
9
|
|
8
|
-
[Full Changelog](https://github.com/puppetlabs/puppet-modulebuilder/compare/v0.
|
10
|
+
[Full Changelog](https://github.com/puppetlabs/puppet-modulebuilder/compare/v0.3.0...v1.0.0-rc.1)
|
9
11
|
|
10
|
-
|
12
|
+
### Changed
|
13
|
+
- (CONT-881) Ruby 3 / Puppet 8 Support [#50](https://github.com/puppetlabs/puppet-modulebuilder/pull/50) ([chelnak](https://github.com/chelnak))
|
11
14
|
|
12
|
-
|
13
|
-
- \(IAC-859\) add Ruby 2.7 testing; address deprecation warnings [\#22](https://github.com/puppetlabs/puppet-modulebuilder/pull/22) ([DavidS](https://github.com/DavidS))
|
15
|
+
## [v0.3.0](https://github.com/puppetlabs/puppet-modulebuilder/tree/v0.3.0) - 2021-05-17
|
14
16
|
|
15
|
-
|
17
|
+
[Full Changelog](https://github.com/puppetlabs/puppet-modulebuilder/compare/v0.2.1...v0.3.0)
|
16
18
|
|
17
|
-
|
19
|
+
### Added
|
20
|
+
|
21
|
+
- Use Puppet 7 in development on Ruby 2.7+ [#32](https://github.com/puppetlabs/puppet-modulebuilder/pull/32) ([ekohl](https://github.com/ekohl))
|
22
|
+
- Add a setter for release_name [#31](https://github.com/puppetlabs/puppet-modulebuilder/pull/31) ([ekohl](https://github.com/ekohl))
|
23
|
+
- Preserve directory mtimes [#27](https://github.com/puppetlabs/puppet-modulebuilder/pull/27) ([ekohl](https://github.com/ekohl))
|
24
|
+
- Use match_path instead of match_paths [#26](https://github.com/puppetlabs/puppet-modulebuilder/pull/26) ([ekohl](https://github.com/ekohl))
|
18
25
|
|
19
|
-
|
26
|
+
### Fixed
|
20
27
|
|
21
|
-
-
|
28
|
+
- Use correct source variable when warning about symlinks [#36](https://github.com/puppetlabs/puppet-modulebuilder/pull/36) ([DavidS](https://github.com/DavidS))
|
29
|
+
- Ignore all hidden files in the root dir [#29](https://github.com/puppetlabs/puppet-modulebuilder/pull/29) ([ekohl](https://github.com/ekohl))
|
30
|
+
|
31
|
+
## [v0.2.1](https://github.com/puppetlabs/puppet-modulebuilder/tree/v0.2.1) - 2020-06-08
|
32
|
+
|
33
|
+
[Full Changelog](https://github.com/puppetlabs/puppet-modulebuilder/compare/v0.2.0...v0.2.1)
|
34
|
+
|
35
|
+
### Fixed
|
36
|
+
|
37
|
+
- (IAC-864) fix symlinked source [#23](https://github.com/puppetlabs/puppet-modulebuilder/pull/23) ([DavidS](https://github.com/DavidS))
|
38
|
+
- (IAC-859) add Ruby 2.7 testing; address deprecation warnings [#22](https://github.com/puppetlabs/puppet-modulebuilder/pull/22) ([DavidS](https://github.com/DavidS))
|
39
|
+
|
40
|
+
## [v0.2.0](https://github.com/puppetlabs/puppet-modulebuilder/tree/v0.2.0) - 2020-04-30
|
41
|
+
|
42
|
+
[Full Changelog](https://github.com/puppetlabs/puppet-modulebuilder/compare/v0.1.0...v0.2.0)
|
22
43
|
|
23
|
-
|
44
|
+
### Added
|
24
45
|
|
25
|
-
-
|
46
|
+
- Set defaults for Builder [#11](https://github.com/puppetlabs/puppet-modulebuilder/pull/11) ([ekohl](https://github.com/ekohl))
|
26
47
|
|
27
|
-
|
48
|
+
### Fixed
|
28
49
|
|
29
|
-
|
50
|
+
- Always ignore .git [#15](https://github.com/puppetlabs/puppet-modulebuilder/pull/15) ([ekohl](https://github.com/ekohl))
|
30
51
|
|
52
|
+
## [v0.1.0](https://github.com/puppetlabs/puppet-modulebuilder/tree/v0.1.0) - 2020-02-27
|
31
53
|
|
32
|
-
|
54
|
+
[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,36 +5,34 @@ source 'https://rubygems.org'
|
|
5
5
|
# Specify your gem's dependencies in puppet-modulebuilder.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.3.0')
|
12
|
-
gem 'rubocop', ['~> 0.68', '< 0.82.0']
|
13
|
-
gem 'rubocop-rspec', '~> 1.38'
|
14
|
-
|
15
|
-
gem 'codecov', '~> 0.1'
|
16
|
-
gem 'github_changelog_generator', '~> 1.15', require: false
|
17
|
-
gem 'simplecov', '~> 0.18'
|
18
|
-
gem 'simplecov-console', '~> 0.6'
|
19
|
-
end
|
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>.*)}
|
20
11
|
|
21
|
-
if
|
22
|
-
|
23
|
-
elsif
|
24
|
-
|
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 }]
|
25
16
|
else
|
26
|
-
|
17
|
+
[place_or_version, { require: false }]
|
27
18
|
end
|
28
19
|
end
|
29
20
|
|
30
|
-
|
31
|
-
|
32
|
-
"#{__FILE__}.local",
|
33
|
-
File.join(Dir.home, '.gemfile'),
|
34
|
-
]
|
21
|
+
group :development do
|
22
|
+
gem 'puppet', *location_for(ENV['PUPPET_GEM_VERSION'])
|
35
23
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
24
|
+
gem 'rake'
|
25
|
+
gem 'rspec', '~> 3.1'
|
26
|
+
|
27
|
+
gem 'rubocop', '~> 1.48', require: false
|
28
|
+
gem 'rubocop-performance', '~> 1.16', require: false
|
29
|
+
gem 'rubocop-rspec', '~> 2.19', require: false
|
30
|
+
|
31
|
+
gem 'codecov'
|
32
|
+
gem 'simplecov'
|
33
|
+
gem 'simplecov-console'
|
34
|
+
|
35
|
+
|
36
|
+
# Required for testing on Windows
|
37
|
+
gem 'ffi', :platforms => [:x64_mingw]
|
40
38
|
end
|
data/README.md
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
[![Build Status](https://travis-ci.com/puppetlabs/puppet-modulebuilder.svg?branch=master)](https://travis-ci.com/puppetlabs/puppet-modulebuilder) [![Build status](https://ci.appveyor.com/api/projects/status/j9tosvq4a09iw0bx/branch/master?svg=true)](https://ci.appveyor.com/project/puppetlabs/puppet-modulebuilder/branch/master)
|
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
|
@@ -6,22 +6,24 @@ module Puppet::Modulebuilder
|
|
6
6
|
# Class to build Puppet Modules from source
|
7
7
|
class Builder
|
8
8
|
DEFAULT_IGNORED = [
|
9
|
-
'
|
9
|
+
'/.*',
|
10
10
|
'/pkg/',
|
11
11
|
'~*',
|
12
12
|
'/coverage',
|
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
|
-
|
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
|
@@ -53,7 +55,9 @@ module Puppet::Modulebuilder
|
|
53
55
|
end
|
54
56
|
|
55
57
|
# Return the path to the temporary build directory, which will be placed
|
56
|
-
# inside the target directory and match the release name
|
58
|
+
# inside the target directory and match the release name
|
59
|
+
#
|
60
|
+
# @see #release_name
|
57
61
|
def build_dir
|
58
62
|
@build_dir ||= File.join(build_context[:parent_dir], build_context[:build_dir_name])
|
59
63
|
end
|
@@ -61,7 +65,7 @@ module Puppet::Modulebuilder
|
|
61
65
|
def build_context
|
62
66
|
{
|
63
67
|
parent_dir: destination,
|
64
|
-
build_dir_name: release_name
|
68
|
+
build_dir_name: release_name
|
65
69
|
}.freeze
|
66
70
|
end
|
67
71
|
|
@@ -72,7 +76,9 @@ module Puppet::Modulebuilder
|
|
72
76
|
def stage_module_in_build_dir
|
73
77
|
require 'find'
|
74
78
|
|
75
|
-
|
79
|
+
directories = [source]
|
80
|
+
|
81
|
+
staged = Find.find(source) do |path|
|
76
82
|
next if path == source
|
77
83
|
|
78
84
|
if ignored_path?(path)
|
@@ -80,9 +86,18 @@ module Puppet::Modulebuilder
|
|
80
86
|
Find.prune
|
81
87
|
else
|
82
88
|
logger.debug("Staging #{path} for the build")
|
89
|
+
directories << path if file_directory?(path)
|
83
90
|
stage_path(path)
|
84
91
|
end
|
85
92
|
end
|
93
|
+
|
94
|
+
# Reset directory mtimes. This must happen after the files have been
|
95
|
+
# copied since that modifies a directory's mtime
|
96
|
+
directories.each do |directory|
|
97
|
+
copy_mtime(directory)
|
98
|
+
end
|
99
|
+
|
100
|
+
staged
|
86
101
|
end
|
87
102
|
|
88
103
|
# Stage a file or directory from the module into the build directory.
|
@@ -108,10 +123,23 @@ module Puppet::Modulebuilder
|
|
108
123
|
fileutils_cp(path, dest_path, preserve: true)
|
109
124
|
end
|
110
125
|
rescue ArgumentError => e
|
111
|
-
raise
|
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
|
+
)
|
112
129
|
end
|
113
130
|
end
|
114
131
|
|
132
|
+
def copy_mtime(path)
|
133
|
+
require 'pathname'
|
134
|
+
|
135
|
+
relative_path = Pathname.new(path).relative_path_from(Pathname.new(source))
|
136
|
+
dest_path = File.join(build_dir, relative_path)
|
137
|
+
|
138
|
+
validate_path_encoding!(relative_path.to_path)
|
139
|
+
|
140
|
+
fileutils_touch(dest_path, mtime: file_stat(path).mtime)
|
141
|
+
end
|
142
|
+
|
115
143
|
# Check if the given path matches one of the patterns listed in the
|
116
144
|
# ignore file.
|
117
145
|
#
|
@@ -119,9 +147,9 @@ module Puppet::Modulebuilder
|
|
119
147
|
#
|
120
148
|
# @return [Boolean] true if the path matches and should be ignored.
|
121
149
|
def ignored_path?(path)
|
122
|
-
path = path
|
150
|
+
path = "#{path}/" if File.directory?(path)
|
123
151
|
|
124
|
-
|
152
|
+
ignored_files.match_path(path, source)
|
125
153
|
end
|
126
154
|
|
127
155
|
# Warn the user about a symlink that would have been included in the
|
@@ -134,12 +162,10 @@ module Puppet::Modulebuilder
|
|
134
162
|
require 'pathname'
|
135
163
|
|
136
164
|
symlink_path = Pathname.new(path)
|
137
|
-
module_path = Pathname.new(
|
165
|
+
module_path = Pathname.new(source)
|
138
166
|
|
139
|
-
logger.warn
|
140
|
-
|
141
|
-
to: symlink_path.realpath.relative_path_from(module_path),
|
142
|
-
}
|
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))
|
143
169
|
end
|
144
170
|
|
145
171
|
# Select the most appropriate ignore file in the module directory.
|
@@ -153,7 +179,7 @@ module Puppet::Modulebuilder
|
|
153
179
|
@ignore_file ||= [
|
154
180
|
File.join(source, '.pdkignore'),
|
155
181
|
File.join(source, '.pmtignore'),
|
156
|
-
File.join(source, '.gitignore')
|
182
|
+
File.join(source, '.gitignore')
|
157
183
|
].find { |file| file_exists?(file) && file_readable?(file) }
|
158
184
|
end
|
159
185
|
|
@@ -170,10 +196,10 @@ module Puppet::Modulebuilder
|
|
170
196
|
#
|
171
197
|
# @return [nil]
|
172
198
|
def validate_path_encoding!(path)
|
173
|
-
return unless
|
199
|
+
return unless /[^\x00-\x7F]/.match?(path)
|
174
200
|
|
175
|
-
raise ArgumentError, "'
|
176
|
-
|
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)
|
177
203
|
end
|
178
204
|
|
179
205
|
# Creates a gzip compressed tarball of the build directory.
|
@@ -197,7 +223,7 @@ module Puppet::Modulebuilder
|
|
197
223
|
tar = Minitar::Output.new(gz)
|
198
224
|
Find.find(build_context[:build_dir_name]) do |entry|
|
199
225
|
entry_meta = {
|
200
|
-
name: entry
|
226
|
+
name: entry
|
201
227
|
}
|
202
228
|
|
203
229
|
orig_mode = File.stat(entry).mode
|
@@ -206,10 +232,8 @@ module Puppet::Modulebuilder
|
|
206
232
|
entry_meta[:mode] = orig_mode | min_mode
|
207
233
|
|
208
234
|
if entry_meta[:mode] != orig_mode
|
209
|
-
logger.debug('Updated permissions of packaged \'
|
210
|
-
|
211
|
-
new_mode: (entry_meta[:mode] & 0o7777).to_s(8),
|
212
|
-
})
|
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)))
|
213
237
|
end
|
214
238
|
|
215
239
|
Minitar.pack_file(entry_meta, tar)
|
@@ -235,9 +259,7 @@ module Puppet::Modulebuilder
|
|
235
259
|
PathSpec.new(read_file(ignore_file, open_args: 'rb:UTF-8'))
|
236
260
|
end
|
237
261
|
|
238
|
-
if File.realdirpath(destination).start_with?(File.realdirpath(source))
|
239
|
-
ignored = ignored.add("\/#{File.basename(destination)}\/")
|
240
|
-
end
|
262
|
+
ignored = ignored.add("/#{File.basename(destination)}/") if File.realdirpath(destination).start_with?(File.realdirpath(source))
|
241
263
|
|
242
264
|
DEFAULT_IGNORED.each { |r| ignored.add(r) }
|
243
265
|
|
@@ -272,18 +294,22 @@ module Puppet::Modulebuilder
|
|
272
294
|
metadata_json_path = File.join(source, 'metadata.json')
|
273
295
|
|
274
296
|
unless file_exists?(metadata_json_path)
|
275
|
-
raise ArgumentError,
|
297
|
+
raise ArgumentError,
|
298
|
+
format("'%<file>s' does not exist or is not a file.",
|
299
|
+
file: metadata_json_path)
|
276
300
|
end
|
277
301
|
|
278
302
|
unless file_readable?(metadata_json_path)
|
279
|
-
raise ArgumentError,
|
303
|
+
raise ArgumentError,
|
304
|
+
format("Unable to open '%<file>s' for reading.",
|
305
|
+
file: metadata_json_path)
|
280
306
|
end
|
281
307
|
|
282
308
|
require 'json'
|
283
309
|
begin
|
284
310
|
@metadata = JSON.parse(read_file(metadata_json_path))
|
285
311
|
rescue JSON::JSONError => e
|
286
|
-
raise ArgumentError, 'Invalid JSON in metadata.json:
|
312
|
+
raise ArgumentError, format('Invalid JSON in metadata.json: %<msg>s', msg: e.message)
|
287
313
|
end
|
288
314
|
@metadata.freeze
|
289
315
|
end
|
@@ -299,17 +325,23 @@ module Puppet::Modulebuilder
|
|
299
325
|
file_exists?(package_file)
|
300
326
|
end
|
301
327
|
|
302
|
-
#
|
303
|
-
#
|
328
|
+
# The release name is used for the build directory and resulting package
|
329
|
+
# file.
|
330
|
+
#
|
331
|
+
# The default combines the module name and version into a Forge-compatible
|
332
|
+
# dash separated string. Unless you have an unusual use case this isn't set
|
333
|
+
# manually.
|
304
334
|
#
|
305
|
-
# @return [String]
|
335
|
+
# @return [String]
|
306
336
|
def release_name
|
307
337
|
@release_name ||= [
|
308
338
|
metadata['name'],
|
309
|
-
metadata['version']
|
339
|
+
metadata['version']
|
310
340
|
].join('-')
|
311
341
|
end
|
312
342
|
|
343
|
+
attr_writer :release_name
|
344
|
+
|
313
345
|
# Checks if the path length will fit into the POSIX.1-1998 (ustar) tar
|
314
346
|
# header format.
|
315
347
|
#
|
@@ -330,11 +362,7 @@ module Puppet::Modulebuilder
|
|
330
362
|
#
|
331
363
|
# @return [nil]
|
332
364
|
def validate_ustar_path!(path)
|
333
|
-
if path.bytesize > 256
|
334
|
-
raise ArgumentError, "The path '%{path}' is longer than 256 bytes." % {
|
335
|
-
path: path,
|
336
|
-
}
|
337
|
-
end
|
365
|
+
raise ArgumentError, format("The path '%<path>s' is longer than 256 bytes.", path: path) if path.bytesize > 256
|
338
366
|
|
339
367
|
if path.bytesize <= 100
|
340
368
|
prefix = ''
|
@@ -357,9 +385,9 @@ module Puppet::Modulebuilder
|
|
357
385
|
return unless path.bytesize > 100 || prefix.bytesize > 155
|
358
386
|
|
359
387
|
raise ArgumentError, \
|
360
|
-
"'
|
361
|
-
|
362
|
-
|
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)
|
363
391
|
end
|
364
392
|
|
365
393
|
private
|
@@ -367,7 +395,8 @@ module Puppet::Modulebuilder
|
|
367
395
|
# Validates that source is able to be built
|
368
396
|
def validate_source!
|
369
397
|
unless file_directory?(@source) && file_readable?(@source)
|
370
|
-
raise ArgumentError,
|
398
|
+
raise ArgumentError,
|
399
|
+
format("Module source '%<source>s' does not exist as a directory is or is not readable", source: @source)
|
371
400
|
end
|
372
401
|
|
373
402
|
@source_validated = true
|
@@ -408,6 +437,10 @@ module Puppet::Modulebuilder
|
|
408
437
|
FileUtils.mkdir_p(dir, **options)
|
409
438
|
end
|
410
439
|
|
440
|
+
def fileutils_touch(list, **options)
|
441
|
+
FileUtils.touch(list, **options)
|
442
|
+
end
|
443
|
+
|
411
444
|
def file_stat(*args)
|
412
445
|
File.stat(*args)
|
413
446
|
end
|
@@ -9,11 +9,11 @@ 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.
|
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'
|
16
|
-
spec.metadata['changelog_uri'] = 'https://github.com/puppetlabs/puppet-modulebuilder/blob/
|
16
|
+
spec.metadata['changelog_uri'] = 'https://github.com/puppetlabs/puppet-modulebuilder/blob/main/CHANGELOG.md'
|
17
17
|
|
18
18
|
# Specify which files should be added to the gem when it is released.
|
19
19
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
@@ -24,6 +24,8 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
25
25
|
spec.require_paths = ['lib']
|
26
26
|
# minitar and pathspec is required for building Puppet modules
|
27
|
-
spec.add_runtime_dependency 'minitar', '~> 0.
|
28
|
-
spec.add_runtime_dependency 'pathspec', '
|
27
|
+
spec.add_runtime_dependency 'minitar', '~> 0.9'
|
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.
|
4
|
+
version: 1.0.0.rc.1
|
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:
|
12
|
+
date: 2023-04-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitar
|
@@ -17,28 +17,34 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '0.
|
20
|
+
version: '0.9'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '0.
|
27
|
+
version: '0.9'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: pathspec
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: 0.2.1
|
35
|
+
- - "<"
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 2.0.0
|
35
38
|
type: :runtime
|
36
39
|
prerelease: false
|
37
40
|
version_requirements: !ruby/object:Gem::Requirement
|
38
41
|
requirements:
|
39
|
-
- - "
|
42
|
+
- - ">="
|
40
43
|
- !ruby/object:Gem::Version
|
41
44
|
version: 0.2.1
|
45
|
+
- - "<"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 2.0.0
|
42
48
|
description:
|
43
49
|
email:
|
44
50
|
- sheena@puppet.com
|
@@ -47,28 +53,33 @@ executables: []
|
|
47
53
|
extensions: []
|
48
54
|
extra_rdoc_files: []
|
49
55
|
files:
|
50
|
-
- ".github/
|
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"
|
51
62
|
- ".gitignore"
|
52
63
|
- ".rspec"
|
53
64
|
- ".rubocop.yml"
|
54
|
-
- ".
|
65
|
+
- ".rubocop_todo.yml"
|
55
66
|
- CHANGELOG.md
|
67
|
+
- CODEOWNERS
|
56
68
|
- Gemfile
|
57
|
-
- HISTORY.md
|
58
69
|
- LICENSE
|
59
70
|
- README.md
|
60
71
|
- Rakefile
|
61
|
-
- appveyor.yml
|
62
72
|
- lib/puppet/modulebuilder.rb
|
63
73
|
- lib/puppet/modulebuilder/builder.rb
|
64
74
|
- lib/puppet/modulebuilder/version.rb
|
65
75
|
- puppet-modulebuilder.gemspec
|
66
76
|
homepage: https://github.com/puppetlabs/puppet-modulebuilder
|
67
|
-
licenses:
|
77
|
+
licenses:
|
78
|
+
- Apache-2.0
|
68
79
|
metadata:
|
69
80
|
homepage_uri: https://github.com/puppetlabs/puppet-modulebuilder
|
70
81
|
source_code_uri: https://github.com/puppetlabs/puppet-modulebuilder
|
71
|
-
changelog_uri: https://github.com/puppetlabs/puppet-modulebuilder/blob/
|
82
|
+
changelog_uri: https://github.com/puppetlabs/puppet-modulebuilder/blob/main/CHANGELOG.md
|
72
83
|
post_install_message:
|
73
84
|
rdoc_options: []
|
74
85
|
require_paths:
|
@@ -77,14 +88,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
77
88
|
requirements:
|
78
89
|
- - ">="
|
79
90
|
- !ruby/object:Gem::Version
|
80
|
-
version: 2.
|
91
|
+
version: 2.7.0
|
81
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
93
|
requirements:
|
83
|
-
- - "
|
94
|
+
- - ">"
|
84
95
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
96
|
+
version: 1.3.1
|
86
97
|
requirements: []
|
87
|
-
rubygems_version: 3.1.
|
98
|
+
rubygems_version: 3.1.6
|
88
99
|
signing_key:
|
89
100
|
specification_version: 4
|
90
101
|
summary: A gem to set up puppet-modulebuilder
|
data/.github/CODEOWNERS
DELETED
data/.travis.yml
DELETED
@@ -1,17 +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.7
|
11
|
-
before_install: gem install bundler -v 2.1.4
|
12
|
-
- rvm: 2.4.9
|
13
|
-
before_install: gem install bundler -v 2.1.4
|
14
|
-
- rvm: 2.1.9
|
15
|
-
script: "bundle exec rake spec # don't try to run rubocop on ancient ruby"
|
16
|
-
env:
|
17
|
-
- SIMPLECOV=no
|
data/HISTORY.md
DELETED
data/appveyor.yml
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
---
|
2
|
-
install:
|
3
|
-
- set PATH=C:\Ruby25-x64\bin;%PATH%
|
4
|
-
- set SIMPLECOV=yes
|
5
|
-
- gem install bundler -v 2.1.4
|
6
|
-
- bundle -v
|
7
|
-
- bundle install --retry 2
|
8
|
-
|
9
|
-
build: off
|
10
|
-
|
11
|
-
branches:
|
12
|
-
only:
|
13
|
-
- master
|
14
|
-
|
15
|
-
before_test:
|
16
|
-
- bundle env
|
17
|
-
- type Gemfile.lock
|
18
|
-
|
19
|
-
test_script:
|
20
|
-
- bundle exec rake
|
21
|
-
|
22
|
-
# Uncomment this block to enable RDP access to the AppVeyor test instance for
|
23
|
-
# debugging purposes.
|
24
|
-
# on_finish:
|
25
|
-
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|