/scala-steward

:robot: A robot that helps you keeping your Scala projects up-to-date

Primary LanguageScalaApache License 2.0Apache-2.0

scala-steward

Build Status codecov Join the chat at https://gitter.im/fthomas/scala-steward Codacy Badge Typelevel project

scala-steward is a robot that helps you keeping library dependencies and sbt plugins up-to-date.

Quick start guide

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.

Show us the pull requests!

If you are curious how @scala-steward's pull requests look like, here are the ones it has created so far:

Contributors

Thanks goes to these wonderful people (emoji key):

Frank S. Thomas
Frank S. Thomas

💻 ⚠️
Bayram Kiran
Bayram Kiran

💻 ⚠️
Arulselvan Madhavan
Arulselvan Madhavan

💻 ⚠️
Piotr Gabara
Piotr Gabara

💻 ⚠️
kenji yoshida
kenji yoshida

💻
Zelenya
Zelenya

🎨
Filipe Regadas
Filipe Regadas

💻 ⚠️ 📦
Philippus Baalman
Philippus Baalman

💻 ⚠️
sullis
sullis

🚇
Michael Wizner
Michael Wizner

💻 ⚠️ 📦
Thomas Kaliakos
Thomas Kaliakos

💻 ⚠️
Jeff
Jeff

⚠️
Dale Wijnand
Dale Wijnand

⚠️
Renato Cavalcanti
Renato Cavalcanti

💻 ⚠️
JCollier
JCollier

💻 ⚠️
Mark Canlas
Mark Canlas

📖

Community

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.

Participation

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.

Credit

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.

Running scala-steward

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.

License

scala-steward is licensed under the Apache License, Version 2.0.