Thank you for taking the time to read this, and your interest in contributing to the project.
The following is a set of guidelines for contributing to BlockEQ and its wallets, which are hosted in the Block Equity 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. There are many ways that you can contribute, beyond writing code.
- Contributing to BlockEQ
- Asking and Answering Questions
- How Can I Contribute?
- Styleguides
- Additional Information
- Thank You! 🎉
Have a question? Rather than opening an issue here, please ask away on Stack Overflow using the tag 'blockeq-android'.
There are people from BlockEQ and the community there who will be eager to assist you. Your questions will serve as a better resource for others searching for help.
Occasionally, BlockEQ might post bounties for the community to help tackle bugs and features that we don't have the bandwidth for. Bounties are BlockEQ's way of giving something back to contributors for helping us accomplish our mission.
Bounties are issued at the discretion of each project's development team, and are valued subjectively by individuals from BlockEQ based on several factors:
- Importance
- Urgency
- Usefulness
- Quality
NOTE: The the reward amount between two bounties should never be compared - conditions and requirements under which they are issued change daily based on BlockEQ's roadmap, what we're working on, who issued it, as well as other factors.
Bounties have three simple states: Offered, Accepted, and Closed:
- Offered: The bounty is available for the community to work on.
- Accepted: Work has been submitted and has passed a review by the development team in order to claim the bounty.
- Closed: The bounty is no longer available, either due to completion or removing it from being offered.
Bounties are awarded in the form of Block Points (PTS) and require that the recipient have a Stellar wallet capable of receiving PTS. Any Stellar wallet should be capable of supporting the token, but the BlockEQ Android & iOS wallets explictly support PTS.
An individual must submit their intent to officially work on a bounty. The first person to submit work that satisfies its requirements will be awarded the bounty.
If multiple efforts that satisfy bounty requirements are submitted, they will be reviewed in chronological order.
BlockEQ will review all submitted bounties and discuss openly on the corresponding issue for transparency to the community.
Your comments and feedback are welcome, and members of the development team are available over a handful of different channels. You can reach out via the following ones:
Whichever form you chose, please make sure to include as much contextual information as you can such as which wallet you're referring to, the version, etc.
Have you identified a reproducible problem in the wallet? Do you have a feature request? We want to hear your input! Here's how you can effectively report your issue.
Before you create a new issue, please search in our open issues to see if the issue or feature request has already been filed.
Be sure to scan through the most popular feature requests.
If you find your issue already exists, make relevant comments and add your reaction. Use a reaction in place of a "+1" comment:
- 👍 - upvote
- 👎 - downvote
If you cannot find an existing issue that describes your bug or feature, create a new issue using the guidelines below.
File a single issue per problem and feature request. Please don't enumerate multiple bugs or feature requests in the same issue.
Also, don't add your issue as a comment to an existing issue unless it's for identical conditions, that's a great way for us to lose track of it. Many issues appear similar but have different causes.
The more information you can provide, the more likely someone will be successful reproducing the issue and finding a fix.
Please include the following with each issue:
-
Version of the app
-
A straightforward list of reproducible steps (1... 2... 3...) that cause the issue
-
What you expected to see, versus what you actually saw
-
Images, animations, or a link to a video showing the issue occurring
Please remember to do the following:
-
Search the issue repository to ensure your report is a new issue
-
Reproduce the issue
-
Simplify your code around the issue to better isolate the problem
Don't lose hope if the developers can't reproduce the issue right away! They will try their best to do that, but it may require more time, patience, and information. Issues often arise unexpectedly, and there are other things that developers are working on. Depending on the severity/utility of the issue or feature request, we may not get around to it right away.
For this project, we simply adhere to the code styling rules of lint, which is integrated into the project build process. Android lint will create warnings for minor violations, and errors for issues we don't permit. We aim to maintain a 0 warning, 0 error output for the project.
Keeping a tidy commit history is helpful when moving back and forward to isolate when issues might have been introduced, so we prefer to have a single commit per feature or bug fix. Please, squash your commits up into a single one.
For bug fixes, create a short summary of the issue, prefixed with the text [FIX], followed by a GitHub issue number, if applicable.
Example:
[FIX] Corrects project build failure (#13)
For new features, create a short summary of the issue, prefixed with the text [FEATURE], followed by a GitHub issue number, if applicable.
[FEATURE] Adds support for NSUserActivity
Where possible and necessary, include class, function, and variable documentation for your work.
At a minimum, please provide unit tests along with your contributions. This helps us maintain a high standard of quality for the project.
If you are inclined to go as far as adding UI tests or snapshot tests for your features, that is incredibly helpful, and highly appreciated.
We have three different categories of labels we use for bounties, issues, and pull requests.
| Label | Description | Search |
|---|---|---|
| pr-accepted | The pull request has been accepted | 🔍 |
| pr-hold | The pull request should not be looked at or merged until later | 🔍 |
| pr-in-review | The pull request is currently undergoing review | 🔍 |
| pr-review-required | The pull request needs attention | 🔍 |
| Label | Description | Search |
|---|---|---|
| bounty-accepted | The active bounty offer was accepted for this issue | 🔍 |
| bounty-closed | The bounty offer has been closed for this issue | 🔍 |
| bounty-offer | An active bounty is available for this issue | 🔍 |
| Label | Description | Search |
|---|---|---|
| blocked | This is being held up by something else | 🔍 |
| bug | Something isn't working | 🔍 |
| duplicate | This issue or pull request already exists | 🔍 |
| feature-request | New feature or request | 🔍 |
| beginner | Good for newcomers | 🔍 |
| help-wanted | Extra attention is needed | 🔍 |
| invalid | This doesn't seem right | 🔍 |
| question | Further information is requested | 🔍 |
| wontfix | This will not be worked on | 🔍 |
Your contributions to open source, large or small, make great projects like this possible. Thank you for taking the time to contribute. 🙌 🙌 🙌