Boss: Michael
A collection of useful utility classes and functions.
testkit
- Unit test classes and utilities.
webapp
- Spray- and web-specific tools.
guice
- Guice-specific libraries.
core
- Catchall collection of utilities, with smaller dependency footprint than webapp
.
common
is published to JCenter (an
alternative to Maven Central) via BinTray at https://bintray.com/allenai/maven. If you have
the latest version of our core plugins the BinTray resolver will be included
by default.
Otherwise you will need to include a resolver for the JCenter
repo
using the sbt-bintray
plugin to find this artifact.
This project releases to BinTray. To make a release, follow our standard release process.
- Make sure you are on a branch of the main repository other than
master
. You cannot use a branch of your fork for releases. If you do, your tag will not make it to the main repository. - Set the upstream repository (
git push --set-upstream origin $branch_name
). - Kick of the release with
sbt release
. - Create a pull request and make sure Semaphore builds it OK.
- When the pull request is merged, Semaphore will kick off a build and ultimately publish the artifact.
- You can verify that it was published by looking on BinTray.com!
You are done!
There is no strict process for contributing to common
. However, following are some general guidelines.
If you have implemented something in a repository other than common
and that you think could be a candidate to be migrated into common
, ask reviewers for feedback when issuing your pull request.
Feel free create a GitHub issue in the common
project to provide traceability and a forum for discussion.
While working on a task, go ahead and implement the functionality that you think would be a good fit for common
,
and comment the implementation with a TODO suggesting it belongs in common
. An example:
// TODO(mygithubusername): migrate to common
object ResourceHandling {
type Resource = { def close(): Unit }
def using[A](resource: => Resource)(f: Resource => A) {
try {
f(resource)
finally {
resource.close()
}
}
}
If you have created a GitHub issue for the common
candidate, it is a good idea for traceability to
reference the issue number in your TODO comment:
// TODO(mygithubusername): migrate to common. See https://github.com/allenai/common/issues/123
...
Try and always have at least two reviewers for a pull request to common