CHEF-4850 Close file in Chef::File::Edit after reading contents
Add support for loading a static list of plugin files.

If a file ~/.chef/plugin_manifest.json is present, knife will read a
list of plugins to load from that file rather than scanning all rubygems
for knife plugins, which can take a long time depending on hardware,
number of gems, rubygems version, ruby version, etc.

The format of the plugin_manifest.json file is:

```json
{ "plugins": {
    "knife-ec2": {
      "paths": [
        "/home/alice/.rubymanagerthing/gems/knife-ec2-x.y.z/lib/chef/knife/ec2_server_create.rb",
        "/home/alice/.rubymanagerthing/gems/knife-ec2-x.y.z/lib/chef/knife/ec2_server_delete.rb"
      ]
    }
  }
}
```

This leaves us opportunity in the future to modify the format in
accordance with any behavior changes in knife. For example, if knife
were modified to load commands on-demand, the format could be adapted to
support this (and cache help information so `knife -h` would run
quickly).

In the near-term this should be regarded as an experimental feature, and
users are on their own for managing the content of the file.
Merge branch 'plugin-manifest'

Fixes CHEF-4909
Fix subcommand loader specs for really old rubygems
invoke chef-client as `ruby chef-client` because windows

Windows doesn't shebang, resulting in "BLAH is not recognized as an
internal or external command, operable program or batch file." error.
Bump ffi version to 1.5.0
Remove redundant mime-types version constraint.

Newer versions of rubygems consider this an error.
Temporarily for travis to use rubygems 2.1.x

Fixes https://tickets.opscode.com/browse/CHEF-4916
Merge branch 'rubygems-bundler-ruby18-travis-temp-fix'

Fixes https://tickets.opscode.com/browse/CHEF-4916

This should be reverted when Rubygems 2.2.1 becomes available with this patch:
https://github.com/rubygems/rubygems/commit/f8e0f1d5f67cfc4e1966cc1e2db367aebf8a09e4
Always run `chef-client` via `ruby PATH/TO/chef-client` in tests.

Fixes CHEF-4914

Running `chef-client` directly can result in a "system" `chef-client`
being run (e.g., an omnibus install of chef-client). When testing on
different ruby versions, this can cause segfaults because bundler sets
environment variables that cause C extension gems compiled against a
different ruby ABI to get loaded. For example, a JSON gem compiled
against ruby 1.9 can be loaded into ruby 2.0.
Merge branch 'CHEF-4914'
multiple dep lines no longer supported by bundler

our attempt to let the unix gemspec float with semver ~> 1.2 and to pin
the version exactly for windows (= 1.2.0) is no longer supported and
rake install blows up:

  if rspec-mocks is semantically versioned, use:
    add_development_dependency 'rspec-mocks', '~> 2.13', '>= 2.13.0'
WARNING:  See http://guides.rubygems.org/specification-reference/ for help
rake aborted!
duplicate dependency on mixlib-shellout (= 1.2.0, ~> 1.2), (~> 1.2) use:
    add_runtime_dependency 'mixlib-shellout', '= 1.2.0, ~> 1.2', '~> 1.2'

Tasks: TOP => install => package => gem => pkg/chef-11.10.0.alpha.1-x86-mingw32.gem
(See full trace by running task with --trace)

just remove the line from the windows spec and inherit from the unix spec.
Resolve merge conflict with mixlib-shellout change
Merge pull request #1199 from opscode/adamed/chef-4913

CHEF-4913: ffi 1.3.1 is too low a version when using Ruby 2.0.0 with Windows
Add message expectations for file permission enforcement
Add Ruby 2.1.0 to travis matrix
update man pages to include common options within single list of options
Merge pull request #1161 from deployable/CHEF-4850

CHEF-4850 Close file in Chef::Util::FileEdit after reading contents
CHEF-4734: Stop enforcing group/owner regular expressions

for unix:
  - user/group cannot start with '-', '+' or '~'
  - user/group cannot contain ':', ',' or non-space-whitespace or null byte
  - we already allowed spaces (i don't know why, but it was tested for)
  - this fixes UTF-8 chars as well
windows:
  - AD users can be pulled in via LDAP
add comment