puppet 2.7.18 → 2.7.19

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (137) hide show
  1. data/CHANGELOG +82 -0
  2. data/CONTRIBUTING.md +114 -171
  3. data/README.md +8 -0
  4. data/README_DEVELOPER.md +38 -3
  5. data/Rakefile +19 -3
  6. data/conf/osx/createpackage.sh +3 -1
  7. data/conf/redhat/logrotate +1 -1
  8. data/conf/redhat/puppet.spec +35 -8
  9. data/lib/puppet.rb +1 -1
  10. data/lib/puppet/application/agent.rb +2 -0
  11. data/lib/puppet/application/master.rb +2 -0
  12. data/lib/puppet/configurer.rb +2 -3
  13. data/lib/puppet/defaults.rb +6 -5
  14. data/lib/puppet/face/module/install.rb +2 -1
  15. data/lib/puppet/file_bucket/dipper.rb +1 -1
  16. data/lib/puppet/indirector/file_content.rb +2 -2
  17. data/lib/puppet/indirector/file_metadata.rb +2 -2
  18. data/lib/puppet/indirector/indirection.rb +3 -4
  19. data/lib/puppet/indirector/rest.rb +12 -6
  20. data/lib/puppet/interface/action_manager.rb +1 -2
  21. data/lib/puppet/module_tool/applications/unpacker.rb +22 -3
  22. data/lib/puppet/network/handler/fileserver.rb +2 -2
  23. data/lib/puppet/parser/ast/resource.rb +9 -2
  24. data/lib/puppet/parser/functions/fqdn_rand.rb +2 -1
  25. data/lib/puppet/parser/functions/md5.rb +2 -2
  26. data/lib/puppet/parser/functions/sha1.rb +2 -2
  27. data/lib/puppet/parser/functions/template.rb +0 -2
  28. data/lib/puppet/parser/type_loader.rb +1 -2
  29. data/lib/puppet/provider/augeas/augeas.rb +19 -1
  30. data/lib/puppet/provider/confine.rb +1 -1
  31. data/lib/puppet/provider/package/msi.rb +97 -51
  32. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +1 -0
  33. data/lib/puppet/provider/service/gentoo.rb +0 -2
  34. data/lib/puppet/provider/service/openrc.rb +69 -0
  35. data/lib/puppet/provider/service/windows.rb +6 -4
  36. data/lib/puppet/provider/user/aix.rb +8 -4
  37. data/lib/puppet/provider/user/useradd.rb +6 -0
  38. data/lib/puppet/rails/benchmark.rb +2 -2
  39. data/lib/puppet/reports/store.rb +9 -9
  40. data/lib/puppet/resource/catalog.rb +2 -1
  41. data/lib/puppet/resource/type_collection.rb +2 -1
  42. data/lib/puppet/ssl/base.rb +1 -2
  43. data/lib/puppet/ssl/certificate_authority/interface.rb +1 -0
  44. data/lib/puppet/test/test_helper.rb +2 -1
  45. data/lib/puppet/type.rb +1 -1
  46. data/lib/puppet/type/augeas.rb +1 -1
  47. data/lib/puppet/type/file.rb +4 -2
  48. data/lib/puppet/type/scheduled_task.rb +8 -10
  49. data/lib/puppet/type/tidy.rb +1 -1
  50. data/lib/puppet/util.rb +63 -25
  51. data/lib/puppet/util/autoload.rb +6 -4
  52. data/lib/puppet/util/checksums.rb +3 -8
  53. data/lib/puppet/util/diff.rb +2 -1
  54. data/lib/puppet/util/filetype.rb +1 -3
  55. data/lib/puppet/util/run_mode.rb +2 -1
  56. data/lib/puppet/util/suidmanager.rb +1 -1
  57. data/lib/puppet/util/windows.rb +1 -0
  58. data/lib/puppet/util/windows/file.rb +27 -0
  59. data/lib/puppet/util/windows/user.rb +1 -2
  60. data/man/man8/puppet-agent.8 +4 -0
  61. data/man/man8/puppet-master.8 +4 -0
  62. data/man/man8/puppetmasterd.8 +4 -0
  63. data/spec/fixtures/unit/provider/augeas/augeas/augeas/lenses/test.aug +13 -0
  64. data/spec/fixtures/unit/provider/augeas/augeas/etc/fstab +10 -0
  65. data/spec/fixtures/unit/provider/augeas/augeas/etc/hosts +6 -0
  66. data/spec/fixtures/unit/provider/augeas/augeas/etc/test +3 -0
  67. data/spec/fixtures/unit/provider/augeas/augeas/test.aug +13 -0
  68. data/spec/fixtures/unit/provider/service/openrc/rcservice_list +8 -0
  69. data/spec/fixtures/unit/provider/service/openrc/rcstatus +43 -0
  70. data/spec/integration/defaults_spec.rb +3 -3
  71. data/spec/integration/network/server/mongrel_spec.rb +8 -6
  72. data/spec/integration/parser/parser_spec.rb +1 -1
  73. data/spec/integration/type/file_spec.rb +49 -12
  74. data/spec/lib/puppet_spec/database.rb +5 -3
  75. data/spec/lib/puppet_spec/files.rb +2 -1
  76. data/spec/monkey_patches/alias_should_to_must.rb +15 -2
  77. data/spec/shared_behaviours/file_serving_model.rb +9 -6
  78. data/spec/shared_behaviours/path_parameters.rb +5 -5
  79. data/spec/shared_behaviours/things_that_declare_options.rb +5 -5
  80. data/spec/unit/application/facts_spec.rb +1 -1
  81. data/spec/unit/application_spec.rb +10 -8
  82. data/spec/unit/configurer_spec.rb +11 -2
  83. data/spec/unit/face/ca_spec.rb +15 -15
  84. data/spec/unit/face/help_spec.rb +5 -5
  85. data/spec/unit/face/module/install_spec.rb +13 -2
  86. data/spec/unit/face/node_spec.rb +7 -6
  87. data/spec/unit/indirector/certificate_request/ca_spec.rb +1 -1
  88. data/spec/unit/indirector/envelope_spec.rb +0 -13
  89. data/spec/unit/indirector/facts/inventory_service_spec.rb +1 -1
  90. data/spec/unit/indirector/queue_spec.rb +3 -3
  91. data/spec/unit/indirector/rest_spec.rb +31 -20
  92. data/spec/unit/indirector_spec.rb +5 -5
  93. data/spec/unit/interface/action_builder_spec.rb +3 -2
  94. data/spec/unit/interface/action_manager_spec.rb +1 -1
  95. data/spec/unit/interface/action_spec.rb +4 -3
  96. data/spec/unit/interface/face_collection_spec.rb +1 -1
  97. data/spec/unit/interface/option_spec.rb +13 -9
  98. data/spec/unit/interface_spec.rb +5 -5
  99. data/spec/unit/module_tool/applications/unpacker_spec.rb +61 -0
  100. data/spec/unit/network/handler/fileserver_spec.rb +3 -3
  101. data/spec/unit/other/transbucket_spec.rb +6 -9
  102. data/spec/unit/parser/ast/resource_spec.rb +27 -0
  103. data/spec/unit/parser/functions/create_resources_spec.rb +12 -12
  104. data/spec/unit/parser/lexer_spec.rb +5 -5
  105. data/spec/unit/provider/augeas/augeas_spec.rb +78 -0
  106. data/spec/unit/provider/nameservice/directoryservice_spec.rb +6 -6
  107. data/spec/unit/provider/package/freebsd_spec.rb +2 -2
  108. data/spec/unit/provider/package/msi_spec.rb +181 -114
  109. data/spec/unit/provider/package/openbsd_spec.rb +1 -0
  110. data/spec/unit/provider/package/pkgdmg_spec.rb +3 -3
  111. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +1 -1
  112. data/spec/unit/provider/service/openrc_spec.rb +209 -0
  113. data/spec/unit/provider/service/windows_spec.rb +57 -59
  114. data/spec/unit/provider/user/useradd_spec.rb +7 -0
  115. data/spec/unit/reports/store_spec.rb +13 -13
  116. data/spec/unit/resource/catalog_spec.rb +29 -24
  117. data/spec/unit/resource_spec.rb +13 -13
  118. data/spec/unit/simple_graph_spec.rb +12 -12
  119. data/spec/unit/ssl/certificate_authority/interface_spec.rb +3 -3
  120. data/spec/unit/ssl/certificate_authority_spec.rb +11 -10
  121. data/spec/unit/transaction_spec.rb +3 -3
  122. data/spec/unit/type/cron_spec.rb +171 -171
  123. data/spec/unit/type/exec_spec.rb +29 -27
  124. data/spec/unit/type/file_spec.rb +22 -13
  125. data/spec/unit/type/interface_spec.rb +1 -1
  126. data/spec/unit/type/scheduled_task_spec.rb +15 -14
  127. data/spec/unit/type/tidy_spec.rb +2 -2
  128. data/spec/unit/type/user_spec.rb +15 -15
  129. data/spec/unit/type/vlan_spec.rb +1 -1
  130. data/spec/unit/type_spec.rb +22 -25
  131. data/spec/unit/util/autoload_spec.rb +13 -7
  132. data/spec/unit/util/backups_spec.rb +36 -67
  133. data/spec/unit/util/storage_spec.rb +2 -9
  134. data/spec/unit/util/suidmanager_spec.rb +1 -1
  135. data/spec/unit/util_spec.rb +20 -28
  136. data/test/ral/manager/attributes.rb +1 -1
  137. metadata +1553 -1542
