cookbook 'makenew-chef_cookbook', '= 3.2.0'
makenew-chef_cookbook (7) Versions 3.2.0 Follow0
Chef cookbook skeleton.
cookbook 'makenew-chef_cookbook', '= 3.2.0', :supermarket
knife supermarket install makenew-chef_cookbook
knife supermarket download makenew-chef_cookbook
Chef Cookbook Skeleton
Description
Chef cookbook skeleton.
Bootstrap a new Chef cookbook in less than a minute.
Features
- 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.
- Travis CI ready.
- Keep a CHANGELOG.
- Consistent coding with EditorConfig.
- Badges from Shields.io.
Bootstrapping a New Project
- 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.2.0
- 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.
If choosing a license other than the one provided:
updateLICENSE.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 from
metadata.rb
, and the.md
files in/doc
.
Updating
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
Changelog
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.
Requirements
- Chef 12.
Installation
Add this as a dependency in your cookbook's metadata.rb
with
depends 'makenew-chef_cookbook'
Alternatively, add this to your Berksfile with
cookbook 'makenew-chef_cookbook'
and update your cookbooks with
$ berks
Platform Support
- ubuntu (~> 14.04)
Recipes
- makenew-chef_cookbook::default - Default recipe.
Development and Testing
Requirements
You will need Ruby with Bundler.
VirtualBox and [Vagrant] are required
for integration testing with Test Kitchen.
Install the development dependencies with
$ bundle
Source Code
The makenew-chef_cookbook source is hosted on GitHub.
Clone the project with
$ git clone https://github.com/makenew/chef-cookbook.git
Rake
Run rake -T
to see all Rake tasks.
rake all # Run all tasks
rake doc # Build documentation
rake foodcritic # Lint Chef cookbooks
rake kitchen:all # Run all test instances
rake kitchen:default-ubuntu-1404 # Run default-ubuntu-1404 test instance
rake publish # Publish this cookbook
rake readme # Generate README.md from _README.md.erb
rake rubocop # Run RuboCop
rake rubocop:auto_correct # Auto-correct RuboCop offenses
rake spec # Run RSpec code examples
rake test # Run kitchen integration tests
rake yard # Generate YARD Documentation
Thor
Run thor -T
to see all Thor tasks.
Guard
Guard tasks have been separated into the following groups:
doc
, lint
, unit
, and integration
.
By default, Guard will generate documentation, lint, and run unit tests.
The integration group must be selected manually with guard -g integration
.
Contributing
Please submit and comment on bug reports and feature requests.
To submit a patch:
- Fork it (https://github.com/makenew/chef-cookbook/fork).
- Create your feature branch (
git checkout -b my-new-feature
). - Make changes. Write and run tests.
- Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin my-new-feature
). - Create a new Pull Request.
This software can be used freely, see The Unlicense.
The copyright text appearing below and elsewhere in this repository
is for demonstration purposes only and does not apply to this software.
License
Copyright 2016 Evan Sosenko
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" 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.
Warranty
This software is provided "as is" and without any express or
implied warranties, including, without limitation, the implied
warranties of merchantibility and fitness for a particular
purpose.
Dependent cookbooks
This cookbook has no specified dependencies.
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
Change Log
All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning.
This change log follows the conventions of
keep a CHANGELOG.
Unreleased
Foodcritic Metric
3.2.0 passed this metric
3.2.0 passed this metric