Bootstrap a new Chef cookbook in less than a minute.
- Dependency management with Bundler and Berkshelf.
- Rake, Thor, and Guard tasks for included tools.
- Cookbook publishing with Stove.
- Documentation generation with YARD and knife-cookbook-doc.
- Linting with RuboCop and Foodcritic.
- Unit testing with ChefSpec.
- Integration testing with Test Kitchen.
- Code coverage with SimpleCov and codecov.
- Travis CI and wercker ready.
- Keep a CHANGELOG.
- Consistent coding with EditorConfig.
- Badges from Shields.io.
-
Clone the master branch of this repository with
$ git clone --single-branch https://github.com/makenew/chef-cookbook.git new-chef-cookbook $ cd new-chef-cookbook
Optionally, reset to the latest release with
$ git reset --hard chef-cookbook-v3.3.4
-
Run
$ ./makenew.sh
and follow the prompts. This will replace the boilerplate, delete itself, and stage changes for commit. This script assumes the project repository will be hosted on GitHub. For an alternative location, you must update the URLs manually.
-
Fill in the README Description section and add (or remove) your own wercker badge to
doc/badges.md
(you will need to create a new wercker application). -
If choosing a license other than the one provided: update
LICENSE.txt
, the README License section,metadata.rb
,attributes/default.rb
, andrecipes/default.rb
with your chosen license. -
Regenerate
README.md
with$ rake readme
. Do not editREADME.md
directly: it will be generated from_README.md.erb
using data frommetadata.rb
, and the.md
files in/doc
. -
Optionally, set
require_chef_omnibus
in.kitchen.yml
to a specific Chef version. You may also set the Ruby versions to test against in.travis.yml
andwercker.yml
. If using codecov and wercker, you must set theCODECOV_TOKEN
environment variable.
If you want to pull in future updates from this skeleton, you can fetch and merge in changes from this repository.
If this repository is already set as origin
,
rename it to upstream
with
$ git remote rename origin upstream
and then configure your origin
branch as normal.
Otherwise, add this as a new remote with
$ git remote add upstream https://github.com/makenew/chef-cookbook.git
You can then fetch and merge changes with
$ git fetch upstream
$ git merge upstream/master
Note that CHANGELOG.md
is just a template for this skeleton.
The actual changes for this project are documented in the commit history
and summarized under Releases.