Contributing to BitcoinKit
The following is a set of guidelines for contributing to BitcoinKit, which are hosted in the Yenom Organization on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
Code of Conduct
This project and everyone participating in it is governed by this code. By participating, you are expected to uphold this code.
- Be Nice.
- Use English.
Where Can I Ask a Question?
You can ask a question on github issues at any time. We'll soon launch a Slack group to ask a question.
How Can I Contribute?
Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.
Please provide the following information:
- Use a clear and descriptive title for the issue to identify the suggestion.
- Describe the current behavior and explain which behavior you expected to see instead and why.
- Explain why this enhancement would be useful to most BitcoinKit users.
- List some other implementations where this enhancement exists.
- Specify which version of BitcoinKit you're using.
- Specify the name and version of the OS you're using.
Your First Code Contribution
Unsure where to begin contributing to BitcoinKit? You can start by looking through these
- [Beginner issues][beginner-welcome] - issues which should only require a few lines of code, and a test or two.
- Fill in the required template
- Use a clear and descriptive title for the PR.
- Describe the PR clearly.
- Check with SwiftLint before creating a PR
Git Commit Messages
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Consider starting the commit message with an applicable emoji:
:rocket:when releasing a new version
:sparkles:when adding a new file/feature
:recycle:when refactoring the format/structure of code
:racehorse:when improving performance
:non-potable_water:when plugging memory leaks
:memo:when writing docs
:bug:when fixing a bug
:fire:when removing code or files
:green_heart:when fixing the CI build
:white_check_mark:when adding tests
:lock:when dealing with security
:arrow_up:when upgrading dependencies
:arrow_down:when downgrading dependencies
:shirt:when removing linter warnings