Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status


sbt-extras (6) Versions 0.4.1

Installs sbt-extras to ease the building of scala projects

cookbook 'sbt-extras', '~> 0.4.1', :supermarket
cookbook 'sbt-extras', '~> 0.4.1'
knife supermarket install sbt-extras
knife supermarket download sbt-extras
Quality 33%


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)


  • 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)


  • 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 create setup_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 export JVM_OPTS=@... and SBT_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>] and node['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: Build Status

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)!

* 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

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
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

v0.4.0 (2014-11-14)

  • Integrate newer version of paulp/sbt-extras script, which solves following issues:
  • The attribute system_wide_defaults introduced in 0.3.0 was missing in recipe.rb of master repository

  • Update 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
  • 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


  • [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.


  • administrative release that only re-packaged 0.2.0, but without unwanted files ('~' backups, .gitignore,...)


  • [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)


  • 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, and your repo must contain a 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, and your repo must contain a 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, and your repo must include a tag that matches this cookbook version number