omnibus 2.0.2 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +2 -0
  3. data/.travis.yml +0 -2
  4. data/CHANGELOG.md +26 -6
  5. data/Gemfile +7 -0
  6. data/Guardfile +10 -0
  7. data/README.md +103 -160
  8. data/Rakefile +6 -1
  9. data/docs/Building on OSX.md +66 -0
  10. data/docs/omnibus-build-cache.md +75 -0
  11. data/lib/omnibus.rb +9 -13
  12. data/lib/omnibus/artifact.rb +1 -13
  13. data/lib/omnibus/assets/README-logo.png +0 -0
  14. data/lib/omnibus/assets/logo.psd +0 -0
  15. data/lib/omnibus/builder.rb +1 -0
  16. data/lib/omnibus/cli/application.rb +17 -4
  17. data/lib/omnibus/cli/build.rb +6 -4
  18. data/lib/omnibus/config.rb +33 -0
  19. data/lib/omnibus/exceptions.rb +20 -14
  20. data/lib/omnibus/health_check.rb +2 -0
  21. data/lib/omnibus/install_path_cache.rb +106 -0
  22. data/lib/omnibus/library.rb +18 -1
  23. data/lib/omnibus/packagers/base.rb +228 -0
  24. data/lib/omnibus/packagers/mac_dmg.rb +215 -0
  25. data/lib/omnibus/packagers/mac_pkg.rb +129 -253
  26. data/lib/omnibus/project.rb +89 -95
  27. data/lib/omnibus/s3_cacher.rb +4 -7
  28. data/lib/omnibus/software.rb +47 -83
  29. data/lib/omnibus/sugar.rb +49 -0
  30. data/lib/omnibus/templates/.kitchen.yml.erb +3 -0
  31. data/lib/omnibus/templates/Berksfile.erb +4 -0
  32. data/lib/omnibus/templates/Gemfile.erb +1 -1
  33. data/lib/omnibus/templates/mac_dmg/background.png +0 -0
  34. data/lib/omnibus/templates/mac_dmg/icon.png +0 -0
  35. data/lib/omnibus/templates/mac_pkg/background.png +0 -0
  36. data/lib/omnibus/templates/mac_pkg/license.html.erb +1 -0
  37. data/lib/omnibus/templates/mac_pkg/welcome.html.erb +9 -0
  38. data/lib/omnibus/templates/omnibus.rb.example.erb +31 -4
  39. data/lib/omnibus/version.rb +1 -1
  40. data/omnibus.gemspec +5 -4
  41. data/spec/fixtures/sample/files/mac_dmg/Resources/background.png +0 -0
  42. data/spec/fixtures/sample/files/mac_dmg/Resources/icon.png +0 -0
  43. data/spec/fixtures/sample/files/mac_pkg/Resources/background.png +0 -0
  44. data/spec/fixtures/sample/files/mac_pkg/Resources/license.html +1 -0
  45. data/spec/fixtures/sample/files/mac_pkg/Resources/welcome.html +9 -0
  46. data/{functional/fixtures/mac_pkg/package-scripts/functional-test-project → spec/fixtures/sample/package-scripts/sample}/postinstall +0 -0
  47. data/spec/functional/packagers/mac_spec.rb +74 -0
  48. data/spec/spec_helper.rb +14 -3
  49. data/spec/sugar_spec.rb +20 -0
  50. data/spec/{artifact_spec.rb → unit/artifact_spec.rb} +2 -3
  51. data/spec/{build_version_spec.rb → unit/build_version_spec.rb} +0 -0
  52. data/spec/{config_spec.rb → unit/config_spec.rb} +4 -0
  53. data/spec/{fetchers → unit/fetchers}/git_fetcher_spec.rb +0 -0
  54. data/spec/{fetchers → unit/fetchers}/net_fetcher_spec.rb +0 -0
  55. data/spec/unit/install_path_cache_spec.rb +175 -0
  56. data/spec/unit/library_spec.rb +67 -0
  57. data/spec/{omnibus_spec.rb → unit/omnibus_spec.rb} +0 -0
  58. data/spec/{overrides_spec.rb → unit/overrides_spec.rb} +0 -0
  59. data/spec/{package_release_spec.rb → unit/package_release_spec.rb} +0 -0
  60. data/spec/unit/packagers/base_spec.rb +221 -0
  61. data/spec/unit/packagers/mac_pkg_spec.rb +163 -0
  62. data/spec/{project_spec.rb → unit/project_spec.rb} +0 -14
  63. data/spec/{s3_cacher_spec.rb → unit/s3_cacher_spec.rb} +0 -0
  64. data/spec/{software_spec.rb → unit/software_spec.rb} +0 -1
  65. metadata +122 -103
  66. data/functional/fixtures/mac_pkg/files/mac_pkg/Resources/background.png +0 -0
  67. data/functional/fixtures/mac_pkg/files/mac_pkg/Resources/license.html +0 -1
  68. data/functional/fixtures/mac_pkg/files/mac_pkg/Resources/welcome.html +0 -1
  69. data/functional/packagers/mac_pkg_spec.rb +0 -72
  70. data/lib/omnibus/clean_tasks.rb +0 -28
  71. data/spec/packagers/mac_pkg_spec.rb +0 -262
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6427537f543b5620032efc95fa829432edf0456d
4
+ data.tar.gz: d4a4c594566f3eecc07a16e101b8dbe9470b3a3d
5
+ SHA512:
6
+ metadata.gz: 2e858eb5ac89e4afbaac538092d8c156880d7b2229a3b5a529abec7a6216d06110bbe6891a3621aee3d7eb7e3e8877f0afdaafaadffce4c85f7defa698c4b0cb
7
+ data.tar.gz: e2b5b330bd7fcad489db76806f5855a22b337f7fa467e3ad587d0c98796eae3d7d026300b410771efd838fa0fabca3196e816ae110b0e29c2f82d5e73a20f9c2
data/.rubocop.yml CHANGED
@@ -1,3 +1,5 @@
1
+ ClassAndModuleChildren:
2
+ Enabled: false
1
3
  ClassLength:
