pdk 2.0.0 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +52 -1
- data/lib/pdk/cli/env.rb +52 -0
- data/lib/pdk/cli/exec/command.rb +11 -1
- data/lib/pdk/cli/release.rb +3 -1
- data/lib/pdk/cli.rb +1 -0
- data/lib/pdk/config/yaml.rb +5 -1
- data/lib/pdk/config.rb +6 -0
- data/lib/pdk/module/release.rb +6 -0
- data/lib/pdk/util/changelog_generator.rb +13 -0
- data/lib/pdk/util/json_finder.rb +1 -0
- data/lib/pdk/validate/invokable_validator.rb +8 -0
- data/lib/pdk/version.rb +2 -2
- metadata +21 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7108ed8889a1ee93bf944b2a35cc1bd527fee723ab8466126e293d621bb033d9
|
4
|
+
data.tar.gz: d823aa9385c7f1d0daf86f31a8f338706562aa1df67fe049fa9e393f609d046d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a65547c79720dfb12c74c7392844d06dc2e094e97c1812459aa8e055ffb865fea41c6304286dae180600f7182a62b96b7ae1ec295d62e6f09fbb7b3872992c7
|
7
|
+
data.tar.gz: 6b3fc743d50509f50e672f397f9de2e27c62c6807870f2daa4f21c4ea88536934adf2dadcac10cd83c9aa9348d49434a239602f9917e6b957479241ab00d5e1e
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,58 @@ All changes to this repo will be documented in this file.
|
|
4
4
|
See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) for a high-level summary.
|
5
5
|
|
6
6
|
|
7
|
+
## [v2.3.0](https://github.com/puppetlabs/pdk/tree/v2.3.0) (2021-10-21)
|
8
|
+
|
9
|
+
[Full Changelog](https://github.com/puppetlabs/pdk/compare/v2.2.0...v2.3.0)
|
10
|
+
|
11
|
+
**Merged pull requests:**
|
12
|
+
|
13
|
+
- Account for Psych API changes [\#1147](https://github.com/puppetlabs/pdk/pull/1147) ([binford2k](https://github.com/binford2k))
|
14
|
+
|
15
|
+
## [v2.2.0](https://github.com/puppetlabs/pdk/tree/v2.2.0) (2021-08-02)
|
16
|
+
|
17
|
+
[Full Changelog](https://github.com/puppetlabs/pdk/compare/v2.1.1...v2.2.0)
|
18
|
+
|
19
|
+
**Implemented enhancements:**
|
20
|
+
|
21
|
+
- \(GH-1118\) Add ability to skip validating files [\#1114](https://github.com/puppetlabs/pdk/pull/1114) ([jpogran](https://github.com/jpogran))
|
22
|
+
|
23
|
+
**Fixed bugs:**
|
24
|
+
|
25
|
+
- \(GH-1113\) \(GH-917\) Fix forge-token handling [\#1121](https://github.com/puppetlabs/pdk/pull/1121) ([sanfrancrisko](https://github.com/sanfrancrisko))
|
26
|
+
|
27
|
+
**Merged pull requests:**
|
28
|
+
|
29
|
+
- \(PDK-1729\) version to 2.2.0.pre2 [\#1106](https://github.com/puppetlabs/pdk/pull/1106) ([da-ar](https://github.com/da-ar))
|
30
|
+
|
31
|
+
## [v2.1.1](https://github.com/puppetlabs/pdk/tree/v2.1.1) (2021-06-22)
|
32
|
+
|
33
|
+
[Full Changelog](https://github.com/puppetlabs/pdk/compare/v2.1.0...v2.1.1)
|
34
|
+
|
35
|
+
**Fixed bugs:**
|
36
|
+
|
37
|
+
- \(PDK-1085\) Fail gracefully when no unit tests available [\#1096](https://github.com/puppetlabs/pdk/pull/1096) ([sanfrancrisko](https://github.com/sanfrancrisko))
|
38
|
+
- \(GH-1090\) Verify the changelog top most version matches the metadata version [\#1088](https://github.com/puppetlabs/pdk/pull/1088) ([carabasdaniel](https://github.com/carabasdaniel))
|
39
|
+
- \(GH-1083\) Bump childprocess to '~\> 4.0.0'; Disable @process.leader [\#1084](https://github.com/puppetlabs/pdk/pull/1084) ([sanfrancrisko](https://github.com/sanfrancrisko))
|
40
|
+
|
41
|
+
**Merged pull requests:**
|
42
|
+
|
43
|
+
- \(PDK-1041\) Use diff-lcs 1.4.4 [\#1091](https://github.com/puppetlabs/pdk/pull/1091) ([da-ar](https://github.com/da-ar))
|
44
|
+
- Update CODEOWNERS [\#1082](https://github.com/puppetlabs/pdk/pull/1082) ([jpogran](https://github.com/jpogran))
|
45
|
+
|
46
|
+
## [v2.1.0](https://github.com/puppetlabs/pdk/tree/v2.1.0) (2021-04-06)
|
47
|
+
|
48
|
+
[Full Changelog](https://github.com/puppetlabs/pdk/compare/v2.0.0...v2.1.0)
|
49
|
+
|
50
|
+
**Merged pull requests:**
|
51
|
+
|
52
|
+
- \(maint\) Mark stale issues [\#1028](https://github.com/puppetlabs/pdk/pull/1028) ([jpogran](https://github.com/jpogran))
|
53
|
+
- \(PF-2332\) Add `pdk env` subcommand [\#957](https://github.com/puppetlabs/pdk/pull/957) ([nkanderson](https://github.com/nkanderson))
|
54
|
+
- Docs: Install on macOS with brew [\#954](https://github.com/puppetlabs/pdk/pull/954) ([rwaffen](https://github.com/rwaffen))
|
55
|
+
- \(MAINT\) Bump version to 2.1.0.pre [\#952](https://github.com/puppetlabs/pdk/pull/952) ([scotje](https://github.com/scotje))
|
56
|
+
- \(MAINT\) Fixup some superfluous entries in the 2.0.0 release notes [\#951](https://github.com/puppetlabs/pdk/pull/951) ([scotje](https://github.com/scotje))
|
57
|
+
- \(Docs\) Update version number in welcome page [\#950](https://github.com/puppetlabs/pdk/pull/950) ([hestonhoffman](https://github.com/hestonhoffman))
|
58
|
+
- \(Docs\) Release notes edits [\#949](https://github.com/puppetlabs/pdk/pull/949) ([hestonhoffman](https://github.com/hestonhoffman))
|
7
59
|
## [v2.0.0](https://github.com/puppetlabs/pdk/tree/v2.0.0) (2021-02-24)
|
8
60
|
|
9
61
|
[Full Changelog](https://github.com/puppetlabs/pdk/compare/v1.18.1...v2.0.0)
|
@@ -58,7 +110,6 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
|
|
58
110
|
- Warning from libhoney when running unit test with PDK 1.17 [\#875](https://github.com/puppetlabs/pdk/issues/875)
|
59
111
|
- 'pdk convert' of a module that's inside a control repo adds boilerplate to the control repo [\#874](https://github.com/puppetlabs/pdk/issues/874)
|
60
112
|
- GemNotFound error for public\_suffix-3.1.1 when using --add-tests [\#869](https://github.com/puppetlabs/pdk/issues/869)
|
61
|
-
- Scrollback of failed rspec tests in VS code is extremely limited [\#829](https://github.com/puppetlabs/pdk/issues/829)
|
62
113
|
- Running individual rspec tests on Windows requires escaping the path [\#828](https://github.com/puppetlabs/pdk/issues/828)
|
63
114
|
- Generated descriptions for certain test comparisons break JUnit output [\#821](https://github.com/puppetlabs/pdk/issues/821)
|
64
115
|
- Fix PDK release command module validation [\#880](https://github.com/puppetlabs/pdk/pull/880) ([carabasdaniel](https://github.com/carabasdaniel))
|
data/lib/pdk/cli/env.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
module PDK::CLI
|
2
|
+
@env_cmd = @base_cmd.define_command do
|
3
|
+
name 'env'
|
4
|
+
usage _('env')
|
5
|
+
summary _('(Experimental) Output environment variables for specific Puppet context')
|
6
|
+
description _(<<-EOF
|
7
|
+
[experimental] Aids in setting a CLI context for a specified version of Puppet by outputting export commands for necessary environment variables.
|
8
|
+
EOF
|
9
|
+
)
|
10
|
+
|
11
|
+
PDK::CLI.puppet_version_options(self)
|
12
|
+
PDK::CLI.puppet_dev_option(self)
|
13
|
+
|
14
|
+
run do |opts, _args, _cmd|
|
15
|
+
require 'pdk/util'
|
16
|
+
require 'pdk/util/ruby_version'
|
17
|
+
|
18
|
+
PDK::CLI::Util.validate_puppet_version_opts(opts)
|
19
|
+
|
20
|
+
PDK::CLI::Util.analytics_screen_view('env')
|
21
|
+
|
22
|
+
# Ensure that the correct Ruby is activated before running command.
|
23
|
+
puppet_env = PDK::CLI::Util.puppet_from_opts_or_env(opts)
|
24
|
+
PDK::Util::RubyVersion.use(puppet_env[:ruby_version])
|
25
|
+
|
26
|
+
resolved_env = {
|
27
|
+
'PDK_RESOLVED_PUPPET_VERSION' => puppet_env[:gemset][:puppet],
|
28
|
+
'PDK_RESOLVED_RUBY_VERSION' => puppet_env[:ruby_version],
|
29
|
+
}
|
30
|
+
|
31
|
+
resolved_env['GEM_HOME'] = PDK::Util::RubyVersion.gem_home
|
32
|
+
gem_path = PDK::Util::RubyVersion.gem_path
|
33
|
+
resolved_env['GEM_PATH'] = gem_path.empty? ? resolved_env['GEM_HOME'] : gem_path
|
34
|
+
|
35
|
+
# Make sure invocation of Ruby prefers our private installation.
|
36
|
+
package_binpath = PDK::Util.package_install? ? File.join(PDK::Util.pdk_package_basedir, 'bin') : nil
|
37
|
+
|
38
|
+
resolved_env['PATH'] = [
|
39
|
+
PDK::Util::RubyVersion.bin_path,
|
40
|
+
File.join(resolved_env['GEM_HOME'], 'bin'),
|
41
|
+
PDK::Util::RubyVersion.gem_paths_raw.map { |gem_path_raw| File.join(gem_path_raw, 'bin') },
|
42
|
+
package_binpath,
|
43
|
+
PDK::Util::Env['PATH'],
|
44
|
+
].compact.flatten.join(File::PATH_SEPARATOR)
|
45
|
+
|
46
|
+
resolved_env.each do |var, val|
|
47
|
+
puts "export #{var}=\"#{val}\""
|
48
|
+
end
|
49
|
+
exit 0
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/lib/pdk/cli/exec/command.rb
CHANGED
@@ -27,7 +27,17 @@ module PDK
|
|
27
27
|
@argv = argv
|
28
28
|
|
29
29
|
@process = ChildProcess.build(*@argv)
|
30
|
-
|
30
|
+
# https://github.com/puppetlabs/pdk/issues/1083:
|
31
|
+
# When @process.leader is set, childprocess will set the CREATE_BREAKAWAY_FROM_JOB
|
32
|
+
# and JOB_OBJECT_LIMIT_BREAKAWAY_OK flags in the Win32 API calls. This will cause
|
33
|
+
# issues on systems > Windows 7 / Server 2008, if the JOB_OBJECT_LIMIT_BREAKAWAY_OK
|
34
|
+
# flag is set and the Task Scheduler is trying to kick off a job, it can sometimes
|
35
|
+
# result in ACCESS_DENIED being returned by the Win32 API, depending on the permission
|
36
|
+
# levels / user account this user.
|
37
|
+
# The resolution for pdk/issues/1083 is to ensure @process.leader is not set.
|
38
|
+
# This will potentially cause issues on older Windows systems, in which case we may
|
39
|
+
# need to revisit and conditionally set this param depending on what OS we're on
|
40
|
+
# @process.leader = true
|
31
41
|
|
32
42
|
@stdout = Tempfile.new('stdout', mode: TEMPFILE_MODE).tap { |io| io.sync = true }
|
33
43
|
@stderr = Tempfile.new('stderr', mode: TEMPFILE_MODE).tap { |io| io.sync = true }
|
data/lib/pdk/cli/release.rb
CHANGED
@@ -22,7 +22,8 @@ module PDK::CLI
|
|
22
22
|
option nil, :'forge-upload-url', _('Set forge upload url path.'),
|
23
23
|
argument: :required, default: 'https://forgeapi.puppetlabs.com/v3/releases'
|
24
24
|
|
25
|
-
option nil, :'forge-token', _('Set Forge API token.'),
|
25
|
+
option nil, :'forge-token', _('Set Forge API token.'),
|
26
|
+
argument: :optional
|
26
27
|
|
27
28
|
option nil, :version, _('Update the module to the specified version prior to release. When not specified, the new version will be computed from the Changelog where possible.'),
|
28
29
|
argument: :required
|
@@ -145,6 +146,7 @@ module PDK::CLI
|
|
145
146
|
opts[:'skip-changelog'] = !answers['changelog']
|
146
147
|
opts[:'skip-dependency'] = !answers['dependency']
|
147
148
|
opts[:'skip-documentation'] = !answers['documentation']
|
149
|
+
opts[:'skip-publish'] = !answers['publish']
|
148
150
|
|
149
151
|
prepare_version_interview(prompt, opts) if answers['setversion']
|
150
152
|
|
data/lib/pdk/cli.rb
CHANGED
data/lib/pdk/config/yaml.rb
CHANGED
@@ -13,7 +13,11 @@ module PDK
|
|
13
13
|
|
14
14
|
require 'yaml'
|
15
15
|
|
16
|
-
data = ::
|
16
|
+
data = if Gem::Version.new(Psych::VERSION) >= Gem::Version.new('3.1.0.pre1')
|
17
|
+
::YAML.safe_load(data, permitted_classes: [Symbol], permitted_symbols: [], aliases: true)
|
18
|
+
else
|
19
|
+
::YAML.safe_load(data, [Symbol], [], true)
|
20
|
+
end
|
17
21
|
return if data.nil?
|
18
22
|
|
19
23
|
data.each { |k, v| yield k, PDK::Config::Setting.new(k, self, v) }
|
data/lib/pdk/config.rb
CHANGED
@@ -94,6 +94,12 @@ module PDK
|
|
94
94
|
if context.is_a?(PDK::Context::ControlRepo)
|
95
95
|
mount :environment, PDK::ControlRepo.environment_conf_as_config(File.join(context.root_path, 'environment.conf'))
|
96
96
|
end
|
97
|
+
|
98
|
+
mount :validate, PDK::Config::YAML.new('validate', file: File.join(context.root_path, 'pdk.yaml'), persistent_defaults: true) do
|
99
|
+
setting 'ignore' do
|
100
|
+
default_to { [] }
|
101
|
+
end
|
102
|
+
end
|
97
103
|
end
|
98
104
|
end
|
99
105
|
|
data/lib/pdk/module/release.rb
CHANGED
@@ -65,6 +65,12 @@ module PDK
|
|
65
65
|
|
66
66
|
# Update the changelog with the correct version
|
67
67
|
PDK::Util::ChangelogGenerator.generate_changelog unless skip_changelog?
|
68
|
+
|
69
|
+
# Check if the versions match
|
70
|
+
latest_version = PDK::Util::ChangelogGenerator.latest_version
|
71
|
+
unless latest_version
|
72
|
+
raise PDK::CLI::ExitWithError, _('%{new_version} does not match %{latest_version}') % { new_version: new_version, latest_version: latest_version } if new_version != latest_version
|
73
|
+
end
|
68
74
|
end
|
69
75
|
|
70
76
|
run_documentation(options) unless skip_documentation?
|
@@ -110,6 +110,19 @@ module PDK
|
|
110
110
|
version.join('.')
|
111
111
|
end
|
112
112
|
|
113
|
+
# Returns the top most version from the CHANGELOG file
|
114
|
+
def self.latest_version
|
115
|
+
latest = nil
|
116
|
+
changelog_content.each_line do |line|
|
117
|
+
line.strip!
|
118
|
+
if line.start_with?('## [')
|
119
|
+
latest = line[line.index('[') + 1..line.index(']') - 1].delete('v')
|
120
|
+
break # stops after the top version is extracted
|
121
|
+
end
|
122
|
+
end
|
123
|
+
latest
|
124
|
+
end
|
125
|
+
|
113
126
|
def self.changelog_file
|
114
127
|
# Default Changelog file is CHANGELOG.md, but also search for the .MD prefix as well.
|
115
128
|
@changelog_file ||= ['CHANGELOG.md', 'CHANGELOG.MD'].map { |file| PDK::Util::Filesystem.expand_path(file) }.find { |path| PDK::Util::Filesystem.file?(path) }
|
data/lib/pdk/util/json_finder.rb
CHANGED
@@ -213,6 +213,14 @@ module PDK
|
|
213
213
|
end
|
214
214
|
end
|
215
215
|
|
216
|
+
# block will always be [] because it is intialized in config
|
217
|
+
ignore_files = PDK.config.get_within_scopes('validate.ignore')
|
218
|
+
unless ignore_files.nil? || ignore_files.empty?
|
219
|
+
Array(ignore_files).each do |pattern|
|
220
|
+
ignore_pathspec.add(pattern)
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
216
224
|
ignore_pathspec
|
217
225
|
end
|
218
226
|
end
|
data/lib/pdk/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet, Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -36,14 +36,14 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: 0.
|
39
|
+
version: 4.0.0
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 0.
|
46
|
+
version: 4.0.0
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: cri
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -62,16 +62,22 @@ dependencies:
|
|
62
62
|
name: diff-lcs
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
|
-
- -
|
65
|
+
- - ">="
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
67
|
+
version: 1.4.4
|
68
|
+
- - "<"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '1.5'
|
68
71
|
type: :runtime
|
69
72
|
prerelease: false
|
70
73
|
version_requirements: !ruby/object:Gem::Requirement
|
71
74
|
requirements:
|
72
|
-
- -
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.4.4
|
78
|
+
- - "<"
|
73
79
|
- !ruby/object:Gem::Version
|
74
|
-
version: '1.
|
80
|
+
version: '1.5'
|
75
81
|
- !ruby/object:Gem::Dependency
|
76
82
|
name: ffi
|
77
83
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,14 +118,14 @@ dependencies:
|
|
112
118
|
requirements:
|
113
119
|
- - '='
|
114
120
|
- !ruby/object:Gem::Version
|
115
|
-
version:
|
121
|
+
version: 2.0.0
|
116
122
|
type: :runtime
|
117
123
|
prerelease: false
|
118
124
|
version_requirements: !ruby/object:Gem::Requirement
|
119
125
|
requirements:
|
120
126
|
- - '='
|
121
127
|
- !ruby/object:Gem::Version
|
122
|
-
version:
|
128
|
+
version: 2.0.0
|
123
129
|
- !ruby/object:Gem::Dependency
|
124
130
|
name: json-schema
|
125
131
|
requirement: !ruby/object:Gem::Requirement
|
@@ -306,6 +312,7 @@ files:
|
|
306
312
|
- lib/pdk/cli/config/get.rb
|
307
313
|
- lib/pdk/cli/console.rb
|
308
314
|
- lib/pdk/cli/convert.rb
|
315
|
+
- lib/pdk/cli/env.rb
|
309
316
|
- lib/pdk/cli/errors.rb
|
310
317
|
- lib/pdk/cli/exec.rb
|
311
318
|
- lib/pdk/cli/exec/command.rb
|
@@ -441,7 +448,7 @@ files:
|
|
441
448
|
homepage: https://github.com/puppetlabs/pdk
|
442
449
|
licenses: []
|
443
450
|
metadata: {}
|
444
|
-
post_install_message:
|
451
|
+
post_install_message:
|
445
452
|
rdoc_options: []
|
446
453
|
require_paths:
|
447
454
|
- lib
|
@@ -456,9 +463,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
456
463
|
- !ruby/object:Gem::Version
|
457
464
|
version: '0'
|
458
465
|
requirements: []
|
459
|
-
rubyforge_project:
|
466
|
+
rubyforge_project:
|
460
467
|
rubygems_version: 2.7.6.2
|
461
|
-
signing_key:
|
468
|
+
signing_key:
|
462
469
|
specification_version: 4
|
463
470
|
summary: A key part of the Puppet Development Kit, the shortest path to better modules
|
464
471
|
test_files: []
|