Inspired by the policy in https://github.com/ggml-org/llama.cpp/blob/master/CONTRIBUTING.md
4.6 KiB
Hush Core (hushd) Software Contribution Guidelines
Thank you for reaching out and trying to make Hush an even better software application and cryptocoin platform. These contribution guidelines shall help you figuring out where you can be helpful and how to easily get started.
Table of Contents
- AI/LLM Usage Policty
- Types of contributions we're looking for
- Ground rules & expectations
- How to contribute
- Style guide
- Setting up your environment
- Contribution review process
- Community
AI/LLM Usage Policy
Important
This project does NOT accept pull requests that are fully or predominantly AI-generated. AI tools may be utilized solely in an assistive capacity. The human submitting new code to the project must actually understand the code changes they are submitting.
Code that is initially generated by AI and subsequently edited will still be considered AI-generated. AI assistance is permissible only when the majority of the code is authored by a human contributor, with AI employed exclusively for corrections or to expand on verbose modifications that the contributor has already conceptualized (e.g., generating repeated lines with minor variations).
If AI is used to generate any portion of the code, contributors must adhere to the following requirements:
- Explicitly disclose the manner in which AI was employed, including the exact model and quantization used and if it was done via local AI, such as with llama.cpp or a SaaS provider.
- Perform a comprehensive manual review prior to submitting the pull request.
- Be prepared to explain every line of code they submitted when asked about it by a maintainer.
- It is strictly prohibited to use AI to write your posts for you (bug reports, feature requests, pull request descriptions, Github discussions, responding to humans, ...).
Types of contributions we're looking for
There are many ways you can directly contribute to Hush:
- Debug and test the Hush Core code
- Find and fix bugs
- Improve suboptimal code
- Extend our software
- Perform a secure code review of Hush Full Node and other Hush-related software
We have a curated list of projects with details about difficulty level and languages involved: https://git.hush.is/hush/projects
Interested in making a contribution? Read on!
Ground rules & expectations
Before we get started, here are a few things we expect from you (and that you should expect from others):
- Be kind and thoughtful in your conversations around this project. We all come from different backgrounds and projects, which means we likely have different perspectives on "how free software and open source is done." Try to listen to others rather than convince them that your way is correct.
- If you open a pull request, please ensure that your contribution does not increase test failures. If there are additional test failures, you will need to address them before we can merge your contribution.
- When adding content, please consider if it is widely valuable. Please don't add references or links to things you or your employer have created as others will do so if they appreciate it.
How to contribute
If you'd like to contribute, start by searching through the issues and pull requests to see whether someone else has raised a similar idea or question.
If you don't see your idea listed, and you think it can contribute to Hush, do one of the following:
- If your contribution is minor, such as a fixing a typo, open a pull request.
- If your contribution is major, such as a new feature or bugfix, start by opening an issue first. That way, other contributors can weigh in on the discussion before you do any work.
Style guide
Don't write shitty code. Do not emulate "jl777 code style" from Komodo, we consider that a bug, not a feature.
Setting up your environment
The Hush Core (hushd) is mainly written in C++ with specific modules written in C. Follow the Install instructions to build hushd from sources. For more informations about the Hush Platform and a full API documentation please visit the official Hush Developer documentation
Other Hush software is written in Rust or Go. We avoid Javascript at all costs.
Contribution review process
We will tell you if we like your stuff.