pdk 1.18.1 → 2.2.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
- SHA256:
3
- metadata.gz: 7096c03ba45a582325f9d2d466da61571697d474ae04387511d18579e886ee65
4
- data.tar.gz: 3df00dfaec659bcd94bf66970feb400990be1b84327ec9fbfd76ea0c0ddbff0b
2
+ SHA1:
3
+ metadata.gz: 8e2609c042f89068710f065fadda48fe3ae5f32b
4
+ data.tar.gz: 40acaf2ef749d5e369387bf345f2ed2cb4588078
5
5
  SHA512:
6
- metadata.gz: ec2e4ee1a30f249b481c3282eecf5af1f6bfbe8497afde98b3f2c271beac0ab0b0d92ab78129e4cf564a7b48368f3cadfd9800d1cb5fb66b36816d93dea84882
7
- data.tar.gz: 396091be92ce00e9b5816171e0782276e53de8b513ce9e50f14a1fe7b264042f2d4149182ba37cd7b7adaef7bb941ae395ffe703c721bd05f1fbdf778dd1f841
6
+ metadata.gz: 774972368cefed1e1100d3ddd3804e216cbf13fbebd5b8af63c93862972e4d2339336aa5e0b48ea7ee7b09dd176eb98f2355dc0fc7b270ac92e0e8a1c6eac271
7
+ data.tar.gz: e966d37fdcf70b2a90227e3e5eebfc6a611950db8da230930a309f5d57a1a3407c4ee1fb23d1c322c7aaa7b57eaa392b48538ad48991b6de5a8a9e7e2e7550ec
data/CHANGELOG.md CHANGED
@@ -3,8 +3,76 @@
3
3
  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
+ ## [v2.2.0](https://github.com/puppetlabs/pdk/tree/v2.2.0) (2021-08-02)
6
7
 
