Cryptor Contributing Guide

Table of contents

Welcome

I am very happy to see you've taken the interest to look at the guidelines for contributing to Cryptor. The topics covered below are simple guidelines and nothing is set in stone, use your judgment to save everyone time, always ask yourself "is X something I would do?", before proposing it.

Please note this is not a Development Guide (an introduction to bits of code and how to handle the project), but a set of instructions and recommendations for getting started with adding changes to the codebase and community. A Developer Guide will be provided on the wiki.

Things you'll need

Before contributing

How to contribute?

Report bugs and issues

In order to open new issues head over to the GitHub issues page and select "New Issue", use the "Bug report" template. Make sure the label bug is used and any other relevant labels (see below).

Propose enhancement or optimizations

Before proposing any enhancement or optimizations have some arguments and demo/prototype/benchmark/... to improve the chances of being considered. These proposals are also created on the GitHub issues page using the "Enhancement/Optimizations Proposal" template. Make sure the right label is used (optimization or enhancement, see explanation below)

Propose new features

Consider the security, privacy and costs of implementing the feature you dream of. After that open a new issue on the GitHub issues page. Use the "Feature request" template and appropriate labels.

Propose tests

Feel free to skip opening an issue for adding or changing tests. You can skip straight to a PR.

How to PR

Not many rules for Pull Requests. Make sure your version is compiling, respecting all language standards, all tests are passing and code is up to the Style Guidelines. After that open a PR and wait 3-5 days. Longer than that, feel free to @ mention me or drop me an email.

Documentation

New documentation, spell checking, overall layout improvements, etc, are all welcome too. Issues can be opened as discussions but I would rather you join the Discord server and discuss ideas openly there.

Network volunteer

The Cryptor Network will require nodes to function and test the initial versions. Any node helps, no matter the hardware, it can be a Raspberry Pi, a supercomputer, a VPS or your home desktop/laptop.

Continuous Integration

Travis CI Coverage Status

The current continuous integration pipeline is simple: * Push changes to GitHub * Travis-CI runs tests and pushes code coverage to coveralls * Coveralls detects any major drop in coverage

Organization

Labels

All issues must be labeled accordingly. You can see the live list of issue labels over here with their respective descriptions. If in doubt don't worry, a collaborator will fix any misused labels.

Projects

Projects and [milestones](https://github.com/cpl/cryptor/milestones_ give a sense of progress and direction to the overall Cryptor project. The boards are basic Kanbans with Backlog (todo), In Progress (doing) and Done for organizing issues and other notes.

Styleguide

Commit Messages

Golang Code

Go Report Card