Skip to content

Contributor Guidelines

HenryNguyen5 edited this page Apr 5, 2018 · 1 revision

Thanks for showing interest in contributing to Shepherd! Here are some basic guides for how to best help out, depending on how you're looking to contribute.

If your contribution doesn't fit in to those, feel free to send us an email at [email protected] or hit us up on Twitter at @MyCrypto.




Reporting a Bug

If you've found a bug, or something confusing about MyCrypto, here's what you should do:

  1. Search for your issue - If you're experiencing something, the chances are good that someone else is too. Search the issue queue or our Knowledge Base before posting. You may even find an answer to your problem!
  2. Describe the issue in detail - Instead of describing something as "not working" or being "broken", explain what you expected to happen, and what's happening instead, or just not happening.
  3. Provide console logs - Every browser has the ability to view logs from Javascript, which is where many error messages will get displayed if there's a bug in the code. Here's how in Firefox, Chrome, Internet Explorer, Microsoft Edge, and Safari. You'll want to provide us with as many of the logs as possible, especially anything in red.
  4. Provide browser information - Let us know what operating system, browser, browser version, and mobile device (if applicable.) This will help us debug your issue on an identical device.

Following the above steps will ensure that your bug is addressed in a timely and efficient manner. Thanks for keeping MyCrypto bug free!



Suggesting a Feature

If there's a feature that you think would make MyCrypto a better product, we want to know. Here's the best way to do it:

  1. Search for your suggestion - If you've thought of a good new feature, chances are someone else may have too. To consolidate issues, we'll keep feature requests in one thread. Show your support for a request by using the thumbs up response on the Github issue.
  2. Describe your suggestion - Describe, in detail, how you would want this new feature to work. If something doesn't work very well, it helps to know the pain points. If you have an idea of how to make it better, feel free to suggest!
  3. Provide examples - If it's something another website or app is doing, shoot us a link or a screenshot. We build better projects by working with other developers in our community.

Features that are requested with the above information have a better chance of getting implemented. Thanks for the suggestions!



Contributing Code

If you're a developer looking to pitch in, you're more than welcome to help out. Here are some suggestions for diving in:

Read the Documentation

Make sure you read the entire Readme to understand some basics about the project and how to run it.

Find a Good First Issue

If this is your first time contributing to MyCrypto, you'd probably do well to start small. We often mark good tasks for this on our issue queue with the "good first issue" label. You can find those over here.

Make an Issue First

Before you dive into coding your change, it's often good to first make an issue, or work on an existing issue before you start. This will allow anyone to provide feedback about what you're going to work on before you spend time on something that may change. Likewise, it will prevent someone else from working on the same issue as you. Pull requests against an existing issue have a much higher chance of getting merged.

Writing Tests

If your changes touch the more structural parts of the codebase, you'll be asked to write tests for them, and make sure the existing tests pass. Detailed documentation of writing and running tests is forthcoming, but for now, just try to follow the example of existing tests.

Make a Detailed Pull Request

Make sure you follow the format of a new pull request, where applicable. You'll want to:

  • Provide a detailed explanation for what your code does
  • List all of the high-level technical changes you've made
  • Provide a list of steps for testing your change (if applicable)
  • Provide screenshots / gifs of the visual changes (if applicable)

Pull requests that have the above information are much more likely to be accepted.