knife-role-spaghetti 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/.cane ADDED
@@ -0,0 +1,2 @@
1
+ --no-style
2
+ --abc-max 46 # value on 2013-08-11. OPTIMIZE: refactor to reduce this number
data/.gitignore CHANGED
@@ -3,10 +3,13 @@
3
3
  .bundle
4
4
  .chef
5
5
  .config
6
- .rvmrc
7
6
  .DS_Store
7
+ .ruby-gemset
8
+ .ruby-version
9
+ .rvmrc
8
10
  coverage
9
11
  Gemfile.lock
12
+ gemfiles/*.lock
10
13
  InstalledFiles
11
14
  lib/bundler/man
12
15
  pkg
@@ -2,11 +2,13 @@ language: ruby
2
2
  rvm:
3
3
  - 1.9.2
4
4
  - 1.9.3
5
- env:
6
- - CHEF_VERSION=10.12.0
7
- - CHEF_VERSION=10.14.4
8
- - CHEF_VERSION=10.16.2
9
- - CHEF_VERSION=10.18.0.rc.1
5
+ - 2.0.0
6
+ bundler_args: --without=localdev
7
+ gemfile:
8
+ - gemfiles/chef_10_latest.gemfile
9
+ - gemfiles/chef_11_latest.gemfile
10
10
  matrix:
11
11
  allow_failures:
12
- - env: CHEF_VERSION=10.18.0.rc.1
12
+ - rvm: 2.0.0
13
+ notifications:
14
+ webhooks: https://www.buildheroes.com/api/projects/ecafb9f9b6badadc0d629c2cffaa4cd732ee47af/builds
@@ -0,0 +1,7 @@
1
+ appraise "chef-10-latest" do
2
+ gem "chef", "~> 10.0"
3
+ end
4
+
5
+ appraise "chef-11-latest" do
6
+ gem "chef", "~> 11.0"
7
+ end
@@ -0,0 +1,28 @@
1
+ Changelog
2
+ =========
3
+
4
+ # 0.0.5 / 2013-08-13
5
+ * Cleaned up documentation layouts - Changelog, Contributing, Readme.
6
+ * Updated dependencies, moved some out of gemspec to Gemfile
7
+ * Using new dependency testing method, removes constraint on Chef version 10
8
+
9
+ # 0.0.4 / 2012-12-24
10
+ * Allows for better Chef version dependency management, thanks @patcon!
11
+ * Better Travis testing: more Chef versions, better timeout handling
12
+ * Locked down a bunch of gem dependencies
13
+ * Updated minimum required ruby to 1.9.2
14
+
15
+ # 0.0.3 / 2012-08-04
16
+ * Fixed JSON roles loading #7 - Thanks @miah & @tezz!
17
+ * Re-implemented the DRY proposed by @jtimberman in #1, with a different method
18
+ * Prevent a role and recipe sharing the same name from colliding
19
+ * Figured out correct testing requirements matrix for Travis
20
+ * Added some more verbose logging options
21
+
22
+ # 0.0.2 / 2012-07-21
23
+ * Updated CLI banner to reflect that filename is not required, renamed for clarity
24
+ * Improved handling cases where a role contains recipes named the same as the role
25
+ * Added handling for roles in JSON format
26
+
27
+ # 0.0.1 / 2012-07-20
28
+ * Initial commit
@@ -0,0 +1,17 @@
1
+ Contributing
2
+ ============
3
+
4
+ 1. Fork it
5
+ 1. Create your feature branch (`git checkout -b my-new-feature`)
6
+ 1. Test your changes (`rake test`)
7
+ 1. Commit your changes (`git commit -am 'Added some feature'`)
8
+ 1. Push to the branch (`git push origin my-new-feature`)
9
+ 1. Create new Pull Request
10
+
11
+ Notes
12
+ -----
13
+ - Ensure you have a current version of my `master` branch before branching, this keeps things clean.
14
+ - Restrict whitespace changes to their own commits.
15
+ - Use the [Appraisals][(https://github.com/thoughtbot/appraisal) task `rake apparaisal` to test for dependency compatibility.
16
+ Travis does this for us, but it's always nice to test prior to committing.
17
+ - Do not increase complexity beyond what it already is. In fact, attempt to reduce it.
data/Gemfile CHANGED
@@ -1,4 +1,13 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in knife-role-spaghetti.gemspec
4
- gemspec
4
+ gemspec
5
+
6
+ # These will not be used in travis builds, as they are more human-developer oriented
7
+ group :localdev do
8
+ gem 'guard', '~> 1.8.2'
9
+ gem 'guard-cane', '~> 0.1.2'
10
+ gem 'guard-cucumber', '~> 1.4'
11
+ gem 'guard-rspec', '~> 3.0'
12
+ gem 'travis-lint', '~> 1.7'
13
+ end
data/README.md CHANGED
@@ -1,7 +1,9 @@
1
1
  # knife-role-spaghetti
2
- [![Build Status](https://secure.travis-ci.org/miketheman/knife-role-spaghetti.png?branch=master)](http://travis-ci.org/miketheman/knife-role-spaghetti)
2
+ [![Gem Version](https://badge.fury.io/rb/knife-role-spaghetti.png)](http://badge.fury.io/rb/knife-role-spaghetti)
3
3
  [![Dependency Status](https://gemnasium.com/miketheman/knife-role-spaghetti.png)](https://gemnasium.com/miketheman/knife-role-spaghetti)
4
- [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/miketheman/knife-role-spaghetti)
4
+ [![Build Status](https://secure.travis-ci.org/miketheman/knife-role-spaghetti.png?branch=master)](http://travis-ci.org/miketheman/knife-role-spaghetti)
5
+ [![BuildHeroes](https://www.buildheroes.com/projects/knife-role-spaghetti.png)](https://www.buildheroes.com/projects/knife-role-spaghetti)
6
+ [![Code Climate](https://codeclimate.com/github/miketheman/knife-role-spaghetti.png)](https://codeclimate.com/github/miketheman/knife-role-spaghetti)
5
7
 
6
8
  Knife plugin for [Chef][chef] to draw dependency graphs for roles that have become spaghetti.
7
9
 
@@ -53,52 +55,22 @@ Running through the neato renderer (with the `-N` switch) produces this image:
53
55
 
54
56
  ![Sample Roles Neato][sample roles neato]
55
57
 
56
- (full resolution [here](http://cl.ly/image/2s340G0x3d33)
57
-
58
- ## Contributing
59
- 1. Fork it
60
- 1. Create your feature branch (`git checkout -b my-new-feature`)
61
- 1. Test your changes (`rake test`)
62
- 1. Commit your changes (`git commit -am 'Added some feature'`)
63
- 1. Push to the branch (`git push origin my-new-feature`)
64
- 1. Create new Pull Request
58
+ (full resolution [here](http://cl.ly/image/2s340G0x3d33))
65
59
 
66
60
  [chef]: http://www.opscode.com/chef/
67
61
  [graphviz]: http://www.graphviz.org/
68
62
  [homebrew]: http://mxcl.github.com/homebrew/
69
63
  [knife]: http://wiki.opscode.com/display/chef/Knife
64
+ [miketheman]: https://github.com/miketheman
70
65
  [sample role jt]: https://gist.github.com/858903
71
66
  [sample role wiki]: http://wiki.opscode.com/display/chef/Roles#Roles-TheRubyDSL
72
67
  [sample roles]: http://f.cl.ly/items/0w3r0k1I291g3x230m3y/rsz_sample-roles.png "Sample Roles"
73
68
  [sample roles neato]: http://f.cl.ly/items/370L0z3L2U0l341Q0f2k/rsz_sample-roles-neato.png "Sample Roles - neato"
74
69
 
75
- ## Changelog
76
-
77
- ### v0.0.4
78
- * Allows for better Chef version dependency management, thanks @patcon!
79
- * Better Travis testing: more Chef versions, better timeout handling
80
- * Locked down a bunch of gem dependencies
81
- * Updated minimum required ruby to 1.9.2
82
-
83
- ### v0.0.3
84
- * Fixed JSON roles loading #7 - Thanks @miah & @tezz!
85
- * Re-implemented the DRY proposed by @jtimberman in #1, with a different method
86
- * Prevent a role and recipe sharing the same name from colliding
87
- * Figured out correct testing requirements matrix for Travis
88
- * Added some more verbose logging options
89
-
90
- ### v0.0.2
91
- * Updated CLI banner to reflect that filename is not required, renamed for clarity
92
- * Improved handling cases where a role contains recipes named the same as the role
93
- * Added handling for roles in JSON format
94
-
95
- ### v0.0.1
96
- * Initial commit
97
-
98
70
  ## License
99
71
 
100
- Author:: Mike Fiedler (<miketheman@gmail.com>)
101
- Copyright:: Copyright (c) 2012 Mike Fiedler
72
+ Author:: [Mike Fiedler][miketheman] (<miketheman@gmail.com>) [![endorse](http://api.coderwall.com/miketheman/endorsecount.png)](http://coderwall.com/miketheman)
73
+ Copyright:: Copyright (c) 2012-2013 Mike Fiedler
102
74
  License:: Apache License, Version 2.0
103
75
 
104
76
  Licensed under the Apache License, Version 2.0 (the "License");
data/Rakefile CHANGED
@@ -1,7 +1,10 @@
1
1
  #!/usr/bin/env rake
2
+ require 'bundler/setup'
2
3
  require 'bundler/gem_tasks'
3
4
 
4
- task :test => [:tailor, :features]
5
+ require 'appraisal'
6
+
7
+ task :test => [:tailor, :features, :cane]
5
8
 
6
9
  task :default => :test
7
10
 
@@ -18,6 +21,11 @@ Cucumber::Rake::Task.new(:features) do |t|
18
21
  t.cucumber_opts += ['--format progress']
19
22
  end
20
23
 
24
+ require 'cane/rake_task'
25
+ Cane::RakeTask.new do |t|
26
+ t.canefile = './.cane'
27
+ end
28
+
21
29
  # File lib/tasks/notes.rake
22
30
  desc "Find notes in code"
23
31
  task :notes do
@@ -4,6 +4,10 @@ require 'aruba-doubles/cucumber'
4
4
 
5
5
  Before do
6
6
  @aruba_timeout_seconds = 5
7
+
8
+ # Set the env var PWD to aruba's working directory, instead of inheriting
9
+ # the main process's PWD. See CHEF-3663 for why this changed in Chef 11.
10
+ ENV['PWD'] = File.expand_path current_dir
7
11
  end
8
12
 
9
13
  After do |s|
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "chef", "~> 10.0"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "chef", "~> 11.0"
6
+
7
+ gemspec :path=>"../"
@@ -1,5 +1,4 @@
1
1
  # -*- encoding: utf-8 -*-
2
- chef_version = ENV.key?('CHEF_VERSION') ? "= #{ENV['CHEF_VERSION']}" : ['~> 10.12']
3
2
  require File.expand_path('../lib/knife-role-spaghetti', __FILE__)
4
3
 
5
4
  Gem::Specification.new do |gem|
@@ -14,15 +13,16 @@ Gem::Specification.new do |gem|
14
13
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
15
14
  gem.require_paths = ['lib']
16
15
 
17
- gem.add_dependency 'chef', chef_version
18
- gem.add_dependency 'ruby-graphviz', '~> 1'
16
+ gem.add_dependency 'chef', '>= 10.12'
17
+ gem.add_dependency 'ruby-graphviz', '~> 1.0.9'
19
18
  gem.required_ruby_version = '>= 1.9.2'
20
19
 
21
- gem.add_development_dependency 'rake', '~> 10'
20
+ gem.add_development_dependency 'rake', '~> 10.0'
21
+ gem.add_development_dependency 'appraisal', '~> 0.5.2'
22
22
  gem.add_development_dependency 'aruba', '~> 0.5'
23
23
  gem.add_development_dependency 'aruba-doubles', '~> 1.2'
24
- gem.add_development_dependency 'tailor', '~> 1.1'
25
- gem.add_development_dependency 'travis-lint', '~> 1'
24
+ gem.add_development_dependency 'cane', '~> 2.5'
25
+ gem.add_development_dependency 'tailor', '~> 1.2'
26
26
 
27
27
  gem.authors = ["Mike Fiedler"]
28
28
  gem.email = ["miketheman@gmail.com"]
@@ -1,6 +1,9 @@
1
1
  require 'chef/knife'
2
2
 
3
3
  module KnifeRoleSpaghetti
4
+ # RoleSpaghetti is a Chef::Knife plugin
5
+ # It creates a new class, which is visibile when running the `knife` cli tool
6
+ # and provides a way to output a visualized dependency graph of Chef Roles.
4
7
  class RoleSpaghetti < Chef::Knife
5
8
 
6
9
  deps do
@@ -1,3 +1,3 @@
1
1
  module KnifeRoleSpaghetti
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-role-spaghetti
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,14 +9,14 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-24 00:00:00.000000000 Z
12
+ date: 2013-08-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chef
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: '10.12'
22
22
  type: :runtime
@@ -24,7 +24,7 @@ dependencies:
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ~>
27
+ - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '10.12'
30
30
  - !ruby/object:Gem::Dependency
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: '1'
37
+ version: 1.0.9
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: '1'
45
+ version: 1.0.9
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rake
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: '10'
53
+ version: '10.0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,23 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: '10'
61
+ version: '10.0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: appraisal
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 0.5.2
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.5.2
62
78
  - !ruby/object:Gem::Dependency
63
79
  name: aruba
64
80
  requirement: !ruby/object:Gem::Requirement
@@ -92,13 +108,13 @@ dependencies:
92
108
  - !ruby/object:Gem::Version
93
109
  version: '1.2'
94
110
  - !ruby/object:Gem::Dependency
95
- name: tailor
111
+ name: cane
96
112
  requirement: !ruby/object:Gem::Requirement
97
113
  none: false
98
114
  requirements:
99
115
  - - ~>
100
116
  - !ruby/object:Gem::Version
101
- version: '1.1'
117
+ version: '2.5'
102
118
  type: :development
103
119
  prerelease: false
104
120
  version_requirements: !ruby/object:Gem::Requirement
@@ -106,15 +122,15 @@ dependencies:
106
122
  requirements:
107
123
  - - ~>
108
124
  - !ruby/object:Gem::Version
109
- version: '1.1'
125
+ version: '2.5'
110
126
  - !ruby/object:Gem::Dependency
111
- name: travis-lint
127
+ name: tailor
112
128
  requirement: !ruby/object:Gem::Requirement
113
129
  none: false
114
130
  requirements:
115
131
  - - ~>
116
132
  - !ruby/object:Gem::Version
117
- version: '1'
133
+ version: '1.2'
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
@@ -122,7 +138,7 @@ dependencies:
122
138
  requirements:
123
139
  - - ~>
124
140
  - !ruby/object:Gem::Version
125
- version: '1'
141
+ version: '1.2'
126
142
  description: This knife plugin extends the `knife role` command.
127
143
  email:
128
144
  - miketheman@gmail.com
@@ -130,8 +146,12 @@ executables: []
130
146
  extensions: []
131
147
  extra_rdoc_files: []
132
148
  files:
149
+ - .cane
133
150
  - .gitignore
134
151
  - .travis.yml
152
+ - Appraisals
153
+ - CHANGELOG.md
154
+ - CONTRIBUTING.md
135
155
  - Gemfile
136
156
  - LICENSE
137
157
  - README.md
@@ -139,6 +159,8 @@ files:
139
159
  - features/cli.feature
140
160
  - features/graphing.feature
141
161
  - features/support/env.rb
162
+ - gemfiles/chef_10_latest.gemfile
163
+ - gemfiles/chef_11_latest.gemfile
142
164
  - knife-role-spaghetti.gemspec
143
165
  - lib/chef/knife/spaghetti.rb
144
166
  - lib/knife-role-spaghetti.rb
@@ -162,10 +184,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
184
  version: '0'
163
185
  segments:
164
186
  - 0
165
- hash: 2961577634127146423
187
+ hash: -2974953828354458987
166
188
  requirements: []
167
189
  rubyforge_project:
168
- rubygems_version: 1.8.24
190
+ rubygems_version: 1.8.25
169
191
  signing_key:
170
192
  specification_version: 3
171
193
  summary: Cut through the Role spaghetti with a Knife, Chef.