<commit_before># Taste Tester

[![TravisCI](https://travis-ci.org/facebook/taste-tester.svg)](http://travis-ci.org/facebook/taste-tester)
[![CircleCI](https://circleci.com/gh/facebook/taste-tester.svg?style=svg)](https://circleci.com/gh/facebook/taste-tester)

## Intro
Ohai!

Welcome to Taste Tester, software to manage a chef-zero instance and use it to
test changes on production servers.

At its core, Taste Tester starts up a chef-zero server on localhost, uploads a
repository to it, ssh's to a remote server and points its configs to your new
chef-zero instance.

Further, it keeps track of where in git you were when that happened so future
uploads will do the right thing, even as you switch branches.

Taste Tester can be controlled via a variety of config-file options, and can be
further customized by writing a plugin.

## Synopsis

Typical usage is:

```text
vi cookbooks/...             # Make your changes and commit locally
taste-tester test -s [host]  # Put host in Taste Tester mode
ssh root@[host]              # Log in to host
  # Run chef and watch it break
vi cookbooks/...             # Fix your cookbooks
taste-tester upload          # Upload the diff
ssh root@[host]
  # Run chef and watch it succeed
<Verify your changes were actually applied as intended!>
taste-tester untest [host]   # Put host back in production
                             #   (optional - will revert itself after 1 hour)
```

See the help for futher information.

## Prerequisites

* Taste Tester assumes that `/etc/chef/client.rb` and `/etc/chef/client.pem` on your
servers is a symlink and that your real config is `/etc/chef/client-prod.rb` and
`/etc/chef/client-prod.pem`, respectively.

* Taste Tester assumes that it's generally safe to "go back" to production. I.e.
We set things up so you can set a cronjob to un-taste-test a server after the
desired amount of time, which means it must be (relatively) safe to revert
back.

* Taste Tester assumes you use a setup similar to grocery-delivery in
production. Specifically that you don't use versions or environments.

* Taste Tester assumes you have password-less SSH authentication to the hosts
you want to test on, i.e. SSH public/private keys, SSH certificates, Kerberos<commit_msg>docs: fix typo (#114)<commit_after># Taste Tester

[![TravisCI](https://travis-ci.org/facebook/taste-tester.svg)](http://travis-ci.org/facebook/taste-tester)
[![CircleCI](https://circleci.com/gh/facebook/taste-tester.svg?style=svg)](https://circleci.com/gh/facebook/taste-tester)

## Intro
Ohai!

Welcome to Taste Tester, software to manage a chef-zero instance and use it to
test changes on production servers.

At its core, Taste Tester starts up a chef-zero server on localhost, uploads a
repository to it, ssh's to a remote server and points its configs to your new
chef-zero instance.

Further, it keeps track of where in git you were when that happened so future
uploads will do the right thing, even as you switch branches.

Taste Tester can be controlled via a variety of config-file options, and can be
further customized by writing a plugin.

## Synopsis

Typical usage is:

```text
vi cookbooks/...             # Make your changes and commit locally
taste-tester test -s [host]  # Put host in Taste Tester mode
ssh root@[host]              # Log in to host
  # Run chef and watch it break
vi cookbooks/...             # Fix your cookbooks
taste-tester upload          # Upload the diff
ssh root@[host]
  # Run chef and watch it succeed
<Verify your changes were actually applied as intended!>
taste-tester untest [host]   # Put host back in production
                             #   (optional - will revert itself after 1 hour)
```

See the help for further information.

## Prerequisites

* Taste Tester assumes that `/etc/chef/client.rb` and `/etc/chef/client.pem` on your
servers is a symlink and that your real config is `/etc/chef/client-prod.rb` and
`/etc/chef/client-prod.pem`, respectively.

* Taste Tester assumes that it's generally safe to "go back" to production. I.e.
We set things up so you can set a cronjob to un-taste-test a server after the
desired amount of time, which means it must be (relatively) safe to revert
back.

* Taste Tester assumes you use a setup similar to grocery-delivery in
production. Specifically that you don't use versions or environments.

* Taste Tester assumes you have password-less SSH authentication to the hosts
you want to test on, i.e. SSH public/private keys, SSH certificates, Kerberos
{'fraction_non_alphanumeric': 0.08149632598530394, 'fraction_numerical': 0.00111333778668448, 'mean_word_length': 3.5191146881287727, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1901608', 'n_tokens_mistral': 1364, 'n_tokens_neox': 1317, 'n_words': 592}