7
- ## [v1.18.1](https://github.com/puppetlabs/pdk/tree/v1.18.1) (2020-07-16)
8
+ [Full Changelog](https://github.com/puppetlabs/pdk/compare/v2.1.1...v2.2.0)
9
+
10
+ **Implemented enhancements:**
11
+
12
+ - \(GH-1118\) Add ability to skip validating files [\#1114](https://github.com/puppetlabs/pdk/pull/1114) ([jpogran](https://github.com/jpogran))
13
+
14
+ **Fixed bugs:**
15
+
16
+ - \(GH-1113\) \(GH-917\) Fix forge-token handling [\#1121](https://github.com/puppetlabs/pdk/pull/1121) ([sanfrancrisko](https://github.com/sanfrancrisko))
17
+
18
+ ## [v2.1.1](https://github.com/puppetlabs/pdk/tree/v2.1.1) (2021-06-22)
19
+
20
+ [Full Changelog](https://github.com/puppetlabs/pdk/compare/v2.1.0...v2.1.1)
21
+
22
+ **Fixed bugs:**
23
+
24
+ - \(PDK-1085\) Fail gracefully when no unit tests available [\#1096](https://github.com/puppetlabs/pdk/pull/1096) ([sanfrancrisko](https://github.com/sanfrancrisko))
25
+ - \(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))
26
+ - \(GH-1083\) Bump childprocess to '~\> 4.0.0'; Disable @process.leader [\#1084](https://github.com/puppetlabs/pdk/pull/1084) ([sanfrancrisko](https://github.com/sanfrancrisko))
27
+
28
+ **Merged pull requests:**
29
+
30
+ - \(PDK-1041\) Use diff-lcs 1.4.4 [\#1091](https://github.com/puppetlabs/pdk/pull/1091) ([da-ar](https://github.com/da-ar))
31
+ - Update CODEOWNERS [\#1082](https://github.com/puppetlabs/pdk/pull/1082) ([jpogran](https://github.com/jpogran))
32
+
33
+ ## [v2.1.0](https://github.com/puppetlabs/pdk/tree/v2.1.0) (2021-04-06)
34
+
35
+ [Full Changelog](https://github.com/puppetlabs/pdk/compare/v2.0.0...v2.1.0)
36
+
37
+ **Merged pull requests:**
38
+
39
+ - \(maint\) Mark stale issues [\#1028](https://github.com/puppetlabs/pdk/pull/1028) ([jpogran](https://github.com/jpogran))
40
+ - \(PF-2332\) Add `pdk env` subcommand [\#957](https://github.com/puppetlabs/pdk/pull/957) ([nkanderson](https://github.com/nkanderson))
41
+ - Docs: Install on macOS with brew [\#954](https://github.com/puppetlabs/pdk/pull/954) ([rwaffen](https://github.com/rwaffen))
42
+ - \(MAINT\) Bump version to 2.1.0.pre [\#952](https://github.com/puppetlabs/pdk/pull/952) ([scotje](https://github.com/scotje))
43
+ - \(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))
44
+ - \(Docs\) Update version number in welcome page [\#950](https://github.com/puppetlabs/pdk/pull/950) ([hestonhoffman](https://github.com/hestonhoffman))
45
+ - \(Docs\) Release notes edits [\#949](https://github.com/puppetlabs/pdk/pull/949) ([hestonhoffman](https://github.com/hestonhoffman))
46
+ ## [v2.0.0](https://github.com/puppetlabs/pdk/tree/v2.0.0) (2021-02-24)
47
+
48
+ [Full Changelog](https://github.com/puppetlabs/pdk/compare/v1.18.1...v2.0.0)
49
+
50
+ **Implemented enhancements:**
51
+
52
+ - Provide more context when forge upload fails [\#905](https://github.com/puppetlabs/pdk/issues/905)
53
+ - \(IAC-1438\) - Removal of Inappropriate Terminology [\#945](https://github.com/puppetlabs/pdk/pull/945) ([david22swan](https://github.com/david22swan))
54
+ - Remove pre-condition checks for RSAPI objects [\#943](https://github.com/puppetlabs/pdk/pull/943) ([DavidS](https://github.com/DavidS))
55
+ - Update lower puppet requirements bound when creating new modules [\#942](https://github.com/puppetlabs/pdk/pull/942) ([DavidS](https://github.com/DavidS))
56
+ - Allow Facter4 to be co-installed with PDK [\#941](https://github.com/puppetlabs/pdk/pull/941) ([GabrielNagy](https://github.com/GabrielNagy))
57
+ - Add ability to generate functions [\#932](https://github.com/puppetlabs/pdk/pull/932) ([logicminds](https://github.com/logicminds))
58
+ - \(GH-905\) Ensure release failure includes error message [\#929](https://github.com/puppetlabs/pdk/pull/929) ([michaeltlombardi](https://github.com/michaeltlombardi))
59
+ - Adds AIX support when creating a new module [\#927](https://github.com/puppetlabs/pdk/pull/927) ([logicminds](https://github.com/logicminds))
60
+ - Add ability to generate new facts [\#921](https://github.com/puppetlabs/pdk/pull/921) ([logicminds](https://github.com/logicminds))
61
+ - Add forge token env [\#913](https://github.com/puppetlabs/pdk/pull/913) ([scotje](https://github.com/scotje))
62
+ - \(FORGE-339\) Omit .DS\_Store files from module builds [\#910](https://github.com/puppetlabs/pdk/pull/910) ([binford2k](https://github.com/binford2k))
63
+ - \(\#876\) Refactor text report output when validators are skipped [\#904](https://github.com/puppetlabs/pdk/pull/904) ([scotje](https://github.com/scotje))
64
+
65
+ **Fixed bugs:**
66
+
67
+ - puppet 7 dependency problems [\#931](https://github.com/puppetlabs/pdk/issues/931)
68
+ - PDK download fails with 404 for macOS [\#928](https://github.com/puppetlabs/pdk/issues/928)
69
+ - PDK does not support ruby 2.7 [\#914](https://github.com/puppetlabs/pdk/issues/914)
70
+ - The `pdk release prep` command cannot find the github\_changelog\_generator gem [\#902](https://github.com/puppetlabs/pdk/issues/902)
71
+ - \(PDK-1655\) pdk test unit fails when compiling spec tests on puppet 6.17 due to removal of default\_env [\#890](https://github.com/puppetlabs/pdk/issues/890)
72
+ - Unit tests fail with can't modify frozen String \(RuntimeError\) [\#886](https://github.com/puppetlabs/pdk/issues/886)
73
+ - `pdk validate` is missing a newline at the end, resulting in the shell prompt being printed on the same line [\#876](https://github.com/puppetlabs/pdk/issues/876)
74
+
75
+ ## [v1.18.1](https://github.com/puppetlabs/pdk/tree/v1.18.1) (2020-07-17)
8
76
 
9
77
  [Full Changelog](https://github.com/puppetlabs/pdk/compare/v1.18.0...v1.18.1)
10
78
 
@@ -29,7 +97,6 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
29
97
  - Warning from libhoney when running unit test with PDK 1.17 [\#875](https://github.com/puppetlabs/pdk/issues/875)
30
98
  - '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)
31
99
  - GemNotFound error for public\_suffix-3.1.1 when using --add-tests [\#869](https://github.com/puppetlabs/pdk/issues/869)
32
- - Scrollback of failed rspec tests in VS code is extremely limited [\#829](https://github.com/puppetlabs/pdk/issues/829)
33
100
  - Running individual rspec tests on Windows requires escaping the path [\#828](https://github.com/puppetlabs/pdk/issues/828)
34
101
  - Generated descriptions for certain test comparisons break JUnit output [\#821](https://github.com/puppetlabs/pdk/issues/821)
35
102
  - Fix PDK release command module validation [\#880](https://github.com/puppetlabs/pdk/pull/880) ([carabasdaniel](https://github.com/carabasdaniel))
@@ -54,6 +121,7 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
54
121
  - \(PDK-1615\) Add Ini File configuration support [\#856](https://github.com/puppetlabs/pdk/pull/856) ([glennsarti](https://github.com/glennsarti))
55
122
  - \(PDK-1612\) Add PDK::Context and context detection [\#853](https://github.com/puppetlabs/pdk/pull/853) ([glennsarti](https://github.com/glennsarti))
56
123
  - \(PDK-1607\)\(PDK-1608\) Implement system-level settings for PDK configuration [\#841](https://github.com/puppetlabs/pdk/pull/841) ([glennsarti](https://github.com/glennsarti))
124
+ - \(PDK-1557\) Detect Control Repositories [\#826](https://github.com/puppetlabs/pdk/pull/826) ([glennsarti](https://github.com/glennsarti))
57
125
 
58
126
  **Fixed bugs:**
59
127
 
@@ -77,8 +145,8 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
77
145
  - \(PDK-1545\) Include template-ref in module generation output [\#840](https://github.com/puppetlabs/pdk/pull/840) ([rodjek](https://github.com/rodjek))
78
146
  - \(PDK-1587\) Reject paths with non-ASCII characters when building [\#832](https://github.com/puppetlabs/pdk/pull/832) ([rodjek](https://github.com/rodjek))
79
147
  - \(PDK-1588\) Increase granularity of `pdk bundle` analytics [\#827](https://github.com/puppetlabs/pdk/pull/827) ([rodjek](https://github.com/rodjek))
80
- - \(PDK-1557\) Detect Control Repositories [\#826](https://github.com/puppetlabs/pdk/pull/826) ([glennsarti](https://github.com/glennsarti))
81
148
  - \(PDK-1556\) Use the module root when generating objects [\#824](https://github.com/puppetlabs/pdk/pull/824) ([glennsarti](https://github.com/glennsarti))
149
+ - \(PDK-1487\) Add --default-template flag to pdk convert [\#814](https://github.com/puppetlabs/pdk/pull/814) ([rodjek](https://github.com/rodjek))
82
150
 
83
151
  **Fixed bugs:**
84
152
 
@@ -100,7 +168,6 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
100
168
  **Implemented enhancements:**
101
169
 
102
170
  - \(PDK-1488\) Inform user if updating a pinned module [\#816](https://github.com/puppetlabs/pdk/pull/816) ([rodjek](https://github.com/rodjek))
103
- - \(PDK-1487\) Add --default-template flag to pdk convert [\#814](https://github.com/puppetlabs/pdk/pull/814) ([rodjek](https://github.com/rodjek))
104
171
  - \(GH-808\) Implement pdk release prep and publish subcommands [\#813](https://github.com/puppetlabs/pdk/pull/813) ([glennsarti](https://github.com/glennsarti))
105
172
  - \(GH-808\) Implement pdk release subcommand [\#809](https://github.com/puppetlabs/pdk/pull/809) ([glennsarti](https://github.com/glennsarti))
106
173
  - \(PDK-1364\) Allow non-git template directories to be used [\#803](https://github.com/puppetlabs/pdk/pull/803) ([glennsarti](https://github.com/glennsarti))
@@ -244,7 +311,6 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
244
311
  - \(maint\) Update beaker in package tests [\#695](https://github.com/puppetlabs/pdk/pull/695) ([rodjek](https://github.com/rodjek))
245
312
  - Revert "Merge pull request \#666 from DavidS/fm-8081-pdk-new-transport" [\#693](https://github.com/puppetlabs/pdk/pull/693) ([DavidS](https://github.com/DavidS))
246
313
  - \(maint\) Message and string fixes [\#676](https://github.com/puppetlabs/pdk/pull/676) ([DavidS](https://github.com/DavidS))
247
- - \(PDK-1333\) command\_spec rake task [\#644](https://github.com/puppetlabs/pdk/pull/644) ([rodjek](https://github.com/rodjek))
248
314
 
249
315
  ## [v1.11.1](https://github.com/puppetlabs/pdk/tree/v1.11.1) (2019-07-01)
250
316
 
@@ -309,7 +375,7 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
309
375
  - \(PDK-1335\) Add development note when on Windows [\#649](https://github.com/puppetlabs/pdk/pull/649) ([glennsarti](https://github.com/glennsarti))
310
376
  - \(maint\) Allow developers to add additional gems [\#648](https://github.com/puppetlabs/pdk/pull/648) ([glennsarti](https://github.com/glennsarti))
311
377
  - \(PDK-1167\) Validator should honor case sensitive of the file system [\#646](https://github.com/puppetlabs/pdk/pull/646) ([glennsarti](https://github.com/glennsarti))
312
- - \(PDK-1193\) Saves packaged template-url in metadata as a keyword [\#639](https://github.com/puppetlabs/pdk/pull/639) ([bmjen](https://github.com/bmjen))
378
+ - \(PDK-1333\) command\_spec rake task [\#644](https://github.com/puppetlabs/pdk/pull/644) ([rodjek](https://github.com/rodjek))
313
379
 
314
380
  ## [v1.10.0](https://github.com/puppetlabs/pdk/tree/v1.10.0) (2019-04-02)
315
381
 
@@ -321,6 +387,10 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
321
387
  - \(PDK-1308\) Ensure PDK-written non-templated files have trailing newline [\#640](https://github.com/puppetlabs/pdk/pull/640) ([scotje](https://github.com/scotje))
322
388
  - \(PDK-718\) Add --template-ref argument for upstream template repo tags [\#434](https://github.com/puppetlabs/pdk/pull/434) ([hunner](https://github.com/hunner))
323
389
 
390
+ **Fixed bugs:**
391
+
392
+ - \(PDK-1266\) Clear modulepath value when validating manifest syntax [\#629](https://github.com/puppetlabs/pdk/pull/629) ([rodjek](https://github.com/rodjek))
393
+
324
394
  **Closed issues:**
325
395
 
326
396
  - `pdk update` is not idempotent for deletion of CI config files [\#593](https://github.com/puppetlabs/pdk/issues/593)
@@ -333,6 +403,7 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
333
403
  - \(PDK-1324\) Release 1.10.0 [\#650](https://github.com/puppetlabs/pdk/pull/650) ([rodjek](https://github.com/rodjek))
334
404
  - \(maint\) Fix package specs for template-ref changes [\#647](https://github.com/puppetlabs/pdk/pull/647) ([rodjek](https://github.com/rodjek))
335
405
  - \(maint\) Enforce LF line endings in Rubocop [\#645](https://github.com/puppetlabs/pdk/pull/645) ([glennsarti](https://github.com/glennsarti))
406
+ - \(PDK-1193\) Saves packaged template-url in metadata as a keyword [\#639](https://github.com/puppetlabs/pdk/pull/639) ([bmjen](https://github.com/bmjen))
336
407
  - \(FM-7579, PDK-1236\) bump the version of CRI used [\#638](https://github.com/puppetlabs/pdk/pull/638) ([tphoney](https://github.com/tphoney))
337
408
  - \(PDK-1294\) Update version post-release [\#637](https://github.com/puppetlabs/pdk/pull/637) ([bmjen](https://github.com/bmjen))
338
409
  - \(PDK-1298\) acceptance:local test suite optimisation [\#633](https://github.com/puppetlabs/pdk/pull/633) ([rodjek](https://github.com/rodjek))
@@ -344,16 +415,15 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
344
415
  **Fixed bugs:**
345
416
 
346
417
  - \(IMAGES-1037\) Make sure our paths are used [\#630](https://github.com/puppetlabs/pdk/pull/630) ([mihaibuzgau](https://github.com/mihaibuzgau))
347
- - \(PDK-1266\) Clear modulepath value when validating manifest syntax [\#629](https://github.com/puppetlabs/pdk/pull/629) ([rodjek](https://github.com/rodjek))
348
- - \(PDK-1272\) Convert user/module module names to user-module [\#626](https://github.com/puppetlabs/pdk/pull/626) ([rodjek](https://github.com/rodjek))
349
418
  - \(PDK-1276\) Skip non-file YAML validator targets [\#625](https://github.com/puppetlabs/pdk/pull/625) ([rodjek](https://github.com/rodjek))
350
- - \(PDK-1273\) Whitelist Ruby symbols in YAML validator [\#624](https://github.com/puppetlabs/pdk/pull/624) ([rodjek](https://github.com/rodjek))
419
+ - \(PDK-1273\) Allowlist Ruby symbols in YAML validator [\#624](https://github.com/puppetlabs/pdk/pull/624) ([rodjek](https://github.com/rodjek))
351
420
 
352
421
  **Merged pull requests:**
353
422
 
354
423
  - \(PDK-1289\) Release 1.9.1 [\#632](https://github.com/puppetlabs/pdk/pull/632) ([bmjen](https://github.com/bmjen))
355
424
  - \(maint\) Pin parallel gem to 1.13.0 [\#631](https://github.com/puppetlabs/pdk/pull/631) ([rodjek](https://github.com/rodjek))
356
425
  - \(PDK-1260\) Bump to 1.10.0.pre for new dev work [\#621](https://github.com/puppetlabs/pdk/pull/621) ([bmjen](https://github.com/bmjen))
426
+ - \(maint\) Fix package tests to remove hardcoding [\#613](https://github.com/puppetlabs/pdk/pull/613) ([bmjen](https://github.com/bmjen))
357
427
 
358
428
  ## [v1.9.0](https://github.com/puppetlabs/pdk/tree/v1.9.0) (2019-01-29)
359
429
 
@@ -365,6 +435,7 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
365
435
 
366
436
  **Fixed bugs:**
367
437
 
438
+ - \(PDK-1272\) Convert user/module module names to user-module [\#626](https://github.com/puppetlabs/pdk/pull/626) ([rodjek](https://github.com/rodjek))
368
439
  - \(PDK-914\) Adjust default\_template\_url validation to accept local dirs [\#606](https://github.com/puppetlabs/pdk/pull/606) ([rodjek](https://github.com/rodjek))
369
440
  - \(PDK-1204\) pdk bundle execs in the context of the pwd [\#603](https://github.com/puppetlabs/pdk/pull/603) ([rodjek](https://github.com/rodjek))
370
441
 
@@ -380,7 +451,6 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
380
451
  - \(maint\) Update hitimes pin to 1.3.0 for r2.1 compat [\#617](https://github.com/puppetlabs/pdk/pull/617) ([bmjen](https://github.com/bmjen))
381
452
  - Release 1.9.0 [\#616](https://github.com/puppetlabs/pdk/pull/616) ([bmjen](https://github.com/bmjen))
382
453
  - \(MAINT\) Configure Slack notifications for Travis [\#614](https://github.com/puppetlabs/pdk/pull/614) ([scotje](https://github.com/scotje))
383
- - \(maint\) Fix package tests to remove hardcoding [\#613](https://github.com/puppetlabs/pdk/pull/613) ([bmjen](https://github.com/bmjen))
384
454
  - \(MAINT\) Fix package acceptance tests to pass with any Ruby 2.4.x [\#611](https://github.com/puppetlabs/pdk/pull/611) ([scotje](https://github.com/scotje))
385
455
  - \(MAINT\) Bump default packaged ruby version to 2.4.5 [\#608](https://github.com/puppetlabs/pdk/pull/608) ([scotje](https://github.com/scotje))
386
456
  - \(PDK-1202\) Pass TemplateDir object through to TemplateFile [\#605](https://github.com/puppetlabs/pdk/pull/605) ([rodjek](https://github.com/rodjek))
@@ -999,6 +1069,7 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
999
1069
  - Validate fails on existing module [\#158](https://github.com/puppetlabs/pdk/issues/158)
1000
1070
  - \(\#158\) \(\#166\) Resolve issue loading bundler from gem installs [\#170](https://github.com/puppetlabs/pdk/pull/170) ([scotje](https://github.com/scotje))
1001
1071
  - \(SDK-319\) force usage of our ruby [\#168](https://github.com/puppetlabs/pdk/pull/168) ([DavidS](https://github.com/DavidS))
1072
+ - \(FIXUP\) Add missing newlines in new module interview prompts [\#161](https://github.com/puppetlabs/pdk/pull/161) ([scotje](https://github.com/scotje))
1002
1073
 
1003
1074
  **Closed issues:**
1004
1075
 
@@ -1031,7 +1102,6 @@ See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) f
1031
1102
  **Fixed bugs:**
1032
1103
 
1033
1104
  - Can't create module if new module fails to get login [\#157](https://github.com/puppetlabs/pdk/issues/157)
1034
- - \(FIXUP\) Add missing newlines in new module interview prompts [\#161](https://github.com/puppetlabs/pdk/pull/161) ([scotje](https://github.com/scotje))
1035
1105
  - Use default username when Etc.getlogin fails [\#160](https://github.com/puppetlabs/pdk/pull/160) ([austb](https://github.com/austb))
1036
1106
 
1037
1107
  **Merged pull requests:**
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # pdk [![Build Status](https://travis-ci.org/puppetlabs/pdk.svg?branch=master)](https://travis-ci.org/puppetlabs/pdk) [![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/x70e2fqllbaootpd?svg=true)](https://ci.appveyor.com/project/puppetlabs/pdk) [![Coverage Status](https://coveralls.io/repos/github/puppetlabs/pdk/badge.svg?branch=master)](https://coveralls.io/github/puppetlabs/pdk?branch=master)
1
+ # pdk [![Build Status](https://travis-ci.org/puppetlabs/pdk.svg?branch=main)](https://travis-ci.org/puppetlabs/pdk) [![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/x70e2fqllbaootpd?svg=true)](https://ci.appveyor.com/project/puppetlabs/pdk) [![Coverage Status](https://coveralls.io/repos/github/puppetlabs/pdk/badge.svg?branch=main)](https://coveralls.io/github/puppetlabs/pdk?branch=main)
2
2
 
3
3
  * [Installation](#installation)
4
4
  * [Basic usage](#basic-usage)
data/lib/pdk/cli.rb CHANGED
@@ -5,7 +5,10 @@ require 'pdk/cli/errors'
5
5
 
6
6
  module TTY
7
7
  autoload :Prompt, 'tty/prompt'
8
- autoload :TestPrompt, 'tty/test_prompt'
8
+
9
+ class Prompt
10
+ autoload :Test, 'tty/prompt/test'
11
+ end
9
12
  end
10
13
 
11
14
  class Cri::Command::CriExitException
@@ -156,6 +159,7 @@ module PDK::CLI
156
159
  require 'pdk/cli/build'
157
160
  require 'pdk/cli/config'
158
161
  require 'pdk/cli/convert'
162
+ require 'pdk/cli/env'
159
163
  require 'pdk/cli/get'
160
164
  require 'pdk/cli/new'
161
165
  require 'pdk/cli/set'
@@ -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
@@ -27,7 +27,17 @@ module PDK
27
27
  @argv = argv
28
28
 
29
29
  @process = ChildProcess.build(*@argv)
30
- @process.leader = true
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/new.rb CHANGED
@@ -17,3 +17,5 @@ require 'pdk/cli/new/provider'
17
17
  require 'pdk/cli/new/task'
18
18
  require 'pdk/cli/new/test'
19
19
  require 'pdk/cli/new/transport'
20
+ require 'pdk/cli/new/fact'
21
+ require 'pdk/cli/new/function'
@@ -0,0 +1,29 @@
1
+ module PDK::CLI
2
+ @new_fact_cmd = @new_cmd.define_command do
3
+ name 'fact'
4
+ usage _('fact [options] <name>')
5
+ summary _('Create a new custom fact named <name> using given options')
6
+
7
+ run do |opts, args, _cmd|
8
+ PDK::CLI::Util.ensure_in_module!
9
+
10
+ fact_name = args[0]
11
+
12
+ if fact_name.nil? || fact_name.empty?
13
+ puts command.help
14
+ exit 1
15
+ end
16
+
17
+ unless Util::OptionValidator.valid_fact_name?(fact_name)
18
+ raise PDK::CLI::ExitWithError, _("'%{name}' is not a valid fact name") % { name: fact_name }
19
+ end
20
+
21
+ PDK::CLI::Util.analytics_screen_view('new_fact', opts)
22
+
23
+ require 'pdk/generate/fact'
24
+
25
+ updates = PDK::Generate::Fact.new(PDK.context, fact_name, opts).run
26
+ PDK::CLI::Util::UpdateManagerPrinter.print_summary(updates, tense: :past)
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ module PDK::CLI
2
+ @new_function_cmd = @new_cmd.define_command do
3
+ name 'function'
4
+ usage _('function [options] <name>')
5
+ summary _('Create a new function named <name> using given options')
6
+ option :t, :type, _('The function type, (native or v4)'), argument: :required, default: 'native'
7
+
8
+ run do |opts, args, _cmd|
9
+ PDK::CLI::Util.ensure_in_module!
10
+
11
+ function_name = args[0]
12
+
13
+ if function_name.nil? || function_name.empty?
14
+ puts command.help
15
+ exit 1
16
+ end
17
+
18
+ unless Util::OptionValidator.valid_function_name?(function_name)
19
+ raise PDK::CLI::ExitWithError, _("'%{name}' is not a valid function name") % { name: function_name }
20
+ end
21
+
22
+ PDK::CLI::Util.analytics_screen_view('new_function', opts)
23
+
24
+ require 'pdk/generate/function'
25
+ updates = PDK::Generate::Function.new(PDK.context, function_name, opts).run
26
+ PDK::CLI::Util::UpdateManagerPrinter.print_summary(updates, tense: :past)
27
+ end
28
+ end
29
+ end
@@ -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.'), argument: :required, default: nil
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
 
@@ -11,7 +11,7 @@ module PDK::CLI
11
11
  option nil, :'forge-upload-url', _('Set forge upload url path.'),
12
12
  argument: :required, default: 'https://forgeapi.puppetlabs.com/v3/releases'
13
13
 
14
- option nil, :'forge-token', _('Set Forge API token.'), argument: :required, default: nil
14
+ option nil, :'forge-token', _('Set Forge API token (you may also set via environment variable PDK_FORGE_TOKEN)'), argument: :required
15
15
 
16
16
  run do |opts, _args, cmd|
17
17
  # Make sure build is being run in a valid module directory with a metadata.json
@@ -27,6 +27,16 @@ module PDK::CLI
27
27
  opts[:'skip-build'] = true
28
28
  opts[:'skip-versionset'] = true
29
29
  opts[:force] = true unless PDK::CLI::Util.interactive?
30
+ opts[:'forge-token'] ||= PDK::Util::Env['PDK_FORGE_TOKEN']
31
+
32
+ if opts[:'forge-token'].nil? || opts[:'forge-token'].empty?
33
+ PDK.logger.error _(
34
+ 'You must supply a Forge API token either via `--forge-token` option ' \
35
+ 'or PDK_FORGE_TOKEN environment variable.',
36
+ )
37
+
38
+ exit 1
39
+ end
30
40
 
31
41
  Release.prepare_publish_interview(TTY::Prompt.new(help_color: :cyan), opts) unless opts[:force]
32
42
 
@@ -8,6 +8,11 @@ module PDK
8
8
  (list =~ %r{^[\w\-]+(?:,[\w\-]+)+$}) ? true : false
9
9
  end
10
10
 
11
+ # @return [Boolean] true if the fact name is valid
12
+ def self.valid_fact_name?(name)
13
+ name.length > 1
14
+ end
15
+
11
16
  def self.enum(val, valid_entries, _options = {})
12
17
  vals = val.is_a?(Array) ? val : [val]
13
18
  invalid_entries = vals.reject { |e| valid_entries.include?(e) }
@@ -41,6 +46,7 @@ module PDK
41
46
 
42
47
  !(string =~ %r{\A([a-z][a-z0-9_]*)(::[a-z][a-z0-9_]*)*\Z}).nil?
43
48
  end
49
+ singleton_class.send(:alias_method, :valid_function_name?, :valid_namespace?)
44
50
 
45
51
  singleton_class.send(:alias_method, :valid_class_name?, :valid_namespace?)
46
52
  singleton_class.send(:alias_method, :valid_defined_type_name?, :valid_namespace?)
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/generate.rb CHANGED
@@ -7,7 +7,6 @@ module PDK
7
7
  autoload :Provider, 'pdk/generate/provider'
8
8
  autoload :PuppetClass, 'pdk/generate/puppet_class'
9
9
  autoload :PuppetObject, 'pdk/generate/puppet_object'
10
- autoload :ResourceAPIObject, 'pdk/generate/resource_api_object'
11
10
  autoload :Task, 'pdk/generate/task'
12
11
  autoload :Transport, 'pdk/generate/transport'
13
12
 
@@ -0,0 +1,25 @@
1
+ require 'pdk'
2
+
3
+ module PDK
4
+ module Generate
5
+ class Fact < PuppetObject
6
+ def friendly_name
7
+ 'Custom Fact'.freeze
8
+ end
9
+
10
+ def template_files
11
+ files = {
12
+ 'fact_spec.erb' => File.join('spec', 'unit', 'facter', object_name) + '_spec.rb',
13
+ }
14
+ return files if spec_only?
15
+ files.merge(
16
+ 'fact.erb' => File.join('lib', 'facter', object_name) + '.rb',
17
+ )
18
+ end
19
+
20
+ def template_data
21
+ { name: object_name }
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,48 @@
1
+ require 'pdk'
2
+
3
+ module PDK
4
+ module Generate
5
+ class Function < PuppetObject
6
+ def initialize(*_args)
7
+ super
8
+ object_name_parts = @object_name.split('::')
9
+
10
+ @object_name = if object_name_parts.first == module_name
11
+ object_name
12
+ else
13
+ [module_name, object_name].join('::')
14
+ end
15
+ end
16
+
17
+ def friendly_name
18
+ 'Function'.freeze
19
+ end
20
+
21
+ def template_files
22
+ # Calculate the function tests name
23
+ func_name_parts = object_name.split('::')
24
+ # Drop the module name if the object name contains multiple parts
25
+ func_name_parts.delete_at(0) if func_name_parts.length > 1
26
+ files = {
27
+ File.join('functions', 'function_spec.erb') => File.join('spec', 'functions', *func_name_parts) + '_spec.rb',
28
+ }
29
+ return files if spec_only?
30
+ func_name_parts = object_name.split('::')[1..-1]
31
+ template_file = File.join('functions', "#{options[:type]}_function.erb")
32
+
33
+ files[template_file] = if options[:type].eql?('v4')
34
+ File.join('lib', 'puppet', 'functions', module_name, *func_name_parts) + '.rb'
35
+ else
36
+ File.join('functions', *func_name_parts) + '.pp'
37
+ end
38
+ files
39
+ end
40
+
41
+ def template_data
42
+ func_name = object_name.split('::').last
43
+ namespace = object_name.split('::')[0...-1].join('::')
44
+ { name: object_name, func_name: func_name, namespace: namespace }
45
+ end
46
+ end
47
+ end
48
+ end
@@ -2,7 +2,7 @@ require 'pdk'
2
2
 
3
3
  module PDK
4
4
  module Generate
5
- class Provider < ResourceAPIObject
5
+ class Provider < PuppetObject
6
6
  def friendly_name
7
7
  'Resource API Provider'.freeze
8
8
  end
@@ -2,7 +2,7 @@ require 'pdk'
2
2
 
3
3
  module PDK
4
4
  module Generate
5
- class Transport < ResourceAPIObject
5
+ class Transport < PuppetObject
6
6
  def friendly_name
7
7
  'Resource API Transport'.freeze
8
8
  end
data/lib/pdk/module.rb CHANGED
@@ -15,6 +15,7 @@ module PDK
15
15
  '/REVISION',
16
16
  '/spec/fixtures/modules/',
17
17
  '/vendor/',
18
+ '.DS_Store',
18
19
  ].freeze
19
20
 
20
21
  def default_ignored_pathspec(ignore_dotfiles = true)
@@ -27,7 +27,7 @@ module PDK
27
27
  'Debian based Linux' => [
28
28
  {
29
29
  'operatingsystem' => 'Debian',
30
- 'operatingsystemrelease' => ['9'],
30
+ 'operatingsystemrelease' => ['10'],
31
31
  },
32
32
  {
33
33
  'operatingsystem' => 'Ubuntu',
@@ -54,6 +54,10 @@ module PDK
54
54
  'operatingsystem' => 'windows',
55
55
  'operatingsystemrelease' => %w[2019 10],
56
56
  },
57
+ 'AIX' => {
58
+ 'operatingsystem' => 'AIX',
59
+ 'operatingsystemrelease' => %w[6.1 7.1 7.2],
60
+ },
57
61
  }.freeze
58
62
 
59
63
  DEFAULT_OPERATING_SYSTEMS = [
@@ -77,7 +81,7 @@ module PDK
77
81
  OPERATING_SYSTEMS[os_name]
78
82
  }.flatten,
79
83
  'requirements' => [
80
- { 'name' => 'puppet', 'version_requirement' => '>= 4.10.0 < 7.0.0' },
84
+ { 'name' => 'puppet', 'version_requirement' => '>= 6.21.0 < 8.0.0' },
81
85
  ],
82
86
  }.freeze
83
87
 
@@ -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?
@@ -163,7 +169,7 @@ module PDK
163
169
  http.request(request)
164
170
  end
165
171
 
166
- raise PDK::CLI::ExitWithError, _('Error uploading to Puppet Forge: %{result}') % { result: response } unless response.is_a?(Net::HTTPSuccess)
172
+ raise PDK::CLI::ExitWithError, _('Error uploading to Puppet Forge: %{result}') % { result: response.body } unless response.is_a?(Net::HTTPSuccess)
167
173
  PDK.logger.info _('Publish to Forge was successful')
168
174
  end
169
175
 
@@ -85,7 +85,7 @@ module PDK
85
85
  private
86
86
 
87
87
  def latest_template?
88
- [PDK::TEMPLATE_REF, 'master'].include?(template_uri.uri_fragment)
88
+ [PDK::TEMPLATE_REF, 'master', 'main'].include?(template_uri.uri_fragment)
89
89
  end
90
90
 
91
91
  def current_template_version
data/lib/pdk/report.rb CHANGED
@@ -104,7 +104,7 @@ module PDK
104
104
  if event.rspec_puppet_coverage?
105
105
  coverage_report = event.to_text
106
106
  else
107
- report << event.to_text unless event.pass?
107
+ report << event.to_text unless event.pass? || event.skipped?
108
108
  end
109
109
  end
110
110
  end
@@ -113,8 +113,8 @@ module PDK
113
113
 
114
114
  if target.is_a?(String)
115
115
  PDK::Util::Filesystem.write_file(target, report.join("\n"))
116
- else
117
- target << report.join("\n")
116
+ elsif !report.empty?
117
+ target << report.join("\n") << "\n"
118
118
  end
119
119
  end
120
120
  end
@@ -111,8 +111,8 @@ module PDK
111
111
  location = nil if location.empty?
112
112
 
113
113
  # TODO: maybe add trace
114
- header = [severity, source, location, message].compact.join(': ')
115
114
  if source == 'rspec'
115
+ header = [severity, source, location, message].compact.join(': ')
116
116
  result = [header, " #{test}"]
117
117
  context = context_lines
118
118
  unless context.nil?
@@ -123,7 +123,13 @@ module PDK
123
123
 
124
124
  result.compact.join("\n")
125
125
  else
126
- header
126
+ output = ['pdk']
127
+ output << "(#{severity.upcase}):" unless severity.nil?
128
+ output << "#{source}:" unless source.nil?
129
+ output << message unless message.nil?
130
+ output << "(#{location})" unless location.nil?
131
+
132
+ output.join(' ')
127
133
  end
128
134
  end
129
135
 
@@ -139,7 +139,7 @@ module PDK
139
139
 
140
140
  example_results = {
141
141
  # Only possibilities are passed, failed, pending:
142
- # https://github.com/rspec/rspec-core/blob/master/lib/rspec/core/example.rb#L548
142
+ # https://github.com/rspec/rspec-core/blob/main/lib/rspec/core/example.rb#L548
143
143
  'passed' => [],
144
144
  'failed' => [],
145
145
  'pending' => [],
@@ -183,6 +183,8 @@ module PDK
183
183
  end
184
184
 
185
185
  def self.merge_json_results(json_data)
186
+ require 'set'
187
+
186
188
  merged_json_result = {}
187
189
 
188
190
  # Merge messages
@@ -44,7 +44,7 @@ module PDK
44
44
  # If there are missing dependencies after updating the lockfile, let `bundle install`
45
45
  # go out and get them. If the specified puppet gem version points to a remote location
46
46
  # or local filepath, then run bundle install as well.
47
- if !bundle.installed? || (gem_overrides[:puppet] && gem_overrides[:puppet].start_with?('file://', 'git://', 'https://'))
47
+ if !bundle.installed?(gem_overrides) || (gem_overrides[:puppet] && gem_overrides[:puppet].start_with?('file://', 'git://', 'https://'))
48
48
  bundle.install!(gem_overrides)
49
49
  end
50
50
 
@@ -9,11 +9,15 @@ module PDK
9
9
 
10
10
  # Raises if the github_changelog_generator is not available
11
11
  def self.github_changelog_generator_available!
12
- require 'bundler'
13
- return if ::Bundler.rubygems.find_name(GEM).any?
12
+ check_command = PDK::CLI::Exec::InteractiveCommand.new(PDK::CLI::Exec.bundle_bin, 'show', 'github_changelog_generator')
13
+ check_command.context = :module
14
+
15
+ result = check_command.execute!
16
+
17
+ return if result[:exit_code].zero?
14
18
 
15
19
  raise PDK::CLI::ExitWithError, _(
16
- 'Unable to generate the changelog as the %{gem} gem is not installed',
20
+ 'Unable to generate the changelog as the %{gem} gem is not included in this module\'s Gemfile',
17
21
  ) % { gem: GEM }
18
22
  end
19
23
 
@@ -106,6 +110,19 @@ module PDK
106
110
  version.join('.')
107
111
  end
108
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
+
109
126
  def self.changelog_file
110
127
  # Default Changelog file is CHANGELOG.md, but also search for the .MD prefix as well.
111
128
  @changelog_file ||= ['CHANGELOG.md', 'CHANGELOG.MD'].map { |file| PDK::Util::Filesystem.expand_path(file) }.find { |path| PDK::Util::Filesystem.file?(path) }
@@ -39,6 +39,7 @@ module PDK
39
39
  end
40
40
  end
41
41
 
42
+ return [] if @objects.nil?
42
43
  @objects = @objects.compact
43
44
  end
44
45
 
@@ -17,7 +17,7 @@ module PDK
17
17
 
18
18
  PE_VERSIONS_URL = 'https://forgeapi.puppet.com/private/versions/pe'.freeze
19
19
  DEFAULT_PUPPET_DEV_URL = 'https://github.com/puppetlabs/puppet'.freeze
20
- DEFAULT_PUPPET_DEV_BRANCH = 'master'.freeze
20
+ DEFAULT_PUPPET_DEV_BRANCH = 'main'.freeze
21
21
 
22
22
  def puppet_dev_env
23
23
  require 'pdk/util/ruby_version'
@@ -80,7 +80,7 @@ module PDK
80
80
  end
81
81
 
82
82
  # Reset local repo to latest
83
- reset_result = PDK::Util::Git.git('-C', puppet_dev_path, 'reset', '--hard', 'origin/master')
83
+ reset_result = PDK::Util::Git.git('-C', puppet_dev_path, 'reset', '--hard', "origin/#{DEFAULT_PUPPET_DEV_BRANCH}")
84
84
 
85
85
  @puppet_dev_fetched = true
86
86
  return if reset_result[:exit_code].zero?
@@ -60,7 +60,11 @@ module PDK
60
60
  #
61
61
  # PDK::Util::PuppetVersion.find_gem_for('5.5.10')[:ruby_version]
62
62
  #
63
- PDK::Util::PuppetVersion.latest_available[:ruby_version]
63
+ # For using the latest puppet gem:
64
+ # PDK::Util::PuppetVersion.latest_available[:ruby_version]
65
+ #
66
+ # Temporarily lock to Ruby 2.5.x as default until 2.7.x ecosystem is sorted
67
+ versions.keys.detect { |v| v =~ %r{^2\.5} }
64
68
  else
65
69
  # TODO: may not be a safe assumption that highest available version should be default
66
70
  # WARNING Do NOT use PDK::Util::PuppetVersion.*** methods as it can recurse into this
@@ -26,13 +26,13 @@ module PDK
26
26
  #
27
27
  # file:///c:/foo (git clone location)
28
28
  # c:/foo (shell paths)
29
- # file:///c:/foo#master (only for metadata)
30
- # c:/foo#master (only for metadata)
29
+ # file:///c:/foo#main (only for metadata)
30
+ # c:/foo#main (only for metadata)
31
31
  #
32
32
  # non output formats:
33
33
  #
34
34
  # /c:/foo (internal use only)
35
- # /c:/foo#master (internal use only)
35
+ # /c:/foo#main (internal use only)
36
36
  #
37
37
  def initialize(opts_or_uri)
38
38
  require 'addressable'
@@ -241,11 +241,11 @@ module PDK
241
241
  require 'pdk/util'
242
242
  require 'pdk/version'
243
243
 
244
- return 'master' if PDK::Util.development_mode?
244
+ return 'main' if PDK::Util.development_mode?
245
245
  return PDK::TEMPLATE_REF if uri.nil?
246
246
 
247
247
  uri = new(uri) unless uri.is_a?(self)
248
- uri.default? ? PDK::TEMPLATE_REF : 'master'
248
+ uri.default? ? PDK::TEMPLATE_REF : 'main'
249
249
  end
250
250
 
251
251
  # @returns Addressable::URI
@@ -55,8 +55,7 @@ module PDK
55
55
  uri = URI.parse(url)
56
56
  http = Net::HTTP.new(uri.host, uri.port)
57
57
  http.use_ssl = true
58
- # TODO: Get rid of this, possible workaround:
59
- # https://github.com/glennsarti/dev-tools/blob/master/RubyCerts.ps1
58
+ # TODO: Get rid of this
60
59
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE if Gem.win_platform?
61
60
  request = Net::HTTP::Get.new(uri.request_uri)
62
61
  response = http.request(request)
@@ -86,7 +86,12 @@ module PDK
86
86
  ignore_list = ignore_pathspec
87
87
  target_list = target_list.reject { |file| ignore_list.match(file) }
88
88
 
89
- skipped << target if target_list.flatten.empty?
89
+ if target_list.flatten.empty?
90
+ PDK.logger.info(_('Validator \'%{validator}\' skipped for \'%{target}\'. No files matching \'%{pattern}\' found to validate.') % { validator: name, target: target, pattern: pattern })
91
+
92
+ skipped << target
93
+ end
94
+
90
95
  target_list
91
96
  elsif PDK::Util::Filesystem.file?(target)
92
97
  if Array(pattern).include? target
@@ -208,6 +213,14 @@ module PDK
208
213
  end
209
214
  end
210
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
+
211
224
  ignore_pathspec
212
225
  end
213
226
  end
@@ -49,7 +49,7 @@ module PDK
49
49
  # Need to set the JSON Parser and State Generator to the Native one to be
50
50
  # compatible with the multi_json adapter.
51
51
  JSON.parser = JSON::Ext::Parser if defined?(JSON::Ext::Parser)
52
- JSON.generator = JSON::Ext::Generator
52
+ JSON.generator = JSON::Ext::Generator if defined?(JSON::Ext::Generator)
53
53
 
54
54
  begin
55
55
  errors = JSON::Validator.fully_validate(schema_file, PDK::Util::Filesystem.read_file(target)) || []
@@ -4,7 +4,7 @@ module PDK
4
4
  module Validate
5
5
  module YAML
6
6
  class YAMLSyntaxValidator < InternalRubyValidator
7
- YAML_WHITELISTED_CLASSES = [Symbol].freeze
7
+ YAML_ALLOWLISTED_CLASSES = [Symbol].freeze
8
8
 
9
9
  def ignore_dotfiles
10
10
  false
@@ -53,7 +53,7 @@ module PDK
53
53
  end
54
54
 
55
55
  begin
56
- ::YAML.safe_load(PDK::Util::Filesystem.read_file(target), YAML_WHITELISTED_CLASSES, [], true)
56
+ ::YAML.safe_load(PDK::Util::Filesystem.read_file(target), YAML_ALLOWLISTED_CLASSES, [], true)
57
57
 
58
58
  report.add_event(
59
59
  file: target,
data/lib/pdk/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module PDK
2
- VERSION = '1.18.1'.freeze
2
+ VERSION = '2.2.0'.freeze
3
3
  TEMPLATE_REF = VERSION
4
4
  end
@@ -0,0 +1,9 @@
1
+ module PDK
2
+ <<<<<<< HEAD
3
+ VERSION = '2.2.0.pre2'.freeze
4
+ TEMPLATE_REF = '2.1.1'.freeze
5
+ =======
6
+ VERSION = '2.2.0'.freeze
7
+ TEMPLATE_REF = VERSION
8
+ >>>>>>> 8ef8eb2 ((MAINT) Release prep for 2.2.0)
9
+ end
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: 1.18.1
4
+ version: 2.2.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: 2020-07-17 00:00:00.000000000 Z
11
+ date: 2021-08-02 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.7.1
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.7.1
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: '1.3'
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.3'
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: 1.3.0
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: 1.3.0
128
+ version: 2.0.0
123
129
  - !ruby/object:Gem::Dependency
124
130
  name: json-schema
125
131
  requirement: !ruby/object:Gem::Requirement
@@ -182,14 +188,14 @@ dependencies:
182
188
  requirements:
183
189
  - - "~>"
184
190
  - !ruby/object:Gem::Version
185
- version: '0.13'
191
+ version: '0.22'
186
192
  type: :runtime
187
193
  prerelease: false
188
194
  version_requirements: !ruby/object:Gem::Requirement
189
195
  requirements:
190
196
  - - "~>"
191
197
  - !ruby/object:Gem::Version
192
- version: '0.13'
198
+ version: '0.22'
193
199
  - !ruby/object:Gem::Dependency
194
200
  name: tty-spinner
195
201
  requirement: !ruby/object:Gem::Requirement
@@ -236,16 +242,22 @@ dependencies:
236
242
  name: facter
237
243
  requirement: !ruby/object:Gem::Requirement
238
244
  requirements:
239
- - - "~>"
245
+ - - ">="
240
246
  - !ruby/object:Gem::Version
241
247
  version: 2.5.1
248
+ - - "<"
249
+ - !ruby/object:Gem::Version
250
+ version: 5.0.0
242
251
  type: :runtime
243
252
  prerelease: false
244
253
  version_requirements: !ruby/object:Gem::Requirement
245
254
  requirements:
246
- - - "~>"
255
+ - - ">="
247
256
  - !ruby/object:Gem::Version
248
257
  version: 2.5.1
258
+ - - "<"
259
+ - !ruby/object:Gem::Version
260
+ version: 5.0.0
249
261
  - !ruby/object:Gem::Dependency
250
262
  name: httpclient
251
263
  requirement: !ruby/object:Gem::Requirement
@@ -300,6 +312,7 @@ files:
300
312
  - lib/pdk/cli/config/get.rb
301
313
  - lib/pdk/cli/console.rb
302
314
  - lib/pdk/cli/convert.rb
315
+ - lib/pdk/cli/env.rb
303
316
  - lib/pdk/cli/errors.rb
304
317
  - lib/pdk/cli/exec.rb
305
318
  - lib/pdk/cli/exec/command.rb
@@ -313,6 +326,8 @@ files:
313
326
  - lib/pdk/cli/new.rb
314
327
  - lib/pdk/cli/new/class.rb
315
328
  - lib/pdk/cli/new/defined_type.rb
329
+ - lib/pdk/cli/new/fact.rb
330
+ - lib/pdk/cli/new/function.rb
316
331
  - lib/pdk/cli/new/module.rb
317
332
  - lib/pdk/cli/new/provider.rb
318
333
  - lib/pdk/cli/new/task.rb
@@ -357,11 +372,12 @@ files:
357
372
  - lib/pdk/control_repo.rb
358
373
  - lib/pdk/generate.rb
359
374
  - lib/pdk/generate/defined_type.rb
375
+ - lib/pdk/generate/fact.rb
376
+ - lib/pdk/generate/function.rb
360
377
  - lib/pdk/generate/module.rb
361
378
  - lib/pdk/generate/provider.rb
362
379
  - lib/pdk/generate/puppet_class.rb
363
380
  - lib/pdk/generate/puppet_object.rb
364
- - lib/pdk/generate/resource_api_object.rb
365
381
  - lib/pdk/generate/task.rb
366
382
  - lib/pdk/generate/transport.rb
367
383
  - lib/pdk/i18n.rb
@@ -427,12 +443,13 @@ files:
427
443
  - lib/pdk/validate/yaml/yaml_syntax_validator.rb
428
444
  - lib/pdk/validate/yaml/yaml_validator_group.rb
429
445
  - lib/pdk/version.rb
446
+ - lib/pdk/version.rb.orig
430
447
  - locales/config.yaml
431
448
  - locales/pdk.pot
432
449
  homepage: https://github.com/puppetlabs/pdk
433
450
  licenses: []
434
451
  metadata: {}
435
- post_install_message:
452
+ post_install_message:
436
453
  rdoc_options: []
437
454
  require_paths:
438
455
  - lib
@@ -440,15 +457,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
440
457
  requirements:
441
458
  - - ">="
442
459
  - !ruby/object:Gem::Version
443
- version: 2.1.9
460
+ version: 2.4.0
444
461
  required_rubygems_version: !ruby/object:Gem::Requirement
445
462
  requirements:
446
463
  - - ">="
447
464
  - !ruby/object:Gem::Version
448
465
  version: '0'
449
466
  requirements: []
450
- rubygems_version: 3.0.3
451
- signing_key:
467
+ rubyforge_project:
468
+ rubygems_version: 2.6.14.4
469
+ signing_key:
452
470
  specification_version: 4
453
471
  summary: A key part of the Puppet Development Kit, the shortest path to better modules
454
472
  test_files: []
@@ -1,55 +0,0 @@
1
- require 'pdk'
2
-
3
- module PDK
4
- module Generate
5
- # An abstract class for generated objects that require the Puppet Resource API Gem
6
- #
7
- # @abstract
8
- class ResourceAPIObject < PuppetObject
9
- #:nocov: This is tested in spec/acceptance/new_transport_spec.rb
10
- # @see PDK::Generate::PuppetObject.check_preconditions
11
- def check_preconditions
12
- super
13
- # Note that these preconditions are only applicable to the current (V1) template rendering layout and will need to be changed
14
- # when additional template renderers are introduced.
15
- #
16
- # These preconditions can be removed once the pdk-templates are carrying the puppet-resource_api gem by default, and have switched
17
- # the default mock_with value.
18
- sync_path = PDK::Util.find_upwards('.sync.yml')
19
- if sync_path.nil?
20
- raise_precondition_error(_('.sync.yml not found'))
21
- end
22
- sync = YAML.load_file(sync_path)
23
- if !sync.is_a? Hash
24
- raise_precondition_error(_('.sync.yml contents is not a Hash'))
25
- elsif !sync.key? 'Gemfile'
26
- raise_precondition_error(_('Gemfile configuration not found'))
27
- elsif !sync['Gemfile'].key? 'optional'
28
- raise_precondition_error(_('Gemfile.optional configuration not found'))
29
- elsif !sync['Gemfile']['optional'].key? ':development'
30
- raise_precondition_error(_('Gemfile.optional.:development configuration not found'))
31
- elsif sync['Gemfile']['optional'][':development'].none? { |g| g['gem'] == 'puppet-resource_api' }
32
- raise_precondition_error(_('puppet-resource_api not found in the Gemfile config'))
33
- elsif !sync.key? 'spec/spec_helper.rb'
34
- raise_precondition_error(_('spec/spec_helper.rb configuration not found'))
35
- elsif !sync['spec/spec_helper.rb'].key? 'mock_with'
36
- raise_precondition_error(_('spec/spec_helper.rb.mock_with configuration not found'))
37
- elsif !sync['spec/spec_helper.rb']['mock_with'] == ':rspec'
38
- raise_precondition_error(_('spec/spec_helper.rb.mock_with not set to \':rspec\''))
39
- end
40
- end
41
-
42
- # Helper method to raise an error if the Resource API is not available
43
- #
44
- # @api private
45
- def raise_precondition_error(error)
46
- raise PDK::CLI::ExitWithError, _('%{error}: Creating a %{thing_name} needs some local configuration in your module.' \
47
- ' Please follow the docs at https://puppet.com/docs/puppet/latest/create_types_and_providers_resource_api.html') % {
48
- thing_name: friendly_name,
49
- error: error,
50
- }
51
- end
52
- #:nocov:
53
- end
54
- end
55
- end