<commit_before>## knife-depsolver

Knife plugin that uses Chef Server to calculate cookbook dependencies for a given run_list.

### Install

```
chef gem install knife-depsolver
```

### Usage

Find the depsolver solution for an arbitrary run_list.
Specifying recipes and even cookbook version constraints is allowed.

```
knife depsolver 'cookbook-B,cookbook-A::foo@3.1.4,cookbook-R'
```

Find the depsolver solution for an arbitrary run_list using a specific environment's cookbook version constraints.
Specifying recipes and even cookbook version constraints is allowed.

```
knife depsolver -E production 'cookbook-B,cookbook-A::foo@3.1.4,cookbook-R'
```
<commit_msg>Add feature list to README.md<commit_after>## knife-depsolver

Knife plugin that uses Chef Server to calculate cookbook dependencies for a given run_list.

Some features of knife-depsolver:

1. JSON output for easy parsing
2. API error handling provides very helpful information
3. Accepts cookbook version constraints directly in the run_list
4. Useful information such as environment cookbook version constraints, expanded run_list and elapsed time for depsolver request
5. Ordering of depsolver results is maintained rather than sorted so you see what really gets passed to the chef-client

### Install

```
chef gem install knife-depsolver
```

### Usage

Find the depsolver solution for an arbitrary run_list.
Specifying recipes and even cookbook version constraints is allowed.

```
knife depsolver 'cookbook-B,cookbook-A::foo@3.1.4,cookbook-R'
```

Find the depsolver solution for an arbitrary run_list using a specific environment's cookbook version constraints.
Specifying recipes and even cookbook version constraints is allowed.

```
knife depsolver -E production 'cookbook-B,cookbook-A::foo@3.1.4,cookbook-R'
```

{'fraction_non_alphanumeric': 0.07461024498886415, 'fraction_numerical': 0.009465478841870824, 'mean_word_length': 5.217993079584775, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1130092', 'n_tokens_mistral': 522, 'n_tokens_neox': 499, 'n_words': 210}