2
4
  Enabled: false
3
5
  CyclomaticComplexity:
data/.travis.yml CHANGED
@@ -5,8 +5,6 @@ bundler_args: --jobs 7 --without docs
5
5
 
6
6
  branches:
7
7
  only:
8
- - 2.0-stable
9
- - 3.0-stable
10
8
  - master
11
9
 
12
10
  script: bundle exec rake travis:ci
data/CHANGELOG.md CHANGED
@@ -1,12 +1,32 @@
1
1
  Omnibus Ruby CHANGELOG
2
2
  ======================
3
3
 
4
- v2.0.2 (September 16, 2014)
5
- -----------------------
6
- - Ensure default package user and group are `root`.
7
- - Fix S3 bucket retrieval.
8
- - Add metadata to support modern publishers.
9
- - Downgrade FPM to ~> 0.4
4
+ v3.0.0 (TBD)
5
+ ------------
6
+ ### New Features
7
+
8
+ - **No more rake!** Software definitions are incrementally built and cached using git instead. Software dependency build has been rewritten to leverage git caching. This means compiled software definitions are cached, so future Omnibus project builds are much faster. However, this does introduce some potential breaking changes.
9
+
10
+ - Project-level software dependencies are built **last**.
11
+ - it is assumed that project-level software dependencies are most frequently changed, and thus Omnibus optimize for such a case.
12
+ - If you have software definitions that hard code `always_build`, you will probably want to turn that off now.
13
+ - Blank directories are not cached. If you would like a blank directory to be cached, add a `.gitkeep` file to the folder.
14
+ - The build order is compiled in a different way, which might result in a different ordered-installation than previous versions of omnibus.
15
+ - For an example of you you might need to update your project, please see [opscode/omnibus-software@02d06a](https://github.com/opscode/omnibus-software/commit/02d06a74c02340b592e1864e7ab843bc14fa352a)
16
+
17
+ - Support for building DMGs (OSX Disk Images)
18
+ - Update generator to create assets for pkg/dmg resources
19
+ - There's a fancy new logo
20
+ - Added Chef Sugar integration
21
+ - Improved documentation
22
+ - Improved test coverage
23
+
24
+ ### Bug fixes
25
+
26
+ - Project generators now include apt/yum as development cookbooks
27
+ - Added libc++.1.dylib as a whitelist healthcheck
28
+ - Added libgcc_s.so,1 as a whitelist healthcheck on Solaris
29
+ - Fix a bug where `extra_package_files` would break FPM
10
30
 
11
31
  v2.0.1 (March 18, 2014)
12
32
  -----------------------
data/Gemfile CHANGED
@@ -10,3 +10,10 @@ end
10
10
  group :test do
11
11
  gem 'fauxhai'
12
12
  end
13
+
14
+ group :local do
15
+ gem 'guard'
16
+ gem 'guard-rspec'
17
+ gem 'guard-rubocop'
18
+ gem 'ruby_gntp'
19
+ end
data/Guardfile ADDED
@@ -0,0 +1,10 @@
1
+ guard :rspec do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/omnibus/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
4
+ watch('spec/spec_helper.rb') { 'spec' }
5
+ end
6
+
7
+ guard :rubocop do
8
+ watch(%r{.+\.rb$})
9
+ watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
10
+ end
data/README.md CHANGED
@@ -1,58 +1,45 @@
1
- ## Omnibus
2
-
1
+ ![Omnibus Icon](lib/omnibus/assets/README-logo.png) Omnibus
2
+ ===========================================================
3
3
  [![Build Status](https://travis-ci.org/opscode/omnibus-ruby.png?branch=master)](https://travis-ci.org/opscode/omnibus-ruby)
4
- [![Code Climate](https://codeclimate.com/github/opscode/omnibus-ruby.png)](https://codeclimate.com/github/opscode/omnibus-ruby)
5
4
 
6
- Easily create full-stack installers for your project across a variety
7
- of platforms.
5
+ Easily create full-stack installers for your project across a variety of platforms.
8
6
 
9
- Seth Chisamore and Christopher Maier of Opscode gave an introductory
10
- talk on Omnibus at ChefConf 2013, entitled **Eat the Whole Bowl:
11
- Building a Full-Stack Installer with Omnibus**
12
- ([video](http://www.youtube.com/watch?v=q8iJAntXCNY),
13
- [slides](https://speakerdeck.com/schisamo/eat-the-whole-bowl-building-a-full-stack-installer-with-omnibus)).
7
+ Seth Chisamore and Christopher Maier of CHEF gave an introductory talk on Omnibus at ChefConf 2013, entitled **Eat the Whole Bowl: Building a Full-Stack Installer with Omnibus**:
8
+ - [Video](http://www.youtube.com/watch?v=q8iJAntXCNY)
9
+ - [Slides](https://speakerdeck.com/schisamo/eat-the-whole-bowl-building-a-full-stack-installer-with-omnibus)
14
10
 
15
11
  This project is managed by the CHEF Release Engineering team. For more information on the Release Engineering team's contribution, triage, and release process, please consult the [CHEF Release Engineering OSS Management Guide](https://docs.google.com/a/opscode.com/document/d/1oJB0vZb_3bl7_ZU2YMDBkMFdL-EWplW1BJv_FXTUOzg/edit).
16
12
 
17
- ## Prerequisites
18
-
19
- Omnibus is designed to run with a minimal set of prerequisites. You'll
20
- need the following:
21
13
 
22
- - Ruby 1.9 or later (http://ruby-lang.org)
23
- - Bundler (http://gembundler.com, http://rubygems.org/gems/bundler)
14
+ Prerequisites
15
+ -------------
16
+ Omnibus is designed to run with a minimal set of prerequisites. You will need the following:
24
17
 
25
- Though not *strictly* necessary, Vagrant makes using Omnibus easier,
26
- and is highly recommended.
27
- - Vagrant 1.2.1 or later (http://www.vagrantup.com)
28
- - the vagrant-berkshelf plugin (https://github.com/RiotGames/vagrant-berkshelf)
29
- - the vagrant-omnibus plugin (https://github.com/schisamo/vagrant-omnibus)
18
+ - Ruby 1.9+
19
+ - Bundler
30
20
 
31
- ## Get Started
32
21
 
33
- Omnibus provides both a DSL for defining Omnibus projects for your
34
- software, as well as a command-line tool for generating installer
35
- artifacts from that definition.
22
+ Get Started
23
+ -----------
24
+ Omnibus provides both a DSL for defining Omnibus projects for your software, as well as a command-line tool for generating installer artifacts from that definition.
36
25
 
37
26
  To get started, install Omnibus locally on your workstation.
38
27
 
39
- ```
28
+ ```bash
40
29
  $ gem install omnibus
41
30
  ```
42
31
 
43
- You can now create an Omnibus project in your current directory by
44
- using the project generator feature.
32
+ You can now create an Omnibus project in your current directory by using the project generator feature.
45
33
 
46
- ```
34
+ ```bash
47
35
  $ omnibus project $MY_PROJECT_NAME
48
36
  ```
49
37
 
50
- This will generate a complete project skeleton in the directory
51
- `omnibus-$MY_PROJECT_NAME`
38
+ This will generate a complete project skeleton in the directory `omnibus-$MY_PROJECT_NAME`
52
39
 
53
40
  This minimal project will actually build.
54
41
 
55
- ``` shell
42
+ ```bash
56
43
  $ cd omnibus-$MY_PROJECT_NAME
57
44
  $ bundle install --binstubs
58
45
  $ bin/omnibus build project $MY_PROJECT_NAME
@@ -60,187 +47,142 @@ $ bin/omnibus build project $MY_PROJECT_NAME
60
47
 
61
48
  More details can be found in the generated project README file.
62
49
 
63
- ## Configuration DSL
64
50
 
65
- Though the template project will build, it won't do anything exciting.
66
- For that, you'll need to use the Omnibus DSL to define the specifics
67
- of your own application.
51
+ More documentation
52
+ ------------------
53
+ If you are creating OSX packages, please see the [OSX-specifc documentation](docs/Building on OSX.md).
54
+
55
+
56
+ Configuration DSL
57
+ ------------------
58
+ Though the template project will build, it won't do anything exciting. For that, you'll need to use the Omnibus DSL to define the specifics of your own application.
68
59
 
69
60
  ### Software
61
+ Omnibus "software" files define individual software components that go into making your overall package. They are the building blocks of your application. The Software DSL provides a way to define where to retrieve the software sources, how to build them, and what dependencies they have. These dependencies are also defined in their own Software DSL files, thus forming the basis for a dependency-aware build ordering.
62
+
63
+ All Software definitions should go in the `config/software` directory of your Omnibus project repository.
70
64
 
71
- Omnibus "software" files define individual software components that go
72
- into making your overall package. They are the building blocks of
73
- your application. The Software DSL provides a way to define where to
74
- retrieve the software sources, how to build them, and what
75
- dependencies they have. These dependencies are also defined in their
76
- own Software DSL files, thus forming the basis for a dependency-aware
77
- build ordering.
78
-
79
- All Software definitions should go in the `config/software` directory
80
- of your Omnibus project repository.
81
-
82
- Opscode has created software definitions for a number of
83
- commonly-needed components, available in the
84
- [omnibus-software](https://github.com/opscode/omnibus-software.git)
85
- repository. When you create a new project skeleton using Omnibus,
86
- this is automatically added to the project's Gemfile, making all these
87
- software definitions available to you. (If you prefer, however, you
88
- can write your own versions of these same definitions in your project
89
- repository; local copies in `config/software` have precedence over
90
- anything from the `omnibus-software` repository.)
65
+ CHEF has created software definitions for a number of commonly-needed components, available in the [omnibus-software](https://github.com/opscode/omnibus-software.git)
66
+ repository. When you create a new project skeleton using Omnibus, this is automatically added to the project's Gemfile, making all these software definitions available to you. (If you prefer, however, you can write your own versions of these same definitions in your project repository; local copies in `config/software` have precedence over anything from the `omnibus-software` repository.)
91
67
 
92
68
  An example:
93
69
 
94
70
  ```ruby
95
- name "ruby"
96
- default_version "1.9.2-p290"
97
- source :url => "http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-#{version}.tar.gz",
98
- :md5 => "604da71839a6ae02b5b5b5e1b792d5eb"
71
+ name 'ruby'
72
+ default_version '1.9.2-p290'
73
+ source url: 'http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-#{version}.tar.gz',
74
+ md5: '604da71839a6ae02b5b5b5e1b792d5eb'
99
75
 
100
- dependency "zlib"
101
- dependency "ncurses"
102
- dependency "openssl"
76
+ dependency 'zlib'
77
+ dependency 'ncurses'
78
+ dependency 'openssl'
103
79
 
104
80
  relative_path "ruby-#{version}"
105
81
 
106
82
  build do
107
- command "./configure"
108
- command "make"
109
- command "make install"
83
+ command './configure'
84
+ command 'make'
85
+ command 'make install'
110
86
  end
111
87
  ```
112
88
 
113
89
  Some of the DSL methods available include:
114
90
 
115
- **name**: The name of the software component (this should come first).
91
+ | DSL Method | Description |
92
+ | :---------------: | -------------------------------------------|
93
+ | `name` | The name of the software component (this should come first) |
94
+ | `default_version` | The version of the software component |
95
+ | `source` | Directions to the location of the source |
96
+ | `dependency` | An Omnibus software-defined component that this software depends on |
97
+ | `relative_path` | The relative path of the extracted tarball |
98
+ | `build` | The build instructions |
99
+ | `command` | An individual build step |
116
100
 
117
- **default_version**: The version of the software component.
118
101
 
119
- **source**: Directions to the location of the source.
102
+ You can support building multiple verisons of the same software in the same software definition file using the `version` method and giving a block:
120
103
 
121
- **dependency**: An Omnibus software-defined component that this software depends on.
104
+ ```ruby
105
+ name 'ruby'
106
+ default_version '1.9.2-p290'
122
107
 
123
- **relative_path**: The relative path of the extracted tarball.
108
+ version '1.9.2-p290' do
109
+ source url: 'http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-#{version}.tar.gz',
110
+ md5: '604da71839a6ae02b5b5b5e1b792d5eb'
111
+ end
124
112
 
125
- **build**: The build instructions.
113
+ version '2.1.1' do
114
+ source url: 'http://ftp.ruby-lang.org/pub/ruby/2.1/ruby-#{version}.tar.gz',
115
+ md5: 'e57fdbb8ed56e70c43f39c79da1654b2'
116
+ end
117
+ ```
126
118
 
127
- **command**: An individual build step.
119
+ Since the software definitions are simply ruby code, you can conditionally execute anything by wrapping it with pure ruby that tests for the version number.
128
120
 
129
- For more, consult the documentation.
121
+ For more DSL methods, please consult the documentation.
130
122
 
131
123
  ### Projects
124
+ A Project DSL file defines your actual application; this is the thing you are creating a full-stack installer for in the first place. It provides a means to define the dependencies of the project (again, as specified in Software DSL definition files), as well as ways to set installer package metadata.
132
125
 
133
- A Project DSL file defines your actual application; this is the thing
134
- you are creating a full-stack installer for in the first place. It
135
- provides a means to define the dependencies of the project (again, as
136
- specified in Software DSL definition files), as well as ways to set
137
- installer package metadata.
138
-
139
- All Project definitions (yes, you can have more than one) should go in
140
- the `config/projects` directory of your Omnibus project repository.
126
+ All Project definitions (yes, you can have more than one) should go in the `config/projects` directory of your Omnibus project repository.
141
127
 
142
128
  ```ruby
143
- name "chef-full"
144
- maintainer "YOUR NAME"
145
- homepage "http://yoursite.com"
129
+ name 'chef-full'
130
+ maintainer 'YOUR NAME'
131
+ homepage 'http://yoursite.com'
146
132
 
147
- install_path "/opt/chef"
148
- build_version "0.10.8"
133
+ install_path '/opt/chef'
134
+ build_version '0.10.8'
149
135
  build_iteration 4
150
136
 
151
- dependency "chef"
137
+ dependency 'chef'
152
138
  ```
153
139
 
154
140
  Some DSL methods available include:
155
141
 
156
- **name:** The name of the project.
157
-
158
- **install_path:** The desired install location of the package.
142
+ | DSL Method | Description |
143
+ | :---------------: | --------------------------------------------|
144
+ | `name` | The name of the project |
145
+ | `install_path` | The desired install location of the package |
146
+ | `build_version` | The package version |
147
+ | `build_iteration` | The package iteration number |
148
+ | `dependency` | An Omnibus software-defined component to include in this package |
159
149
 
160
- **build_version:** The package version.
150
+ For more information, please see the documentation.
161
151
 
162
- **build_iteration:** The package iteration number.
163
152
 
164
- **dependency**: An Omnibus software-defined component to include in this package.
153
+ Caveats
154
+ -------
155
+ ### A note on builds
156
+ As stated above, the generated project skeleton can run "as-is". However, Omnibus determines the platform for which to build an installer based on *the platform it is currently running on*. That is, you can only generate a `.deb` file for Ubuntu if you're actually running Omnibus *on Ubuntu*.
165
157
 
166
- For more, see the documentation.
158
+ This is currently achieved using [Test Kitchen](http://kitchen.ci), which is included with any newly generated Omnibus project.
167
159
 
168
- ## A Note On Builds
169
160
 
170
- As stated above, the generated project skeleton can run "as-is".
171
- However, Omnibus determines the platform for which to build an
172
- installer based on *the platform it is currently running on*. That
173
- is, you can only generate a `.deb` file for Ubuntu if you're actually
174
- running Omnibus *on Ubuntu*.
175
-
176
- This is currently achieved using [Vagrant](http://www.vagrantup.com).
177
- A valid `Vagrantfile` for generating builds on Ubuntu and Centos
178
- platforms (though Omnibus is not limited to just those!) is created
179
- for each project that you generate using `omnibus project
180
- $MY_PROJECT_NAME`
181
-
182
- ## Multiple Software Versions and Version Overrides
183
-
184
- You can support building multiple verisons of the same software in the same
185
- software definition file:
161
+ ### Overrides
162
+ The project definitions can override specific software dependencies by passing in `override` to use the correct version:
186
163
 
187
164
  ```ruby
188
- name "ruby"
189
- default_version "1.9.2-p290"
190
-
191
- version "1.9.2-p290" do
192
- source :url => "http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-#{version}.tar.gz",
193
- :md5 => "604da71839a6ae02b5b5b5e1b792d5eb"
194
- end
195
-
196
- version "2.1.1" do
197
- source :url => "http://ftp.ruby-lang.org/pub/ruby/2.1/ruby-#{version}.tar.gz",
198
- :md5 => "e57fdbb8ed56e70c43f39c79da1654b2"
199
- end
165
+ name 'chef-full'
166
+ # <snip>
200
167
 
168
+ # This will override the default version of "chef"
169
+ override :chef, version: '2.1.1'
201
170
 
202
- dependency "zlib"
203
- dependency "ncurses"
204
- dependency "openssl"
205
-
206
- relative_path "ruby-#{version}"
207
-
208
- build do
209
- command "./configure"
210
- command "make"
211
- command "make install"
212
- end
171
+ dependency 'chef'
213
172
  ```
214
173
 
215
- Since the software definitions are simply ruby code, you can conditionally
216
- execute anything by wrapping it with pure ruby that tests for the version number.
174
+ There is no checking that the version override that you supply has been provided in a version override block in the software definition.
217
175
 
218
- The project definitions can then take advange of this by passing in overrides
219
- to use the correct version:
176
+ ### Git caching
177
+ As of Omnibus 3.0.0, projects are no longer built using rake. Instead, we have rewritten the software dependencies to leverage git caching. This means we cache compiled software definitions, so future Omnibus project builds are much faster.
220
178
 
221
- ```ruby
222
- name "chef-full"
223
- maintainer "YOUR NAME"
224
- homepage "http://yoursite.com"
179
+ For more information on potential breaking changes, please see the CHANGELOG entry for Omnibus 3.0.0.
225
180
 
226
- install_path "/opt/chef"
227
- build_version "0.10.8"
228
- build_iteration 4
229
-
230
- override :chef, version: "2.1.1"
231
-
232
- dependency "chef"
233
- ```
234
181
 
235
- There is no checking that the version override that you supply has been
236
- provided in a version override block in the software definition.
237
-
238
- ## License
239
-
240
- See the LICENSE and NOTICE files for more information.
241
-
242
- Copyright: Copyright (c) 2012--2013-2014 Chef Software, Inc.
243
- License: Apache License, Version 2.0
182
+ License
183
+ -------
184
+ ```text
185
+ Copyright 2012-2014 Chef Software, Inc.
244
186
 
245
187
  Licensed under the Apache License, Version 2.0 (the "License");
246
188
  you may not use this file except in compliance with the License.
@@ -253,3 +195,4 @@ distributed under the License is distributed on an "AS IS" BASIS,
253
195
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
254
196
  See the License for the specific language governing permissions and
255
197
  limitations under the License.
198
+ ```
data/Rakefile CHANGED
@@ -2,7 +2,12 @@ require 'bundler/setup'
2
2
  require 'bundler/gem_tasks'
3
3
 
4
4
  require 'rspec/core/rake_task'
5
- RSpec::Core::RakeTask.new(:unit)
5
+ RSpec::Core::RakeTask.new(:unit) do |t|
6
+ t.pattern = 'spec/unit/**/*_spec.rb'
7
+ end
8
+ RSpec::Core::RakeTask.new(:functional) do |t|
9
+ t.pattern = 'spec/functional/**/*_spec.rb'
10
+ end
6
11
 
7
12
  require 'rubocop/rake_task'
8
13
  desc 'Run Ruby style checks'