<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>chef/README.rdoc</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,83 +1,125 @@
-= chef
+= Chef
 
-* http://www.opscode.com/chef
+= DESCRIPTION:
 
-== DESCRIPTION:
+Chef is a configuration management tool designed to bring automation to your entire infrastructure. 
 
-Chef is a systems management framework masquerading as a configuration management tool.
+The Chef Wiki is the definitive source of user documentation. 
 
-I'm in ur netwerk, cookin up yer servers. :)
+* http://wiki.opscode.com/display/chef/Home
 
-== REQUIREMENTS:
+This README focuses on developers who want to modify Chef source code. For users who just want to run the latest and greatest Chef development version in their environment, see:
 
-chef:
+* http://wiki.opscode.com/display/chef/Installing+Chef+from+HEAD
 
-*  ruby-openid  
-*  json  
-*  erubis  
-*  extlib  
-*  stomp  
-*  ohai  
+= DEVELOPMENT:
 
-chef-server and the chefserverslice (merb slice), same requires as chef above, plus:
+Before working on the code, if you plan to contribute your changes, you need to read the Opscode Contributing document.
 
-*  stompserver 
-*  ferret 
-*  merb-core 
-*  merb-haml 
-*  mongrel 
-*  haml
-*  ruby-openid 
-*  syntax
+* http://wiki.opscode.com/display/opscode/Contributing
 
-Interim Note:
+You will also need to set up the repository with the appropriate branches. We document the process on the Chef Wiki.
 
-Once the {chef,chef-server,chefserverslice}.gem set is installed, do the following:
+* http://wiki.opscode.com/display/opscode/Working+with+Git
 
-     &gt; cd /Library/Ruby/Gems/1.8/gems/chef-server&lt;xxx&gt; # or wherever your gems land
-     &gt; sudo rake slices:chefserverslice:install
+Once your repository is set up, you can start working on the code. We do use BDD/TDD with RSpec and Cucumber, so you'll need to get a development environment running.
 
-This installs the chefserverslice into the chef-server merb application
+= ENVIRONMENT:
 
-External Servers:
+In order to have a development environment where changes to the Chef code can be tested, we'll need to install a few things after setting up the Git repository.
 
-* stompserver (for easy stomp mq testing)
+== Requirements:
+
+Install these via your platform's preferred method; for example apt, yum, ports, emerge, etc.
+
+* Git
 * CouchDB
+* libxml2 development package (for webrat)
+* libxslt develoment package (for webrat)
+
+Install the following RubyGems.
+
+* ohai
+* rake
+* rspec
+* cucumber
+* webrat
+* merb-core
+* roman-merb_cucumber
+
+Ohai is also by Opscode and available on GitHub, http://github.com/opscode/ohai/tree/master.
+
+roman-merb_cucumber is available from GitHub:
+
+  gem install --source http://gems.github.com/ roman-merb_cucumber
+
+== Starting the Environment:
+
+Once everything is installed, run the dev:features rake task. Since the features do integration testing, root access is required.
+
+  sudo rake dev:features
 
-== INSTALL:
+The dev:features task:
 
-Install all of the above.  To fire up a develpment environment, do the following:
+* Installs chef, chef-server, chef-server-slice gems. It will fail if required gems above are missing.
+* Starts chef-server on ports 4000 and 4001.
+* Starts chef-indexer.
+* Starts CouchDB on port 5984.
+* Starts the stompserver on port 61613.
 
-  * Start CouchDB with 'couchdb'
-  * Start stompserver with 'stompserver' 
-  * Start chef-indexer with:
+You'll know its running when you see:
 
-    chef-indexer -l debug 
+   ~ Activating slice 'ChefServerSlice' ...
+  merb : worker (port 4000) ~ Starting Mongrel at port 4000
+  merb : worker (port 4000) ~ Successfully bound to port 4000
+  merb : worker (port 4001) ~ Starting Mongrel at port 4001
+  merb : worker (port 4001) ~ Successfully bound to port 4001
 
-  * Start chef-server:
+You'll want to leave this terminal running the dev environment.
 
-    chef-server -N -c 2
+== Web Interface:
 
-  * Test run chef to begin node registration:
+With the dev environment running, you can now access the web interface via http://localhost:4000/. Supply an OpenID to log in.
 
