Sideband/CONTRIBUTING.md
2026-10-01 16:59:29 +02:00

6.1 KiB

Contributing to Reticulum

Welcome, and thank you for your interest in contributing to Reticulum!

Before interacting with this community, read these short and simple guidelines.

If you didn't shit your pants after reading this document, you may well find that we are all really quite cuddly and nice to be around. Mostly.

Expected Conduct

First and foremost, there is one simple requirement for taking part in the development of this technology: While we primarily interact virtually, your actions matter and have real consequences. Therefore: Act like a responsible, civilized person - especially in the face of disputes and heated disagreements. Speak your mind here; discussions are welcome. Just do so in the spirit of being face-to-face with everyone else. Thank you.

In order to keep the discourse navigable and useful, the following types of posts and inquiries will be deleted and ignored:

  • Spam.
  • Questions that have already been adequately answered elsewhere. Utilize search functions.
  • Low-effort posts or comments that contain no actual information or useful substance. This is not a tea-house.
  • Post or comments solely containing personal opinions or beliefs without adding anything to the discussion. Facebook and X exists.
  • Content that simply waste the developer's / maintainer's time with completely obvious "ideas", "insights" or "recommendations". Yes, we have at least 8 neurons ourselves.
  • Posts that fail to understand that developing a highly complex software project with a very small amount of resources and people takes time. Imagining perfection on our behalf is useless.

If you're new to the community and start out your engagement with any of the above transgressions, you will simply be banned permanently without notice or explanation, and any further communication from you will be ignored.

Except for the case of real, well-grounded, clearly documented, human-written security advisories, technical investigations or bug reports, if your inquiry or communication is not attached to a Reticulum Identity, expect it to be ignored.

If you find this "harsh", "unfair" or "unwelcoming", go somewhere else. This is not social club, but a work environment for the people contributing to the project.

Reporting Bugs

If you have found a bug or issue in this project, please report it to the maintainer over LXMF, or if strictly not possible, over email. Detailed and serious bug reports can also be posted in the various on-network forums and RRC channels that the developers frequent. Due to the realities described in This Is Not a Teahouse, there is no way to report issues or request features over the internet.

Writing Code

Patches and code contributions are generally only welcomed from developers already known to the community, with a proven track-record of competence, skill, careful and considerate design and responsible conduct. If we do not know you yet, but you have created something that you believe lives up to such standards, we are eager to hear from you.

Current development priorities and work documents are not publicly available on the internet, but shared and coordinated directly between the developers over Reticulum itself, following the principles outlined in Distributed Development.

Commit Signing

All commits in Reticulum and related projects must be signed with a Reticulum identity. If you want your author credentials to be included directly in the commit log, ensure that you have configured commit signing. Bare patches submitted manually or fetched remote commits without signatures are still very welcome, but we will review, squash merge and sign with the key of the maintainer that approved the changes. Attribution will be provided in the commit message instead (unless you wish to remain anonymous).

Machine Assistance & LLMs

For a highly complex, critical piece of cryptographically based networking infrastructure, we should not need to state the following, but alas, experience has proven otherwise. Therefore:

Including material generated using LLMs or other "AI" programs in Reticulum is, almost without exception, prohibited.

Before even thinking about using a generative software system to "create" something for Reticulum, read Brandolini's Reference, in full. If you do not have the capacity for that, you have failed the first requirement for contributing: Basic literacy.

If you are not already a known contributor with a proven record of being able to responsibly handle these tools, a full audit trail of all ML-utilizing workflows, including prompts, LLM reasoning traces, tool calls and outputs (that is, the entire, unaltered session log) will need to be provided with any proposed contribution. Without that, we will not even consider looking at it.

This applies to all Reticulum-related projects and documentation, as well as all submitted issues, reports and discussion, except of course in cases where language translation, speech recogntion, or other assistive technologies are required.

In all circumstances, clear disclosure is mandatory. Any piece of material, file, code snippet, method, function or similar that was generated with machine assistance must be prepended with a disclosure header or comment that states the framework, exact model used and reviewer, such as:

# Generated with lc/deepseek_v4_flash_q8_k_xl
# Reviewed and corrected by Mark Qvist

Additionally, any explanatory comments or doc-strings generated by software must be manually re-written in clear, concise language by the reviewer stated in the disclosure header.

Contributor License Agreement

By contributing code to this project, you agree that copyright for the code is transferred to the Reticulum maintainers and that the code is irrevocably placed under the Reticulum License.

For a more in-depth elaboration on the current CLA position, see this post.