See also: Contributing to Open Source on GitHub
- Fork the salat project on github (https://github.com/salat/salat)
- Identify the correct target branch (see "Which Version/Branch?" below)
- Create a branch in your fork.
- Make your changes. Be sure that unit tests still pass! (Run
sbt test:test
) - Open a pull request for review.
Getting up to develop Salat requires three high-level steps
- Install SBT (recommended: "sbt: the rebel cut" at https://github.com/paulp/sbt-extras)
- Install the appropriate MongoDB version (this is required for unit tests): https://docs.mongodb.com/manual/installation/
sbt test:test
to ensure the project compiles and all unit tests pass.
Salat currently has three branches:
Branch | Latest Version | Description |
---|---|---|
1.9.x-branch |
1.9.10 |
Legacy support for the 1.9.x releases - conservative bug fixes and enhancements. |
1.10.x-branch |
1.10.0 |
Home of 1.10.x versions, and all community-submitted fixes / enhancements. Legacy support for older Scala and Casbah releases. Scala 2.10 / 2.11 and Casbah 2.8.2 support. |
1.11.x-branch |
1.11.2 |
Home of 1.11.x versions, and all community-submitted fixes / enhancements. Scala 2.11 / 2.12 and Casbah 3.1.x support. |
master |
None | Home of 2.0.0-SNAPSHOT - mysterious future development. |
In general, you shouldn't submit PRs against master
(well, you can, but we'll likely re-direct them to the 1.11.x-branch
- see below). master
, which as of July 2016 is on version 2.x.x
, is reserved for any future development by Salat project lead @rktoomey as she sees fit, on her development schedule.
1.10.x-branch
and 1.11.x-branch
are the branches for of ongoing, active development of Salat, via community-submitted changes. Resulting bugs are likewise detected and fixed by the community. Use at your own discretion.
Finally, the branch 1.9.x-branch
is a "legacy-support" branch for simple bug fixes and enhancements on the 1.9.x codebase. No major, earth-shattering code changes occur on this branch. Major enhancements on the 1.10.x, 1.11.x and 2.x.x branches will generally not be backported to this branch.
Each source file should have the project copyright text as a header. Template text (as a Velocity Templates file) is found in notes/copyright.vm
. The most conventient method of using this template file (aside from the requisite yak-shaving) is the IntelliJ IDEA "Copyright Manager" plugin.
See: https://www.jetbrains.com/help/idea/2016.1/generating-and-updating-copyright-notice.html
If adding new files to the project, please either copy/paste/tweak the copyright header comments into the file, or (if using IntellliJ) use the Copyright Manager plugin.
Salat uses Scalariform to enforce consistent formatting of source code. So, after compilation, you might discover that Scalariform has changed whitespace formatting of your source code. As such, please at least run sbt test:compile
at least once before commiting your changes and submitting a PR.
You can find the Scalariform configuration in the project build file, project/SalatBuild.scala
.