summaryrefslogtreecommitdiff
path: root/docs/dev
diff options
context:
space:
mode:
authorTim Smith <tsmith84@gmail.com>2020-06-23 13:21:11 -0700
committerTim Smith <tsmith84@gmail.com>2020-06-23 13:23:35 -0700
commitf0491d4bd2ced637bdae3736633acf5aadacbce1 (patch)
tree8ebb4cb0a5cadd24ac6ec51396c241faf1df1194 /docs/dev
parent8b6bea70fe55d466d3ba41e87d799a9b18837ba2 (diff)
downloadchef-f0491d4bd2ced637bdae3736633acf5aadacbce1.tar.gz
Pull in misc docs / comment updates from master
This just makes the diff easier Signed-off-by: Tim Smith <tsmith@chef.io>
Diffstat (limited to 'docs/dev')
-rw-r--r--docs/dev/design_documents/action_collection.md2
-rw-r--r--docs/dev/design_documents/bootstrap_with_train.md6
-rw-r--r--docs/dev/design_documents/data_collector.md4
-rw-r--r--docs/dev/design_documents/how_chef_is_tested_and_built.md2
-rw-r--r--docs/dev/design_documents/resource_file_content_verification.md2
-rwxr-xr-xdocs/dev/design_documents/resource_guard_interpreters.md4
-rw-r--r--docs/dev/design_documents/resource_load_and_converge_methods.md1
-rw-r--r--docs/dev/how_to/branching_and_backporting.md6
-rw-r--r--docs/dev/how_to/building_and_installing.md5
-rw-r--r--docs/dev/how_to/bumping_minor_or_major_versions.md7
-rw-r--r--docs/dev/how_to/bumping_the_major_version.md51
-rw-r--r--docs/dev/how_to/releasing_chef_infra.md1
-rw-r--r--docs/dev/how_to/updating_dependencies.md4
-rw-r--r--docs/dev/policy/release_and_support_schedule.md2
14 files changed, 74 insertions, 23 deletions
diff --git a/docs/dev/design_documents/action_collection.md b/docs/dev/design_documents/action_collection.md
index a0735f65fb..df7dd46a84 100644
--- a/docs/dev/design_documents/action_collection.md
+++ b/docs/dev/design_documents/action_collection.md
@@ -53,7 +53,7 @@ it is created, so registration may be accomplished easily:
If one of the prior methods is not used to register for the Action Collection, then the Action Collection will disable itself and will not compile
the Action Collection in order to not waste the memory overhead of tracking the actions during the run. The Data Collector takes advantage of this
since if the run start message from the Data Collector is refused by the server, then the Data Collector disables itself, and then does not register
-with the Action Collection, which would disable the Action Collection. This makes use of the delayed hooking through the `action_collection_regsitration`
+with the Action Collection, which would disable the Action Collection. This makes use of the delayed hooking through the `action_collection_registration`
so that the Data Collector never registers itself after it is disabled.
## Searching
diff --git a/docs/dev/design_documents/bootstrap_with_train.md b/docs/dev/design_documents/bootstrap_with_train.md
index be4fdeb3ec..3a83568d21 100644
--- a/docs/dev/design_documents/bootstrap_with_train.md
+++ b/docs/dev/design_documents/bootstrap_with_train.md
@@ -8,7 +8,7 @@ Update `knife bootstrap` to use `train` as its backend via `chef-core`, and inte
I want to be able to bootstrap a system without logging secure data on that system
so that chef-client's keys are not exposed to anyone who can read the logs.
- As a Chef User who adminsters Windows nodes,
+ As a Chef User who administers Windows nodes,
I want to be able to bootstrap a system using the core Chef package
so that I don't have extra things to download first.
@@ -51,7 +51,7 @@ remains largely unchanged.
We will also remove the following obsolete or unsupported behaviors:
-* `--prelease` flag - Chef hasn't been pre-released in quite some time.
+* `--prerelease` flag - Chef hasn't been pre-released in quite some time.
* `--install-as-service` - For many years we have suggested users not run chef-client as a service due to memory leaks in long running Ruby processes.
* `--kerberos-keytab-file` - this is not implemented in the WinRM gem we use, and so was
passed through to no effect.
@@ -126,7 +126,7 @@ Tests must ensure that options resolve correctly from the CLI, knife configurati
#### Validation
-Existing windows bootstrap validation checks should be preserved, unless they are superceded by related
+Existing windows bootstrap validation checks should be preserved, unless they are superseded by related
validations for ssh bootstrap.
#### Context
diff --git a/docs/dev/design_documents/data_collector.md b/docs/dev/design_documents/data_collector.md
index cb2b0cb406..889306e026 100644
--- a/docs/dev/design_documents/data_collector.md
+++ b/docs/dev/design_documents/data_collector.md
@@ -190,7 +190,7 @@ The Run Start Schema will be used by Chef to notify the data collection server a
"description": "Data Collector - Runs run_start schema",
"properties": {
"chef_server_fqdn": {
- "description": "It is the FQDN of the chef_server against whch current reporting instance runs",
+ "description": "It is the FQDN of the chef_server against which current reporting instance runs",
"type": "string"
},
"entity_uuid": {
@@ -266,7 +266,7 @@ The Run End Schema will be used by Chef Client to notify the data collection ser
"description": "Data Collector - Runs run_converge schema",
"properties": {
"chef_server_fqdn": {
- "description": "It is the FQDN of the chef_server against whch current reporting instance runs",
+ "description": "It is the FQDN of the chef_server against which current reporting instance runs",
"type": "string"
},
"end_time": {
diff --git a/docs/dev/design_documents/how_chef_is_tested_and_built.md b/docs/dev/design_documents/how_chef_is_tested_and_built.md
index 094dd68caa..fda2ac6156 100644
--- a/docs/dev/design_documents/how_chef_is_tested_and_built.md
+++ b/docs/dev/design_documents/how_chef_is_tested_and_built.md
@@ -32,7 +32,7 @@ Every commit that we merge into Chef Infra should be ready to release. In order
Once the version has been incremented, Expeditor will begin a build matrix in our internal Buildkite pipeline. In Buildkite, we build omnibus-based system packages of Chef Infra for multiple platforms, distros, and architectures. Each of the platforms we build are those which will eventually be available on our downloads site if this build is successful and later promoted. Upon completion, builds are promoted to the `unstable` channel and are available to any system supporting our Omnitruck API (Test Kitchen, mixlib-install, etc).
-Once the builds complete, Buildkite will move to the test phase where each of these builds will be verified on all the platforms that Chef officially supports. For many build artifacts, this means the artifact tests on multiple versions of the same platform. For example, Chef is built on Windows 2012 R2, yet tests are run on 2008, 2012, 2012 R2, and 2016 to ensure full compatibility. In total, this phase includes nearly three dozen test nodes. Assuming all tests pass, the build will be promoted to the `current` channel, which is available on the downloads site, in addition to being available via the Omnitruck API.
+Once the builds complete, Buildkite will move to the test phase where each of these builds will be verified on all the platforms that Chef officially supports. For many build artifacts, this means the artifact tests on multiple versions of the same platform. For example, Chef is built on Windows 2012 R2, yet tests are run on 2012, 2012 R2, and 2016 to ensure full compatibility. In total, this phase includes nearly three dozen test nodes. Assuming all tests pass, the build will be promoted to the `current` channel, which is available on the downloads site, in addition to being available via the Omnitruck API.
## Releasing Chef
diff --git a/docs/dev/design_documents/resource_file_content_verification.md b/docs/dev/design_documents/resource_file_content_verification.md
index 0ddcfeb439..f813e57c72 100644
--- a/docs/dev/design_documents/resource_file_content_verification.md
+++ b/docs/dev/design_documents/resource_file_content_verification.md
@@ -20,7 +20,7 @@ disk as appropriate. If the command's return code indicates failure,
the provider will raise an error.
The path to the temporary file with the proposed content will be
-available by using Ruby's sprinf formatting:
+available by using Ruby's sprintf formatting:
"%{path}"
diff --git a/docs/dev/design_documents/resource_guard_interpreters.md b/docs/dev/design_documents/resource_guard_interpreters.md
index 7f4c2fb9b6..37db4e761a 100755
--- a/docs/dev/design_documents/resource_guard_interpreters.md
+++ b/docs/dev/design_documents/resource_guard_interpreters.md
@@ -208,7 +208,7 @@ do
# architecture attribute for the parent resource which powershell_script
# guard interpreter resources will inherit from the enclosing resource
powershell_script "set i386 execution policy" do
- guard_interpteter :powershell_script
+ guard_interpreter :powershell_script
architecture :i386
code "set-executionpolicy remotesigned"
not_if "(get-executionpolicy -scope localmachine) -eq 'remotesigned'"
@@ -439,7 +439,7 @@ CP/M heritage even in 2014, and as Windows admins turned to PowerShell or were
nudged toward it (often by Microsoft itself), it was asking a lot for Chef users to know
how to use legacy `cmd.exe` to accomplish tasks. Most likely, users of `powershell_script`
would choose to run powershell.exe in the `not_if` and `only_if` blocks. Since
-that was the common case for `powersell_script` users, the guards should have
+that was the common case for `powershell_script` users, the guards should have
had some way to allow that, or to
provide guard execution via PowerShell in a more natural fashion.
diff --git a/docs/dev/design_documents/resource_load_and_converge_methods.md b/docs/dev/design_documents/resource_load_and_converge_methods.md
index b7046d1892..00b074578b 100644
--- a/docs/dev/design_documents/resource_load_and_converge_methods.md
+++ b/docs/dev/design_documents/resource_load_and_converge_methods.md
@@ -30,7 +30,6 @@ When the resource writer defines `load_current_value` on the resource class, it
2. Copy all non-desired-state values from the desired resource into the new instance.
3. Call `load_current_value` on the new instance.
-
```ruby
class File < Chef::Resource
property :path, name_attribute: true
diff --git a/docs/dev/how_to/branching_and_backporting.md b/docs/dev/how_to/branching_and_backporting.md
index b2b90edb50..8929c926e9 100644
--- a/docs/dev/how_to/branching_and_backporting.md
+++ b/docs/dev/how_to/branching_and_backporting.md
@@ -2,7 +2,7 @@
## Branch Structure
-We develop and ship the current release of Chef off the master branch of this repository. Our goal is that `master` should always be in a shipable state. Previous stable releases of Chef are developed on their own branches named by the major version (ex: chef-14 or chef-13). We do not perform direct development on these stable branches, except to resolve build failures. Instead, we backport fixes from our master branch to these stable branches. Stable branches receive critical bugfixes and security releases, and stable Chef releases are made as necessary for security purposes.
+We develop and ship the current release of Chef off the master branch of this repository. Our goal is that `master` should always be in a shippable state. Previous stable releases of Chef are developed on their own branches named by the major version (ex: chef-14 or chef-13). We do not perform direct development on these stable branches, except to resolve build failures. Instead, we backport fixes from our master branch to these stable branches. Stable branches receive critical bugfixes and security releases, and stable Chef releases are made as necessary for security purposes.
## Backporting Fixes to Stable Releases
@@ -12,10 +12,10 @@ If there is a critical fix that you believe should be backported from master to
3. Inspect the Git history and find the `SHA`(s) associated with the fix.
4. Backport the fix to a branch via cherry-pick:
1. Check out the stable release branch: `git checkout chef-14`
- 2. Create a branch for your backport: `git checkout -b my_great_bug_packport`
+ 2. Create a branch for your backport: `git checkout -b my_great_bug_backport`
3. Cherry Pick the SHA with the fix: `git cherry-pick SHA`
4. Address any conflicts (if necessary)
5. Push the new branch to your origin: `git push origin`
5. Open a PR for your backport
1. The PR title should be `Backport: ORIGINAL_PR_TEXT`
- 2. The description should link to the original PR and include a description of why it needs to be backported \ No newline at end of file
+ 2. The description should link to the original PR and include a description of why it needs to be backported
diff --git a/docs/dev/how_to/building_and_installing.md b/docs/dev/how_to/building_and_installing.md
index e613de459a..9de9922108 100644
--- a/docs/dev/how_to/building_and_installing.md
+++ b/docs/dev/how_to/building_and_installing.md
@@ -1,8 +1,9 @@
# Building and Installing
Chef Infra can be built and installed in two distinct ways:
- - A gem built from this repository and installed into your own Ruby installation
- - A system native package containing its own Ruby built using our Omnibus packaging system
+
+- A gem built from this repository and installed into your own Ruby installation
+- A system native package containing its own Ruby built using our Omnibus packaging system
**NOTE:** As an end user, please download the [Chef Infra package](https://downloads.chef.io/chef) for managing systems, or the [Chef Workstation package](https://downloads.chef.io/chef-workstation) for authoring Chef cookbooks and administering your Chef infrastructure.
diff --git a/docs/dev/how_to/bumping_minor_or_major_versions.md b/docs/dev/how_to/bumping_minor_or_major_versions.md
index ebcf4e4695..79cfa9075e 100644
--- a/docs/dev/how_to/bumping_minor_or_major_versions.md
+++ b/docs/dev/how_to/bumping_minor_or_major_versions.md
@@ -2,14 +2,15 @@
## When to Bump Versions
-
After performing the monthly minor release of Chef, we should wait several days, and then bump the version for the next month's release. Why wait? We don't want to bump the version until we are sure we do not need to perform an emergency release for a regression. Once we're fairly confident we won't be performing a regression release, we want all new builds for the current channel to have the next month's version. This makes it very clear what version of Chef users are testing within the current channel.
Bumping for the yearly major release is a bit different. We can bump for the new major release once we create a stable branch for the current major version number. Once this branch and version bump occurs, all development on master will be for the upcoming major release, and anything going into the stable release will need to be backported. See [Branching and Backporting](branching_and_backporting.md) for more information on how we branch and backport to stable.
+See [Bumping The Major Version](bumping_the_major_version.md) for the major version bump process.
+
### How to Bump
Chef's Expeditor tool includes functionality to bump the minor or major version of the product. By using Expeditor to bump versions, we can perform a bump without directly editing the version files. A version bump is performed when a PR is merged with either of these two labels applied:
- - Expeditor: Bump Version Minor
- - Expeditor: Bump Version Major
+- Expeditor: Bump Version Minor
+- Expeditor: Bump Version Major
diff --git a/docs/dev/how_to/bumping_the_major_version.md b/docs/dev/how_to/bumping_the_major_version.md
new file mode 100644
index 0000000000..ff93f5bcf6
--- /dev/null
+++ b/docs/dev/how_to/bumping_the_major_version.md
@@ -0,0 +1,51 @@
+# Bumping Major Version Number
+
+This document outlines the process for bumping the major version of Chef Infra Client for the yearly release.
+
+## Preparing Ohai
+
+Chef consumes Ohai from GitHub as both a runtime dependency and a testing dependency for Test Kitchen validations in Buildkite. Ohai's version is tightly coupled to that of Chef Infra Client so the first step in bumping the major release in the chef/chef repo is to bump the major version of Ohai.
+
+### Create a new stable branch of Ohai
+
+On your local machine fork the current master branch to a new stable branch. For example: `git checkout -b 15-stable`. You'll then want to edit the Expeditor config.yml file to update the branch configs like this:
+
+https://github.com/chef/ohai/commit/ad208165619425dd7886b2de3f168b49ded25146
+
+With the expeditor config complete push the branch `git push --set-upstream origin 15-stable`
+
+### Bump Ohai master to the new major version
+
+Create a PR which:
+
+- Edits the `VERSION` file in the root of the repository to the new major release
+- Updates the `chef-config` dependency to allow for the new major release of Chef Infra in `ohai.gemspec`
+
+## Fork Chef master to a stable branch
+
+Before bumping the major version of Chef Infra we want to fork off the current master to a new stable branch, which will be used to build hotfix releases. We support the N-1 version of Chef Infra Client for a year after the release of a new major version. For example Chef Infra Client 16 was released in April 2020, at which point Chef Infra Client 15 became the N-1 release. Chef Infra Client 15 will then be maintained with critical bug and security fixes until April 2021.
+
+On your local machine fork the current master branch to a new stable branch. For example: `git checkout -b chef-15` and `git push --set-upstream origin chef-15`, which can then be pushed up to GitHub.
+
+### Create a branch to fixup your new stable branch for release
+
+Once you've forked to a new stable branch such as `chef-15` you'll want to create a new branch so you can build a PR, which will get this branch ready for release:
+
+- In ./expeditor/config.yml add the version_constraint for the new branch, update the version_constraint for master to match the new major version, and remove all the update_dep.sh subscriptions which don't work against stable branches.
+- In readme.md update the buildkite badge to point to the new stable branch image and link instead of pointing to master.
+- In kitchen-tests/Gemfile update the Ohai branch to point to the new Ohai stable
+- In kitchen-tests/kitchen.yml update chef_version to be your new stable version and not current. Ex: 15
+- In tasks/bin/run_external_test update the ohai branch to point to your new stable ohai branch
+- In Gemfile set ohai to pull from the ohai stable branch
+- Run `rake dependencies:update`
+
+Example PR for Chef 15: https://github.com/chef/chef/pull/9236
+
+## Bump master for the new major release
+
+Create a PR that performs the following:
+
+- Update the version in the VERSION file
+- Update chef.gemspec to point to the new ohai major release
+- Update .expeditor/config.yml to include the new version_constraints you setup on your stable branch and an updated project alias
+- run `rake dependencies:update`
diff --git a/docs/dev/how_to/releasing_chef_infra.md b/docs/dev/how_to/releasing_chef_infra.md
index 8ff2165351..68070c420b 100644
--- a/docs/dev/how_to/releasing_chef_infra.md
+++ b/docs/dev/how_to/releasing_chef_infra.md
@@ -58,6 +58,7 @@ Many of our users consume Chef via Homebrew using our casks. Expeditor will crea
Many Windows users consume our packages via Chocolatey. Make sure to update the various version strings and sha checksums here: https://github.com/chef/chocolatey-packages
Once this is updated, you'll need to build / push the artifact to the Chocolatey site from a Windows host:
+
1. `choco pack .\chef-client\chef-client.nuspec`
2. `choco push .\chef-client.15.1.9.nupkg --key API_KEY_HERE`
diff --git a/docs/dev/how_to/updating_dependencies.md b/docs/dev/how_to/updating_dependencies.md
index 995bf4aabf..82bfc346bb 100644
--- a/docs/dev/how_to/updating_dependencies.md
+++ b/docs/dev/how_to/updating_dependencies.md
@@ -9,7 +9,5 @@ If you want to change our constraints (change which packages and versions we acc
In order to update everything, run `rake dependencies`. Note that the [Gemfile.lock](Gemfile.lock) pins Windows platform gems, and to fully regenerate the lockfile, you must use the following commands, or run `rake dependencies:update_gemfile_lock`:
```bash
-bundle lock --update --add-platform ruby
-bundle lock --update --add-platform x64-mingw32
-bundle lock --update --add-platform x86-mingw32
+bundle lock --update --add-platform ruby x64-mingw32 x86-mingw32
```
diff --git a/docs/dev/policy/release_and_support_schedule.md b/docs/dev/policy/release_and_support_schedule.md
index 9feb9c0f1d..2f2c378448 100644
--- a/docs/dev/policy/release_and_support_schedule.md
+++ b/docs/dev/policy/release_and_support_schedule.md
@@ -22,7 +22,7 @@ When incrementing a version, the following conditions will apply:
### Auto-bumping PATCH versions
-Chef projects are managed by our Expeditor release tooling application. This application is executed each time a GitHubb Pull Request is merged and incrementwss the patch version of the software before running the change through our internal CI/CD pipeline. As not all builds will make it successfully through the CI/CD pipeline, the versions available for public consumption might have gaps (e.g. 1.2.1, 1.2.10, 1.2.11, 1.2.12, 1.2.20), but all verisons have been built and tested.
+Chef projects are managed by our Expeditor release tooling application. This application is executed each time a GitHub Pull Request is merged and increments the patch version of the software before running the change through our internal CI/CD pipeline. As not all builds will make it successfully through the CI/CD pipeline, the versions available for public consumption might have gaps (e.g. 1.2.1, 1.2.10, 1.2.11, 1.2.12, 1.2.20), but all versions have been built and tested.
## Support Schedule