README.md in chef-dk-0.5.0.rc.1 vs README.md in chef-dk-0.5.0

- old
+ new

@@ -85,59 +85,66 @@ executables included with a gem you install will be created in `~/.chefdk/gem/ruby/2.1.0/bin`. You can run these executables with `chef exec`, or use `chef shell-init` to add ChefDK's paths to your environment. Those commands are documented below. -#### `chef verify` -`chef verify` tests the embedded applications. By default it runs a -quick "smoke test" to verify that the embedded applications are -installed correctly and can run basic commands. As an end user this is -probably all you'll ever need, but `verify` can also optionally run unit -and integration tests by supplying the `--unit` and `--integration` -flags, respectively. - -*WARNING:* The integration tests will do dangerous things like start -HTTP servers with access to your filesystem and even create users and -groups if run with sufficient privileges. The tests may also be -sensitive to your machine's configuration. If you choose to run these, -we recommend to only run them on dedicated, isolated hosts (we do this -in our build cluster to verify each build). - ### `chef exec` `chef exec <command>` runs any arbitrary shell command with the PATH environment variable and the ruby environment variables (`GEM_HOME`, `GEM_PATH`, etc.) setup to point at the embedded ChefDK omnibus environment. ### `chef shell-init` `chef shell-init SHELL_NAME` emits shell commands that modify your -environment to make ChefDK your primary ruby. For more information to -help you decide if this is desirable and instructions, see "Using ChefDK -as Your Primary Development Environment" below. +environment to make ChefDK your primary ruby. It supports bash, zsh, +fish and PowerShell (posh). For more information to help you decide if +this is desirable and instructions, see "Using ChefDK as Your Primary +Development Environment" below. ### `chef install` `chef install` reads a `Policyfile.rb` document, which contains a `run_list` and optional cookbook version constraints, finds a set of cookbooks that provide the desired recipes and meet dependency constraints, and emits a `Policyfile.lock.json` describing the expanded run list and locked cookbook set. The `Policyfile.lock.json` can be used to install the cookbooks on another machine. The policy lock can be uploaded to a Chef Server (via the `chef push` command) to apply the expanded run list and locked cookbook set to nodes in your -infrastructure. The Policyfile feature is currently incomplete and of -beta quality; changes to the Chef Server APIs will need to be -implemented before the feature is production-ready. The feature -currently operates in a compatibility mode. See the POLICYFILE_README.md -for further details. +infrastructure. See the POLICYFILE_README.md for further details. ### `chef push` `chef push POLICY_GROUP` uploads a Policyfile.lock.json along with the cookbooks it references to a Chef Server. The policy lock is applied to a `POLICY_GROUP`, which is a set of nodes that share the same run list and cookbook set. This command operates in compatibility mode and has the same caveats as `chef install`. See the POLICYFILE_README.md for further details. +### `chef update` +`chef update` updates a Policyfile.lock.json with the latest cookbooks +from upstream sources. It supports an `--attributes` flag which will +cause only attributes from the Policyfile.rb to be updated. + +### `chef diff` +`chef diff` shows an itemized diff between Policyfile locks. It can +compare Policyfile locks from local disk, git, and/or the Chef Server, +based on the options given. + +#### `chef verify` +`chef verify` tests the embedded applications. By default it runs a +quick "smoke test" to verify that the embedded applications are +installed correctly and can run basic commands. As an end user this is +probably all you'll ever need, but `verify` can also optionally run unit +and integration tests by supplying the `--unit` and `--integration` +flags, respectively. + +*WARNING:* The integration tests will do dangerous things like start +HTTP servers with access to your filesystem and even create users and +groups if run with sufficient privileges. The tests may also be +sensitive to your machine's configuration. If you choose to run these, +we recommend to only run them on dedicated, isolated hosts (we do this +in our build cluster to verify each build). + ### Using ChefDK as Your Primary Development Environment By default, ChefDK only adds a few select applications to your `PATH` and packages them in such a way that they are isolated from any other Ruby development tools you have on your system. If you're happily using @@ -175,10 +182,42 @@ ``` Where `YOUR_SHELL_PROFILE` is `~/.bash_profile` for most bash users, `~/.zshrc` for zsh, and `~/.bashrc` on Ubuntu. +#### Powershell + +You can use `chef shell-init` with PowerShell on Windows. + +To try it in your current session: + +```posh +chef shell-init powershell | Invoke-Expression +``` + +To enable it permanently: + +```posh +"chef shell-init powershell | Invoke-Expression" >> $PROFILE +``` + +#### Fish + +`chef shell-init` also supports fish. + +To try it: + +```fish +eval (chef shell-init fish) +``` + +To permanently enable: + +```fish +echo 'eval (chef shell-init SHELL_NAME)' >> ~/.config/fish/config.fish +``` + ## Uninstallation Instructions ### Mac OS X You can uninstall Chef Development Kit on Mac using below commands: @@ -223,10 +262,10 @@ ``` - - - [Berkshelf]: http://berkshelf.com "Berkshelf" [Chef]: https://www.chef.io "Chef" -[ChefDK]: https://www.chef.io/downloads/chef-dk "Chef Development Kit" +[ChefDK]: https://downloads.chef.io/chef-dk "Chef Development Kit" [Chef Documentation]: http://docs.chef.io "Chef Documentation" [ChefSpec]: http://chefspec.org "ChefSpec" [Foodcritic]: http://foodcritic.io "Foodcritic" [Learn Chef]: http://learn.chef.io "Learn Chef" [Test Kitchen]: http://kitchen.ci "Test Kitchen"