cookbook 'sbt-extras', '~> 0.4.1'
sbt-extras (6) Versions 0.4.1 Follow6
Installs sbt-extras to ease the building of scala projects
cookbook 'sbt-extras', '~> 0.4.1', :supermarket
knife supermarket install sbt-extras
knife supermarket download sbt-extras
Description
This cookbook will install sbt-extras, an alternative script for running sbt (scala build tool). sbt-extras works with sbt 0.7.x projects as well as 0.10+. If you're in an sbt project directory, the runner will figure out the versions of sbt and scala required by the project and download them if necessary.
The default recipe of this Chef cookbook will:
- Download and install the sbt-extras script (e.g. from a github commit/branch/tag)
- Optionally deploy some system-wide configuration files (typically in
/etc/sbt/jvmopts
and/etc/sbt/sbtopts
) - Optionally trigger the installation of some sbt dependencies for specific users (see the
user_setup
attribute below)
Requirements
- Depends on opscode/java cookbook
- Conflicts with typesafe-stack and chef-sbt cookbooks (since it is recommended to install only one sbt launcher on the same machine)
Attributes
-
node['sbt-extras']['download_url']
- URL to obtain a specific version of sbt-extras script. -
node['sbt-extras']['setup_dir']
- Target directory for installation (default:/usr/local/bin
). Attention: this cookbook won't createsetup_dir
if does not exist yet (the idea is to force selection of a good location, most probably part of user PATH) -
node['sbt-extras']['script_name']
- Name of the installed script (default:sbt
). -
node['sbt-extras']['owner']
- user owner of installed script (default:root
) -
node['sbt-extras']['group']
- group owner of installed script (default:root
). -
node['sbt-extras']['config_dir']
- Target directory for global configuration files (default:/etc/sbt
). The default recipe can potentially install two templates in this directory if their filename attribute is not nil or empty (''
)-
node['sbt-extras']['system_wide_defaults']
- Whether to exportJVM_OPTS=@...
andSBT_OPTS=@...
to automatically apply global configuration files (default:false
) -
node['sbt-extras']['jvmopts']['filename']
- default jvm arguments can be globally set in this file (default:jvmopts
) -
node['sbt-extras']['jvmopts']['thread_stack_size']
- Set the value for-Xss
in megabytes -
node['sbt-extras']['jvmopts']['total_memory']
- Set the total amount of memory allowed for sbt, so that values like-Xms
and-Xmx
can be automatically adapted. -
node['sbt-extras']['sbtopts']['filename']
- default sbt arguments can be globally set in this file (disabled by default) -
node['sbt-extras']['sbtopts'][...]
-sbtopts
values such as-v
,-batch
and-no-colors
can be customized with corresponding cookbook attributes.
-
-
node['sbt-extras']['user_setup']['<user_name>']['sbt'][<array of sbt versions>]
andnode['sbt-extras']['user_setup']['<user_name>']['scala'][<array of scala versions>]
- (optional) sbt and scala boot dependencies will be preinstalled in~/.sbt
and~/.ivy2
directories during chef provisioning. Examples:
node['sbt-extras']['user_setup']['scala_lover']['sbt'] = %w{ 0.13.6 0.12.4 } node['sbt-extras']['user_setup']['scala_lover']['scala'] = %w{ 2.11.4 2.10.4 2.9.3 }
Installation and Usage
- Find your favourite way (Berskhelf, Librarian-Chef, ...) to install this cookbook.
- Include the
sbt-extras::default
recipe to your run list or inside your cookbook. - Provision!
Quality Assurance
Continuous Integration
This Cookbook is being tasted by Travis CI:
Automated validations are following:
* Static Analysis of Ruby code with tailor lint tool
* Static Analysis of Chef Cookbooks with foodcritic lint tool
* knife cookbook test
in a very basic sandbox
* Expectations described with RSpec examples with ChefSpec
* Pending: Run true chef (matrix) on travis VM!
Development and Testing
During development, this cookbook is locally tested in following environments:
* Development with recent versions of Chef-Solo (10.x or 11.x) and Ubuntu (with great help of Berkshelf, Vagrant, Virtualbox, Packer and their communities).
* Integration with great help of Opscode test-kitchen
How to Contribute
Feel free to open issues, fork repo and send pull request (based on a custom branch, not master)!
License
* Copyright:: 2013, Gilles Cornu
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
http://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.
Dependent cookbooks
java >= 0.0.0 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
CHANGELOG for sbt-extras cookbook
v0.4.1 (2015-12-11)
- [GH-33] Update default sbt-extras version to reach repo.typesafe.com
v0.4.0 (2014-11-14)
- Integrate newer version of paulp/sbt-extras script, which solves following issues:
- Older launchers are used if the version is declared in
build.properties
(see https://github.com/paulp/sbt-extras/pull/67#issuecomment-35973278) - Fix a bug in
-sbt-create
, to use-sbt-version
option. Thebuild.properties
workaround introduced in 0.3.0 could then be removed. - Fix a bug in comment skipping for lines with a non-initial # (see https://github.com/paulp/sbt-extras/pull/69)
- Older launchers are used if the version is declared in
The attribute
system_wide_defaults
introduced in 0.3.0 was missing in recipe.rb of master repositoryUpdate to ChefSpec 4.1
Update to Foodcritic 3.0
Update to Test-Kitchen 1.2
v0.3.0 (never officially released)
- The way to refer to global configuration files has changed, see https://github.com/paulp/sbt-extras/pull/43
- Default recipe is far simpler as in 0.2.x! (no more group sid trick, no more shared libraries between user installations,...)
Preinstallation of sbt and scala boot libraries has been strongly improved
[GH-17]: Integrate sbt bash script from paulp/sbt-extras original repository
[GH-15]: Test-Kitchen testing is (partly) supported
[GH-18]: Clean sbtopts and jvmopts templates
v0.2.2
- [GH-4]: default recipe is now 100% idempotent
- [GH-5]: User/SBT pre-installation is now coherent and support 0.12 and 0.11 generations.
v0.2.1
- administrative release that only re-packaged 0.2.0, but without unwanted files ('~' backups, .gitignore,...)
v0.2.0
- [GH-3]: Optional templates for global config files (/etc/sbt/sbtopts and /etc/sbt/jvmopts)
- Attributes modified (not backward compatible with 0.1.0)
- Added timeout on 'execute' resources (sbt/scala downloads)
v0.1.0
- Initial release
Collaborator Number Metric
0.4.1 failed this metric
Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
Contributing File Metric
0.4.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
0.4.1 passed this metric
No Binaries Metric
0.4.1 passed this metric
Testing File Metric
0.4.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.4.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.4.1 failed this metric
0.4.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
0.4.1 passed this metric
No Binaries Metric
0.4.1 passed this metric
Testing File Metric
0.4.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.4.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.4.1 passed this metric
0.4.1 passed this metric
Testing File Metric
0.4.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.4.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.4.1 failed this metric
0.4.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number