# Signet Contrubtion Guidelines
We are delighted that you decided to open this file and want to know how you
can contribute to the project!

There are a number of ways you can contribute:

1. Donate money to the volunteer software/firmware maintainers
   - Bitcoin address: bc1qwfggde4gsp8gyw78lxvsmass4fjzgx9gr43k3q
   - Ethereum address: 0x57ec077699017733C950F9cBB67F01064B2122b4
2. Report issues or suggest improvements in our [Matrix channel](https://matrix.to/#/!VutlshEatUbUOJRlLH:hax0rbana.org?via=hax0rbana.org)
   - Existing Matrix users can go to #signet:hax0rbana.org
   - Please do search the [issue tracker](https://gitlab.hax0rbana.org/hax0rbana_public/signet/signet-client/-/issues) first to see if it's a known issue
   - A Signet maintainer can create new issues and add comments to the issue tracker
3. Offer up code changes
   - Fork this repo and upload it to your git hosting provider (e.g. gitlab.com)
   - Notify developers via Matrix that you'd like them to merge in the changes
4. Spread the word about Signet
   - More people interested in the project means better support for users and developers!

Below are more details about our code of conduct, asking questions,
expectations for code contrubutions, and so forth.

## Table of Contents

- [Code of Conduct](#code-of-conduct)
- [I Have a Question](#i-have-a-question)
- [I Want To Contribute](#i-want-to-contribute)
- [Reporting Bugs](#reporting-bugs)
- [Suggesting Enhancements](#suggesting-enhancements)
- [Your First Code Contribution](#your-first-code-contribution)
- [Improving The Documentation](#improving-the-documentation)
- [Styleguides](#styleguides)
- [Commit Messages](#commit-messages)
- [Join The Project Team](#join-the-project-team)


## Code of Conduct

This project and everyone participating in it is governed by the
[Contributor Covenant](code_of_conduct.md).
By participating, you are expected to uphold this code. Please report unacceptable behavior
to signet@hax0rbana.org.

## I Have a Question

> If you want to ask a question, we assume that you have read the available [Documentation](https://hax0rbana.org/signet).

Before you ask a question, it is best to search for existing
[Issues](https://gitlab.hax0rbana.org/hax0rbana_public/signet/signet-client/-/issues)
that might help you. In case you have found a suitable issue and still need
clarification, please mention the issue number when asking so others can
quickly get the context for your question.

- Provide as much context as you can about what you're running into.
- Provide the operating system that you are using, the version of the client, and the version of your firmware

We will then get back to you as soon as possible.

## I Want To Contribute

The biggest thing we could use right now is spreading the word about the
project. We want people to know they have the option of using a hardware
password manager that is open source hardware, software, and firmware. If we
can grow the community, we'll be more likely to get additional contributors,
be that in the financial sense, contributing code or documentation, reporting
and helping to debug any issues, and so forth.

### Financial
If you find it valuable to have the option of using a simple, open source,
hardware password manager, and can afford to donate in any amount, we'd be most
grateful.

- Bitcoin address: bc1qwfggde4gsp8gyw78lxvsmass4fjzgx9gr43k3q
- Ethereum address: 0x57ec077699017733C950F9cBB67F01064B2122b4

Most of the work of projects like these isn't assembling the actual hardware,
it's all the things that most people don't see. Things like writing and
maintaining the software, signing releases, creating the documentation,
experimenting with improved hardware designs (often due to electronics
components being unavailable).

This adds up to hundreds of hours of unpaid work, and out of pocket costs for
the hardware changes that didn't pan out. If you find this project valuable,
either personally or you just like the idea of open, non-corporate security
hardware existing in the world, donations help motivate us to keep grinding
away.

### Spreading the word
Tell your friends, family, people you meet at your local 2600 meetings, people
at your local makerspace, and the infomation security (infosec) people you
know. Talk about it at conferences, show it off, Toot or Tweet about it.

### Code
If you want to contribute code:

> ### Legal Notice 
> When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project license.

### Improving The Documentation
The documentation is always a place where we could use your help, especially
if you are new to the project. Things that may be obvious to the developers
who have spent months working on the project won't be obvious to people just
encountering Signet for the first time.

If you find the existing documentation lacking (incorrect, incomplete,
inaccurate, or incoherent), please mention it in our Matrix room:
[#signet:hax0rbana.org](https://matrix.to/#/!VutlshEatUbUOJRlLH:hax0rbana.org?via=hax0rbana.org)

If you want to edit the existing documentation or add to it, please coordinate
with us via Matrix for that as well.

## Styleguides

Please follow the same coding style of the code that you are modifying. It
should not be possible to look at the formatting of the code and immediately
be able to determine who wrote it. We want a uniform style despite having code
from various people.

### Commit Messages
We use [Conventional commits](https://www.conventionalcommits.org/en/v1.0.0/)
for our commit messages and ask that you do the same.  The common scopes are:

- feat
- fix
- doc

## Attribution
This guide is loosely based on the [contributing.md](https://contributing.md/)!