data/CHANGELOG CHANGED
@@ -1,3 +1,85 @@
1
+ 2.7.19
2
+ ===
3
+ 85f5543 Ruby 1.9.3 has a different error when `require` fails.
4
+ b2d08a4 (#15291) Add Vendor tag to Puppet spec file
5
+ 7611753 Add packaging support for fedora 17
6
+ b540aa0 (#15471) Fix setting mode of last_run_summary
7
+ 7c7cffe (#15471) Ensure non-root can read report summary
8
+ a257105 Use Win32 API atomic replace in `replace_file`
9
+ a619bfd Add additional commits to CHANGELOG missed in 2.7.19rc1
10
+ 1dd660a (Maint) Remove reference to Patchwork
11
+ a26d1ee Replace "the short version" with outline
12
+ b73d0dd (#15595) Improve message on SSL errors
13
+ 9567ec8 (#15595) Clear up tests around ssl errors
14
+ ccca77f use error_message instead of error
15
+ 3809b59 updates as requested
16
+ e7b3049 (#15595) Offer better errors for certificate validation errors
17
+ 6a43e96 Update CONTRIBUTING.md
18
+ c44973c (Maint) Remove some more ambiguity
19
+ c236001 Use rspec 2.11 compatible block syntax
20
+ b504ab7 Fix buggy resource title tests
21
+ 00b563d (Maint) Be more honest about submission methods
22
+ b90c92b (Maint) Clarify that Redmine tickets are mandatory
23
+ 62c14bd (Maint) Clarify which branches changes should be based on
24
+ c0a0a45 tidy.rb: Added info about the default value of 'type' to the doc.
25
+ 2d994c2 Switch Rakefile off deprecated rake/gempackagetask
26
+ 7324f54 Update main readme to have links to contrib and dev docs
27
+ 57a74f7 (13070) Mark files as loaded before we load
28
+ a23cf6e (Maint) Don't assume paths are absolute
29
+ dd96d84 Determine packaging version with git describe
30
+ 04fbccd Try again to avoid circular dependency in file indirections
31
+ 3e23686 Avoid circular requirement in FileMetadata indirection
32
+ 125ecec (Maint) Spec test wasn't testing anything
33
+ 4c18d08 (#14964) Unlink Tempfiles consistently across different ruby versions
34
+ 690c39b (Maint) Require the right file for md5
35
+ 44ada58 Extract host validation in store report processor
36
+ 91df2f3 Use cross-platform absolute paths in file_serving tests
37
+ c7e4ca7 (#15221) Create /etc/puppet/modules directory for puppet module tool
38
+ c05489b (Maint:) Fix bad doc strings for two settings ("wether")
39
+ 33fce73 Try again to avoid circular dependency in file indirections
40
+ b227aa1 Remove useless tests for Envelope
41
+ 86ccca4 Clear deprecation warnings between tests
42
+ d7078c3 Avoid circular requirement in FileMetadata indirection
43
+ 03d546e (Maint) Document common Windows issues
44
+ 761b48f (#11868) Use `Installer` automation interface to query package state
45
+ cc4d8d2 Don't allow resource titles which aren't strings
46
+ 37742db Eliminate require calls at runtime.
47
+ be5fcf4 Fix broken TransBucket transformation tests.
48
+ 8f99187 Fix broken ability to remove resources from the catalog.
49
+ 9bd4fd3 Fix type check when transforming catalog.
50
+ 825b80d Fix all trivial "should to must" errors in our tests.
51
+ 7a7bea7 Enforce "must not should" on Puppet::Type instances in tests.
52
+ 39f0bf4 (#14962) PMT doesn't support setting a relative modulepath
53
+ 39f425f (#15078) Document USR2 log rotation signal
54
+ 300fce9 (#14909) Update createpackage.sh to resolve permissions issues
55
+ 0d5a46a (#14600) Fix cleanup of tempfiles in file_spec
56
+ 2141905 (maint) Add --test to puppet run
57
+ ddf8358 Update logrotate config to not restart puppetmasterd
58
+ da771cb (maint) Add symlink stub to gentoo service provider spec
59
+ 0e87fe1 Add comment to upstart provider explaining exclusion of 'wait-for-state'
60
+ 0219818 (#14531) Change default ensure value from symlink to link
61
+ 0cab9ee Upstart code cleanup, init provider improvement
62
+ 91628be Add spec test for network-interface-security
63
+ b60ad19 Add basic service resource test to upstart acceptance
64
+ a6245f9 Handle network-interface-security in upstart
65
+ 60e37b6 Add exclude list to upstart provider
66
+ 2911fec (#15027, #15028, #15029) Fix upstart version parsing
67
+ 8efc492 (#13489) Use let to memoize instance variables
68
+ dc5f57c (#13489) Synchronously start and stop services
69
+ 3ada851 (#14964) Don't fail if we can't unlink the Tempfile on Windows
70
+ 0b01bb3 (#14860) Fix puppet cert exit status on failures
71
+ d7e77eb (#14749) Clear reference to invalid task after saving
72
+ a2d9597 (#13008) Allow scheduled task arguments to be specified
73
+ c6af946 (#13009) Compare scheduled task commands using backslashes
74
+ b572810 (#14599) Handle ENOTDIR in file type
75
+ 2fc7191 (#9160) Change logging facility to debug for not supported provider features
76
+ 0859364 (#13880) Add openrc spec - service with extreme long name
77
+ af6f7ba (#13880) Add openrc service provider for Gentoo and Funtoo
78
+ 5146397 (#13379) Add path of pluginsync'd lenses to Augeas load_path automatically
79
+ 087d5ae (#7285) Add spec for Augeas initialisation and file loading
80
+ 06eb9a9 Fixes for #10915 and #11200 - user provider for AIX
81
+ ed73845 (#10354) added delete command to fix missing userdel flag in useradd provider
82
+
1
83
  2.7.18
2
84
  ===
3
85
  d804782 Reject directory traversal in store report processor
data/CONTRIBUTING.md CHANGED
@@ -1,88 +1,89 @@
1
- Checklist (and a short version for the impatient)
1
+ Checklist/Outline (The short version)
2
2
  =================================================
3
3
 
4
- * Commits:
5
-
6
- - Make commits of logical units.
7
-
8
- - Check for unnecessary whitespace with "git diff --check" before
9
- committing.
10
-
11
- - Commit using Unix line endings (check the settings around "crlf" in
12
- git-config(1)).
13
-
14
- - Do not check in commented out code or unneeded files.
15
-
16
- - The first line of the commit message should be a short
17
- description (50 characters is the soft limit, excluding ticket
18
- number(s)), and should skip the full stop.
19
-
20
- - If there is an associated Redmine ticket then the first line
21
- should include the ticket number in the form "(#XXXX) Rest of
22
- message".
23
-
24
- - The body should provide a meaningful commit message, which:
25
-
26
- - uses the imperative, present tense: "change", not "changed" or
27
- "changes".
28
-
29
- - includes motivation for the change, and contrasts its
30
- implementation with the previous behavior.
31
-
32
- - Make sure that you have tests for the bug you are fixing, or
33
- feature you are adding.
34
-
35
- - Make sure the test suite passes after your commit (rake spec unit).
36
-
37
- * Submission:
38
-
39
- * Pre-requisites:
40
-
41
- - Make sure you have a [Redmine account](http://projects.puppetlabs.com)
42
-
43
- - Sign the [Contributor License Agreement](https://projects.puppetlabs.com/contributor_licenses/sign)
44
-
45
- * Preferred method:
46
-
47
- - Fork the repository on GitHub.
48
-
49
- - Push your changes to a topic branch in your fork of the
50
- repository.
51
-
52
- - Submit a pull request to the repository in the puppetlabs
53
- organization.
54
-
55
- * Alternate methods:
56
-
57
- - Mail patches to puppet-dev mailing list using `rake mail_patches`,
58
- or `git-format-patch(1)` & `git-send-email(1)`.
59
-
60
- - Attach patches to Redmine ticket.
61
-
4
+ * Getting Started:
5
+ - Make sure you have a [Redmine account](http://projects.puppetlabs.com)
6
+ - Submit a ticket for your issue, assuming one does not already exist.
7
+ - Decide what to base your work off of
8
+ * `2.6.x`: security fixes only
9
+ * `2.7.x`: bug fixes only
10
+ * `3.x`: new features that are not breaking changes
11
+ * `master`: new features that are breaking changes
12
+
13
+ * Making Changes:
14
+ - Make sure you have a [GitHub account](https://github.com/signup/free)
15
+ - Fork the repository on GitHub
16
+ - Make commits of logical units.
17
+ - Check for unnecessary whitespace with "git diff --check" before committing.
18
+ - Make sure your commit messages are in the proper format
19
+ - Make sure you have added the necessary tests for your changes
20
+ - Run _all_ the tests to assure nothing else was accidentally broken
21
+
22
+ * Submitting Changes:
23
+ - Sign the [Contributor License Agreement](https://projects.puppetlabs.com/contributor_licenses/sign)
24
+ - Push your changes to a topic branch in your fork of the repository.
25
+ - Submit a pull request to the repository in the puppetlabs organization.
26
+ - Update your Redmine ticket
27
+
62
28
  The long version
63
29
  ================
64
30
 
65
- 0. Decide what to base your work on.
66
-
67
- In general, you should always base your work on the oldest
68
- branch that your change is relevant to.
69
-
70
- - A bug fix should be based on the current stable series. If the
71
- bug is not present in the current stable release, then base it on
72
- `master`.
73
-
74
- - A new feature should be based on `master`.
75
-
76
- - Security fixes should be based on the current maintenance series
77
- (that is, the previous stable series). If the security issue
78
- was not present in the maintenance series, then it should be
79
- based on the current stable series if it was introduced there,
80
- or on `master` if it is not yet present in a stable release.
81
-
82
- The current stable series is 2.7.x, and the current maintenance
83
- series is 2.6.x.
84
-
85
- 1. Make separate commits for logically separate changes.
31
+ 0. Create a Redmine ticket for the change you'd like to make.
32
+
33
+ It's very important that there be a Redmine ticket for the change
34
+ you are making. Considering the number of contributions which are
35
+ submitted, it is crucial that we know we can find the ticket on Redmine.
36
+
37
+ Before making a ticket however, be sure that one does not already exist.
38
+ You can do this by searching Redmine or by trying a Google search which
39
+ includes `sites:projects.puppetlabs.com` in addition to some of the keywords
40
+ related to your issue.
41
+
42
+ If you do not find a ticket that that accurately describes the work
43
+ you're going to be doing, go ahead and create one. But be sure to
44
+ look for related tickets and add them to the 'related tickets' section.
45
+
46
+ 1. Decide what to base your work on.
47
+
48
+ In general, you should always base your work on the oldest
49
+ branch that your change is relevant to, and it will be
50
+ eventually merged up. Currently, branches will be merged up as
51
+ follows:
52
+ 2.6.x => 2.7.x => 3.x => master
53
+
54
+ Currently, this is how you should decide where to target your changes:
55
+
56
+ The absolute earliest place something should be targeted is at `2.6.x`,
57
+ and these should _only_ be security fixes. Anything else must be
58
+ targeted at a later branch.
59
+
60
+ A bug fix should be based off the the earliest place where it is
61
+ relevant. If it first appears in `2.7.x`, then it should be
62
+ targeted here and eventually merged up to `3.x` and master.
63
+
64
+ New features which are _backwards compatible_ should be targeted
65
+ at the next release, which currently is `3.x`.
66
+
67
+ New features that are _breaking changes_ should be targeted at
68
+ `master`.
69
+
70
+ Part of deciding what to what your work should be based off of includes naming
71
+ your topic branch to reflect this. Your branch name should have the following
72
+ format:
73
+ `ticket/target_branch/ticket_number_short_description_of_issuee`
74
+
75
+ For example, if you are fixing a bug relating to the ssl spec, which has Redmine
76
+ ticket number 12345, then your branch should be named:
77
+ `ticket/2.7.x/12345_fix_ssl_spec_tests`
78
+
79
+ There is a good chance that if you submit a pull request _from_ master _to_ master,
80
+ Puppet Labs developers will suspect that you're not sure about the process. This is
81
+ why clear naming of branches and basing your work off the right place will be
82
+ extremely helpful in ensuring that your submission is reviewed and merged. Often times
83
+ if your change is targeted at the wrong place, we will bounce it back to you and wait
84
+ to review it until it has been retargeted.
85
+
86
+ 2. Make separate commits for logically separate changes.
86
87
 
87
88
  Please break your commits down into logically consistent units
88
89
  which include new or changed tests relevent to the rest of the
@@ -94,7 +95,7 @@ The long version
94
95
  If you're going to refactor a piece of code, please do so as a
95
96
  separate commit from your feature or bug fix changes.
96
97
 
97
- We also really appreciate changes that include tests to make
98
+ It's crucial that your changes include tests to make
98
99
  sure the bug isn't re-introduced, and that the feature isn't
99
100
  accidentally broken.
100
101
 
@@ -115,7 +116,11 @@ The long version
115
116
  whitespaces or other "whitespace errors". You can do this by
116
117
  running "git diff --check" on your changes before you commit.
117
118
 
118
- 2. Sign the Contributor License Agreement
119
+ When writing commit messages, please be sure they meet
120
+ [these standards](https://github.com/erlang/otp/wiki/Writing-good-commit-messages), and please include the ticket number in your
121
+ short summary. It should look something like this: `(#12345) Fix this issue in Puppet`
122
+
123
+ 3. Sign the Contributor License Agreement
119
124
 
120
125
  Before we can accept your changes, we do need a signed Puppet
121
126
  Labs Contributor License Agreement (CLA).
@@ -131,106 +136,46 @@ The long version
131
136
  If you have any questions about the CLA, please feel free to
132
137
  contact Puppet Labs via email at cla-submissions@puppetlabs.com.
133
138
 
134
- 3. Sending your patches
135
-
136
- We accept multiple ways of submitting your changes for
137
- inclusion. They are listed below in order of preference.
138
-
139
- Please keep in mind that any method that involves sending email
140
- to the mailing list directly requires you to be subscribed to
141
- the mailing list, and that your first post to the list will be
142
- held in a moderation queue.
143
-
144
- * GitHub Pull Requests
145
-
146
- To submit your changes via a GitHub pull request, we _highly_
147
- recommend that you have them on a topic branch, instead of
148
- directly on "master" or one of the release, or RC branches.
149
- It makes things much easier to keep track of, especially if
150
- you decide to work on another thing before your first change
151
- is merged in.
139
+ 4. Sending your patches
152
140
 
153
- GitHub has some pretty good
154
- [general documentation](http://help.github.com/) on using
155
- their site. They also have documentation on
156
- [creating pull requests](http://help.github.com/send-pull-requests/).
141
+ To submit your changes via a GitHub pull request, you must
142
+ have them on a topic branch, instead of directly on "master"
143
+ or one of the release, or RC branches. It makes things much easier
144
+ to keep track of, especially if you decide to work on another thing
145
+ before your first change is merged in.
157
146
 
158
- In general, after pushing your topic branch up to your
159
- repository on GitHub, you'll switch to the branch in the
160
- GitHub UI and click "Pull Request" towards the top of the page
161
- in order to open a pull request.
147
+ GitHub has some pretty good
148
+ [general documentation](http://help.github.com/) on using
149
+ their site. They also have documentation on
150
+ [creating pull requests](http://help.github.com/send-pull-requests/).
162
151
 
163
- You'll want to make sure that you have the appropriate
164
- destination branch in the repository under the puppetlabs
165
- organization. This should be the same branch that you based
166
- your changes off of.
152
+ In general, after pushing your topic branch up to your
153
+ repository on GitHub, you'll switch to the branch in the
154
+ GitHub UI and click "Pull Request" towards the top of the page
155
+ in order to open a pull request.
167
156
 
168
- * Other pull requests
157
+ You'll want to make sure that you have the appropriate
158
+ destination branch in the repository under the puppetlabs
159
+ organization. This should be the same branch that you based
160
+ your changes off of.
169
161
 
170
- If you already have a publicly accessible version of the
171
- repository hosted elsewhere, and don't wish to or cannot use
172
- GitHub, you can submit your change by requesting that we pull
173
- the changes from your repository by sending an email to the
174
- puppet-dev Google Groups mailing list.
162
+ 5. Update the related Redmine ticket.
175
163
 
176
- `git-request-pull(1)` provides a handy way to generate the text
177
- for the email requesting that we pull your changes (and does
178
- some helpful sanity checks in the process).
179
-
180
- * Mailing patches to the mailing list
181
-
182
- If neither of the previous methods works for you, then you can
183
- also mail the patches inline to the puppet-dev Google Group
184
- using either `rake mail_patches`, or by using
185
- `git-format-patch(1)`, and `git-send-email(1)` directly.
186
-
187
- `rake mail_patches` handles setting the appropriate flags to
188
- `git-format-patch(1)` and `git-send-email(1)` for you, but
189
- doesn't allow adding any commentary between the '---', and the
190
- diffstat in the resulting email. It also requires that you
191
- have created your topic branch in the form
192
- `<type>/<parent>/<name>`.
193
-
194
- If you decide to use `git-format-patch(1)` and
195
- `git-send-email(1)` directly, please be sure to use the
196
- following flags for `git-format-patch(1)`: -C -M -s -n
197
- --subject-prefix='PATCH/puppet'
198
-
199
- * Attaching patches to Redmine
200
-
201
- As a method of last resort you can also directly attach the
202
- output of `git-format-patch(1)`, or `git-diff(1)` to a Redmine
203
- ticket.
204
-
205
- If you are generating the diff outside of Git, please be sure
206
- to generate a unified diff.
207
-
208
- 4. Update the related Redmine ticket.
209
-
210
- If there's a Redmine ticket associated with the change you
211
- submitted, then you should update the ticket to include the
212
- location of your branch, and change the status to "In Topic
213
- Branch Pending Merge", along with any other commentary you may
214
- wish to make.
164
+ You should update the Redmine ticket associated
165
+ with the change you submitted to include the location of your branch
166
+ on the `branch` field of the ticket, and change the status to
167
+ "In Topic Branch Pending Review", along with any other commentary
168
+ you may wish to make.
215
169
 
216
170
  How to track the status of your change after it's been submitted
217
171
  ================================================================
218
172
 
219
- Shortly after opening a pull request on GitHub, there should be an
220
- automatic message sent to the puppet-dev Google Groups mailing list
221
- notifying people of this. This notification is used to let the Puppet
173
+ Shortly after opening a pull request, there should be an automatic
174
+ email sent via GitHub. This notification is used to let the Puppet
222
175
  development community know about your requested change to give them a
223
176
  chance to review, test, and comment on the change(s).
224
177
 
225
- If you submitted your change via manually sending a pull request or
226
- mailing the patches, then we keep track of these using
227
- [patchwork](https://patchwork.puppetlabs.com). When code is merged
228
- into the project it is automatically removed from patchwork, and the
229
- Redmine ticket is manually updated with the commit SHA1. In addition,
230
- the ticket status must be updated by the person who merges the topic
231
- branch to a status of "Merged - Pending Release"
232
-
233
- We do our best to comment on or merge submitted changes within a week.
178
+ We do our best to comment on or merge submitted changes within a about week.
234
179
  However, if there hasn't been any commentary on the pull request or
235
180
  mailed patches, and it hasn't been merged in after a week, then feel
236
181
  free to ask for an update by replying on the mailing list to the
@@ -246,8 +191,6 @@ Additional Resources
246
191
 
247
192
  * [Bug tracker (Redmine)](http://projects.puppetlabs.com)
248
193
 
249
- * [Patchwork](https://patchwork.puppetlabs.com)
250
-
251
194
  * [Contributor License Agreement](https://projects.puppetlabs.com/contributor_licenses/sign)
252
195
 
253
196
  * [General GitHub documentation](http://help.github.com/)
data/README.md CHANGED
@@ -8,6 +8,7 @@ configurations) based on a centralized specification.
8
8
  Documentation (and detailed installation instructions) can be found online at the
9
9
  [Puppet Docs site](http://docs.puppetlabs.com).
10
10
 
11
+
11
12
  Installation
12
13
  ------------
13
14
 
@@ -32,6 +33,13 @@ Generally, you need the following things installed:
32
33
 
33
34
  * Facter => 1.5.1 (available via your package manager or from the [Facter site](http://puppetlabs.com/projects/facter).
34
35
 
36
+ Contributions
37
+ ------
38
+ Please see our [Contibution
39
+ Documents](https://github.com/puppetlabs/puppet/blob/master/CONTRIBUTING.md)
40
+ and our [Developer
41
+ Documentation](https://github.com/puppetlabs/puppet/blob/master/README_DEVELOPER.md).
42
+
35
43
  License
36
44
  -------
37
45
 
data/README_DEVELOPER.md CHANGED
@@ -63,9 +63,7 @@ SyntaxError, invalid multibyte escape as mentioned above.
63
63
  # Windows #
64
64
 
65
65
  If you'd like to run Puppet from source on Windows platforms, the
66
- include `ext/envpuppet.bat` will help. All file paths in the Puppet
67
- code base should use a path separator of / regardless of Windows or
68
- Unix filesystem.
66
+ include `ext/envpuppet.bat` will help.
69
67
 
70
68
  To quickly run Puppet from source, assuming you already have Ruby installed
71
69
  from [rubyinstaller.org](http://rubyinstaller.org).
@@ -88,4 +86,41 @@ on Windows, so use the following rspec exclude filter:
88
86
  This will give you a shared filesystem with your Mac and allow you to run
89
87
  Puppet directly from source without using install.rb or copying files around.
90
88
 
89
+ ## Common Issues ##
90
+
91
+ * Don't assume file paths start with '/', as that is not a valid path on
92
+ Windows. Use Puppet::Util.absolute_path? to validate that a path is fully
93
+ qualified.
94
+
95
+ * Use File.expand_path('/tmp') in tests to generate a fully qualified path
96
+ that is valid on POSIX and Windows. In the latter case, the current working
97
+ directory will be used to expand the path.
98
+
99
+ * Always use binary mode when performing file I/O, unless you explicitly want
100
+ Ruby to translate between unix and dos line endings. For example, opening an
101
+ executable file in text mode will almost certainly corrupt the resulting
102
+ stream, as will occur when using:
103
+
104
+ IO.open(path, 'r') { |f| ... }
105
+ IO.read(path)
106
+
107
+ If in doubt, specify binary mode explicitly:
108
+
109
+ IO.open(path, 'rb')
110
+
111
+ * Don't assume file paths are separated by ':'. Use File::PATH_SEPARATOR
112
+ instead, which is ':' on POSIX and ';' on Windows.
113
+
114
+ * On Windows, File::SEPARATOR is '/', and File::ALT_SEPARATOR is '\'. On
115
+ POSIX systems, File::ALT_SEPARATOR is nil. In general, use '/' as the
116
+ separator as most Windows APIs, e.g. CreateFile, accept both types of
117
+ separators.
118
+
119
+ * Don't use waitpid/waitpid2 if you need the child process' exit code,
120
+ as the child process may exit before it has a chance to open the
121
+ child's HANDLE and retrieve its exit code. Use Puppet::Util.execute.
122
+
123
+ * Don't assume 'C' drive. Use environment variables to look these up:
124
+
125
+ "#{ENV['windir']}/system32/netsh.exe"
91
126
  EOF