-    sudo ./bin/chef-client 
+== Spec testing:
 
-  * Validate the node registration:
+We use RSpec for unit/spec tests.
 
-    Visit http://localhost:4000
-      Login, enter an openid URL (see http://openid.net/get/)
-      Registrations, click Validate
+  rake spec
 
-  * Test run chef with:
+This doesn't actually use the development environment, because it does the testing on all the Chef internals. For integration/usage testing, we use Cucumber features.
 
-    chef-client 
+== Integration testing:
 
-== LICENSE:
+We test integration with Cucumber. The available feature tests are rake tasks:
+
+  rake features                            # Run Features with Cucumber
+  rake features:api                        # Run Features with Cucumber
+  rake features:client                     # Run Features with Cucumber
+  rake features:provider:package:macports  # Run Features with Cucumber
+  rake features:provider:remote_file       # Run Features with Cucumber
+  rake features:search                     # Run Features with Cucumber
+
+= LINKS:
+
+Source:
+
+* http://github.com/opscode/chef/tree/master
+
+Tickets/Issues:
+
+* http://tickets.opscode.com/
+
+Documentation:
+
+* http://wiki.opscode.com/display/chef/Home/
+
+= LICENSE:
 
 Chef - A configuration management system
 
 Author:: Adam Jacob (&lt;adam@opscode.com&gt;)
-Copyright:: Copyright (c) 2008 Opscode, Inc.
+Copyright:: Copyright (c) 2008, 2009 Opscode, Inc.
 License:: Apache License, Version 2.0
 
 Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
@@ -91,4 +133,3 @@ distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-</diff>
      <filename>chef-server-slice/README.rdoc</filename>
    </modified>
    <modified>
      <diff>@@ -1,83 +1,125 @@
-= chef
+= Chef
 
-* http://www.opscode.com/chef
+= DESCRIPTION:
 
-== DESCRIPTION:
+Chef is a configuration management tool designed to bring automation to your entire infrastructure. 
 
-Chef is a systems management framework masquerading as a configuration management tool.
+The Chef Wiki is the definitive source of user documentation. 
 
-I'm in ur netwerk, cookin up yer servers. :)
+* http://wiki.opscode.com/display/chef/Home
 
-== REQUIREMENTS:
+This README focuses on developers who want to modify Chef source code. For users who just want to run the latest and greatest Chef development version in their environment, see:
 
-chef:
+* http://wiki.opscode.com/display/chef/Installing+Chef+from+HEAD
 
-*  ruby-openid  
-*  json  
-*  erubis  
-*  extlib  
-*  stomp  
-*  ohai  
+= DEVELOPMENT:
 
-chef-server and the chefserverslice (merb slice), same requires as chef above, plus:
+Before working on the code, if you plan to contribute your changes, you need to read the Opscode Contributing document.
 
-*  stompserver 
-*  ferret 
-*  merb-core 
-*  merb-haml 
-*  mongrel 
-*  haml
-*  ruby-openid 
-*  syntax
+* http://wiki.opscode.com/display/opscode/Contributing
 
-Interim Note:
+You will also need to set up the repository with the appropriate branches. We document the process on the Chef Wiki.
 
-Once the {chef,chef-server,chefserverslice}.gem set is installed, do the following:
+* http://wiki.opscode.com/display/opscode/Working+with+Git
 
-     &gt; cd /Library/Ruby/Gems/1.8/gems/chef-server&lt;xxx&gt; # or wherever your gems land
-     &gt; sudo rake slices:chefserverslice:install
+Once your repository is set up, you can start working on the code. We do use BDD/TDD with RSpec and Cucumber, so you'll need to get a development environment running.
 
-This installs the chefserverslice into the chef-server merb application
+= ENVIRONMENT:
 
-External Servers:
+In order to have a development environment where changes to the Chef code can be tested, we'll need to install a few things after setting up the Git repository.
 
-* stompserver (for easy stomp mq testing)
+== Requirements:
+
+Install these via your platform's preferred method; for example apt, yum, ports, emerge, etc.
+
+* Git
 * CouchDB
+* libxml2 development package (for webrat)
+* libxslt develoment package (for webrat)
+
+Install the following RubyGems.
+
+* ohai
+* rake
+* rspec
+* cucumber
+* webrat
+* merb-core
+* roman-merb_cucumber
+
+Ohai is also by Opscode and available on GitHub, http://github.com/opscode/ohai/tree/master.
+
+roman-merb_cucumber is available from GitHub:
+
+  gem install --source http://gems.github.com/ roman-merb_cucumber
+
+== Starting the Environment:
+
+Once everything is installed, run the dev:features rake task. Since the features do integration testing, root access is required.
+
+  sudo rake dev:features
 
-== INSTALL:
+The dev:features task:
 
-Install all of the above.  To fire up a develpment environment, do the following:
+* Installs chef, chef-server, chef-server-slice gems. It will fail if required gems above are missing.
+* Starts chef-server on ports 4000 and 4001.
+* Starts chef-indexer.
+* Starts CouchDB on port 5984.
+* Starts the stompserver on port 61613.
 
-  * Start CouchDB with 'couchdb'
-  * Start stompserver with 'stompserver' 
-  * Start chef-indexer with:
+You'll know its running when you see:
 
-    chef-indexer -l debug 
+   ~ Activating slice 'ChefServerSlice' ...
+  merb : worker (port 4000) ~ Starting Mongrel at port 4000
+  merb : worker (port 4000) ~ Successfully bound to port 4000
+  merb : worker (port 4001) ~ Starting Mongrel at port 4001
+  merb : worker (port 4001) ~ Successfully bound to port 4001
 
-  * Start chef-server:
+You'll want to leave this terminal running the dev environment.
 
-    chef-server -N -c 2
+== Web Interface:
 
-  * Test run chef to begin node registration:
+With the dev environment running, you can now access the web interface via http://localhost:4000/. Supply an OpenID to log in.
 
-    sudo ./bin/chef-client 
+== Spec testing:
 
-  * Validate the node registration:
+We use RSpec for unit/spec tests.
 
-    Visit http://localhost:4000
-      Login, enter an openid URL (see http://openid.net/get/)
-      Registrations, click Validate
+  rake spec
 
-  * Test run chef with:
+This doesn't actually use the development environment, because it does the testing on all the Chef internals. For integration/usage testing, we use Cucumber features.
 
-    chef-client 
+== Integration testing:
 
-== LICENSE:
+We test integration with Cucumber. The available feature tests are rake tasks:
+
+  rake features                            # Run Features with Cucumber
+  rake features:api                        # Run Features with Cucumber
+  rake features:client                     # Run Features with Cucumber
+  rake features:provider:package:macports  # Run Features with Cucumber
+  rake features:provider:remote_file       # Run Features with Cucumber
+  rake features:search                     # Run Features with Cucumber
+
+= LINKS:
+
+Source:
+
+* http://github.com/opscode/chef/tree/master
+
+Tickets/Issues:
+
+* http://tickets.opscode.com/
+
+Documentation:
+
+* http://wiki.opscode.com/display/chef/Home/
+
+= LICENSE:
 
 Chef - A configuration management system
 
 Author:: Adam Jacob (&lt;adam@opscode.com&gt;)
-Copyright:: Copyright (c) 2008 Opscode, Inc.
+Copyright:: Copyright (c) 2008, 2009 Opscode, Inc.
 License:: Apache License, Version 2.0
 
 Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
@@ -91,4 +133,3 @@ distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-</diff>
      <filename>chef-server/README.rdoc</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>chef/README.txt</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>9788ab95192c6919a2941160365cc758d42e79cb</id>
    </parent>
  </parents>
  <author>
    <name>jtimberman</name>
    <email>joshua@opscode.com</email>
  </author>
  <url>http://github.com/joewilliams/chef/commit/4dd0215dec8b3f0feec7f57886ae5f0677b8d1f2</url>
  <id>4dd0215dec8b3f0feec7f57886ae5f0677b8d1f2</id>
  <committed-date>2009-06-25T16:43:17-07:00</committed-date>
  <authored-date>2009-06-25T16:43:17-07:00</authored-date>
  <message>update chef* subdir README's to match.</message>
  <tree>285e2b6255ded8b594e3f5c9505e8847cb648995</tree>
  <committer>
    <name>jtimberman</name>
    <email>joshua@opscode.com</email>
  </committer>
</commit>
