First off, thank you for considering contributing to this project. It's people like you that make Keen IO such a great tool.
We put these guidelines together to try and make working with our SDK as straightforward as possible, and hopefully help you understand how we communicate about potential changes and improvements.
Improving documentation, bug triaging, building modules for various frameworks or writing tutorials are all examples of helpful contributions we really appreciate.
Please, don't use the issue tracker for support questions. If you have a support question please come hang out in http://keen.chat or send an email to team@keen.io
- Create issues for any major changes and enhancements that you wish to make, after checking to make sure they don't already exist. Discuss things transparently and get community feedback.
- Be welcoming to newcomers and encourage diverse new contributors from all backgrounds.
- Please take time to read our Community Code of Conduct which includes Reporting Guidelines.
Here are a couple of friendly tutorials with more information about contributing to OSS projects: http://makeapullrequest.com/, http://www.firsttimersonly.com/, and How to Contribute to an Open Source Project on GitHub.
At this point, you're ready to make your changes! Feel free to ask for help; everyone is a beginner at first 😸
If a maintainer asks you to "rebase" your PR, they're saying that a lot of code has changed, and that you need to update your branch so it's easier to merge. If you'd like to take this opportunity to squash commits into logical, meaningful chunks, please do so, but don't feel obligated to always squash everything down to one commit.
# Clone the repo
$ git clone https://github.com/keenlabs/keen-sdk-net.git && cd keen-sdk-net
Now, launch Visual Studio and open Keen.sln
. Build the solution, discover unit tests, and run them. Or, if using the .NET Core SDK tools, build and make sure tests pass:
$ dotnet build
$ cd Keen.Test/
$ dotnet test
...though actually manually building in the first step isn't necessary, as the test
command should restore packages and build if necessary. NOTE: on platforms where you don't have an SDK or Targeting Pack for .NET Framework 4.5 (e.g. MacOS or Linux), you'll likely see error MSB3644
but the netstandard2.0
outputs should build correctly and tests should run. You can avoid this error by running commands with -f netstandard2.0
in the specific subdirectory.
Next, set some breakpoints or put in some println()
s and get acquainted with the Keen
project, as well as the related test project Keen.Test
. Maybe add a mini test project that references one of the built binaries and play with actually using the SDK as per the instructions in the README.
When you go about creating a pull request, first make sure you are working in a branch, and not trying to go directly in master
. Explain what features this PR is adding or bugs this is fixing, and reference the related Issue(s). Make sure some tests are included or at least explain why if they are not. If certain testing steps are not relevant, specify that. If additional manual checks are needed, explain that as well. Please run through all testing steps before asking for a review. CI (AppVeyor and Travis CI) and required checks are in place, but it doesn't hurt to run tests manually so as to do your due diligence and keeps things running as smoothly as possible. Pay attention to test results and Code Coverage results when pushing a branch and when working on a PR.
A project maintainer will respond in a few days to the PR, and you can iterate with them and/or other community members until the PR is satisfactory and a project maintainer will go about approving, merging and releasing, and thanking you for your contribution.
If you find a security vulnerability, do NOT open an issue. Email team@keen.io instead.
If you find a bug that's not a security vulnerability please head over to the issues tab of this repo and open up an issue.
We welcome your feedback and requests. If you have a straightforward request please open up an issue that details the request. If you want to talk to someone on the Keen team head over to http://keen.chat or send a note to team@keen.io and we will make sure and get you in touch with the appropriate people.