Current section
Files
Jump to
Current section
Files
CONTRIBUTING.md
# 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](https://github.com/sparkpost) 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](https://github.com/SparkPost/elixir-sparkpost/issues?q=is%3Aissue+is%3Aopen) first.
* You can create an issues [here](https://github.com/SparkPost/elixir-sparkpost/issues/new). 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
1. Fork this repo
1. Clone your fork
1. Write some code!
1. Retrieve dependencies: `mix deps.get`
1. To run the test suite: `mix test`
1. To check test code coverage: `mix coveralls`
1. To check coding standards: `mix credo`
1. To generate reference docs: `mix docs`
1. Please follow the pull request submission steps in the next section
## Contribution Steps
- We follow this community [Elixir Style Guide](https://github.com/niftyn8/elixir_style_guide).
- We strive for 100% test coverage.
- We include @moduledoc and @doc content (almost) everywhere.
To contribute to elixir-sparkpost:
1. 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))
1. 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
1. Ensure automated tests (`mix test`) pass
1. Submit a new Pull Request applying your feature/fix branch to the `master` branch
### Releasing
Check out these general [docs on publishing packages](https://hex.pm/docs/publish) to Hex.
To publish a new release:
1. Update `package` metadata in mix.exs:
* bump the version number
* add new files you want to distribute
```elixir
defp package do
[
version: "0.1.0", # <-- bump this
files: [
"lib", "mix.exs", "README.md", "CONTRIBUTING.md" # <-- add new files for distro here
],
]
end
```
3. When you're ready, publish to Hex: `mix hex.publish`