scala-steward is a robot that helps you keeping library dependencies and sbt plugins up-to-date.
Open a pull request that adds the GitHub repository of your Scala project to repos.md. Once that PR is merged, @scala-steward will check periodically for updates of libraries and plugins (see examples) in your project and will open pull requests in your repository if it can figure out where version numbers need to be updated.
If you are curious how @scala-steward's pull requests look like, here are the ones it has created so far:
Thanks goes to these wonderful people (emoji key):
The following companies are using scala-steward to manage their scala dependencies. Using scala-steward in your company and don't see it listed here? Consider creating PR to add your name to the list and join the community.
The scala-steward project supports the Scala Code of Conduct and wants all of its channels (GitHub, Gitter, etc.) to be welcoming environments for everyone.
scala-steward wouldn't exist without the great sbt-updates plugin to determine dependency updates and a bunch of Typelevel and other Scala libraries.
@scala-steward's cute profile picture is by @impurepics.
sbt stage
./modules/core/.jvm/target/universal/stage/bin/scala-steward \
--workspace "$STEWARD_DIR/workspace" \
--repos-file "$STEWARD_DIR/repos.md" \
--git-author-name "Scala steward" \
--git-author-email ${EMAIL} \
--github-api-host "https://api.github.com" \
--github-login ${LOGIN} \
--git-ask-pass "$STEWARD_DIR/.github/askpass/$LOGIN.sh" \
--sign-commits \
--env-var FOO=BAR
Or,
sbt docker:publishLocal
docker run -v $STEWARD_DIR:/opt/scala-steward -it scala-steward:0.1.0-SNAPSHOT \
--workspace "/opt/scala-steward/workspace" \
--repos-file "/opt/scala-steward/repos.md" \
--git-author-name "Scala steward" \
--git-author-email ${EMAIL} \
--github-api-host "https://api.github.com" \
--github-login ${LOGIN} \
--git-ask-pass "/opt/scala-steward/.github/askpass/$LOGIN.sh" \
--sign-commits \
--env-var FOO=BAR
If you run scala-steward for your own private projects, you can pass additional environment variables from the command line using the --env-var
flag as shown in the examples above. You can use this to pass any credentials required by your projects to resolve any private dependencies, e.g.:
--env-var BINTRAY_USER=username \
--env-var BINTRAY_PASS=password
These variables will be accessible (in sbt) to all of the projects that scala-steward checks dependencies for.
scala-steward is licensed under the Apache License, Version 2.0.