AI2 SBT Plugins
This repository is no longer supported, and should not be used for new projects. S2 still uses some pieces, but if you're making a new project, do not use this plugin. Please assign any PRs to Brandon Stilson.
All plugins also enable the
CoreSettings plugin (docs), which contains AI2-wide common settings.
More documentation for individual plugins can be found in the docs directory.
Add the following to your project's
addSbtPlugin("org.allenai.plugins" % "allenai-sbt-plugins" % VERSION)
VERSION is the current release version (see our bintray repo to find available versions).
Developing AI2 Plugins
Currently, all plugins are defined in the same SBT project. New plugins should be created in:
src/main/scala/org/allenai/pluginsif they are to be part of core settings or if they are a mixin plugin.
We use sbt-scripted for testing our SBT plugins. To run the tests:
$ sbt > scripted
You could also just run
sbt test which will trigger the scripted tests as well.
To keep test execution time down, we prefer to minimize the number of sbt-scripted test projects. If possible, try to write tests in the primary test project in src/sbt-test/sbt-plugins/simple.
If you write an isolated test, you can execute only that test via:
This assumes you've written your test in
src/sbt-test/sbt-plugins/my-test. This is useful to speed up code/test iterating.
Following the Typesafe lead, we publish our plugins to a bintray.
Bintray does not like snapshot versions, so all of our published versions are releases.
To publish new versions you will need a
~/.bintray/.credentials file with the following contents. Be sure to
chmod 600 it! You can also use a personal Bintray login that has access to the
allenai organization. To setup bintray credentials, either
realm = Bintray API Realm host = api.bintray.com user = ai2-dev [or your bintray username] password = [API Key for ai2-dev user ]
[API Key] is the API key for the ai2-dev account (or your account if using personal account) on Bintray. You can find it by asking someone! There is a username & password combo that might work to log in to the account as well.
- Log into bintray as
- Click on the
ai2-devaccount name in top-right corner.
- Click on
- Click on
API Keyin navigation list
- Checkout the
masterbranch of the repository (Make sure the upstream-tracking branch is
- Cut the release:
The plugin will set the appropriate defaults so just hit
<ENTER> through the prompts. Also, some errors will be logged when the plugin creates a tag and pushes it to the upstream repository. This is not really an error but git outputting some text to stderr.