Contributing to elixir-sparkpost
Transparency is one of our core values, and we encourage developers to contribute and become part of the SparkPost developer community.
The following is a set of guidelines for contributing to elixir-sparkpost, which is hosted in the SparkPost Organization on GitHub. These are just guidelines, not rules, use your best judgment and feel free to propose changes to this document in a pull request.
Submitting Issues
Before logging an issue, please search existing issues first.
You can create an issues here. Please include the library version number and as much detail as possible in your report.
You can grab the library version number like this: mix deps | grep sparkpost
Local Development
- Fork this repo
- Clone your fork
- Write some code!
- Retrieve dependencies:
mix deps.get
- To run the test suite:
mix test
- To check test code coverage:
mix coveralls
- To check coding standards:
mix credo
- To generate reference docs:
mix docs
- Please follow the pull request submission steps in the next section
Contribution Steps
- We follow this community Elixir Style Guide.
- We strive for 100% test coverage.
- We include @moduledoc and @doc content (almost) everywhere.
To contribute to elixir-sparkpost:
- Create a new branch named after the issue you’ll be fixing (include the issue number as the branch name, example: Issue in GH is #8 then the branch name should be ISSUE-8))
Write corresponding tests and code (only what is needed to satisfy the issue and tests please)
- Include your tests in the ‘test’ directory in an appropriate test file
- Write code to satisfy the tests
- Ensure automated tests (
mix test
) pass - Submit a new Pull Request applying your feature/fix branch to the
master
branch
Releasing
Check out these general docs on publishing packages to Hex.
To publish a new release:
- Update
package
metadata in mix.exs:
- bump the version number
- add new files you want to distribute
defp package do
[
version: "0.1.0", # <-- bump this
files: [
"lib", "mix.exs", "README.md", "CONTRIBUTING.md" # <-- add new files for distro here
],
]
end
- When you’re ready, publish to Hex:
mix hex.publish