Thank you for your interest in contributing to the Smash Protocol and Smash-Node-Lib! ✨
All the code you contribute is owned by YOU and contributed in the public domain under the terms of our LICENSE (extended AGPL-3.0).
Read our CODE OF CONDUCT to keep our community approachable and respectable. We also encourage you to read more about our project values and principles before contributing.
This guide outlines the contribution workflow, explains key tools and processes, and provides resources to get started. We value your time and efforts in making Smash Protocol better for everyone.
We follow the Contributor Covenant Code of Conduct to ensure an open, welcoming, and respectful community. Please read it before you start contributing.
We don't use any CLAs (Contributor License Agreements), therefore you are free to contribute to the project under your own name.
All the code you contribute is owned by you and contributed in the public domain under the terms of our License (extended AGPL-3.0).
We use Radicle—a decentralized Git collaboration network—for code management and contributions. Before contributing, you need a Radicle identity (DID).
- Install Radicle:
curl -sSf https://radicle.xyz/install | sh - Create a new identity or log in:
rad auth
For a complete guide, visit the Radicle User Documentation.
-
Connect to Smash’s seeding node:
Last updated: 2024-12-10. Find an up-to-date list of seeding nodes here.
rad node connect z6MkiXzPZSV6yx6wHSdSPNpVVytxauiLzhU1jG8sVmxdZkcn@rad-node.smashchats.com:8778
-
Clone the repository:
Last updated: 2024-12-10. Find an up-to-date list of repositories IDs here.
rad clone rad:zZ6oTFp8JrVyhEQmrcfkQkQgmoQJ # Smash-Node-Lib
Alternatively, you can request access to the GitHub mirror and clone it:
git clone https://github.com/smashchats/smash-node-lib.gitWe use Radicle Patches for collaboration instead of GitHub Pull Requests (PRs). A patch is a local-first, decentralized way to propose and review changes.
-
Create a Branch:
git checkout -b feat/my-feature
-
Make Changes: Edit your files and commit changes:
git add . git commit -m "Description of changes"
-
Propose a Patch: Push your changes to the
refs/patchesbranch:git push rad HEAD:refs/patches
-
Update an Existing Patch: Amend or add new commits, then force-push:
git commit --amend # or add new commits git push --force # update the patch
-
Review and Merge: Maintainers will review your patch. Approved patches are merged into the default branch using Git.
The current default branch is
main(updated: 2024-12-13).
We manage issues through the rad CLI. Browse open issues.
- List all open issues:
rad issue
- Open a new issue:
rad issue open
- Comment on an issue:
rad issue comment <id>
- Close an issue:
rad issue state <id> --closed # or --solved
Here are some resources to help you contribute effectively:
- Smash Protocol Developer Notes
- Smash Developers Telegram Group (request access to maintainers)
- Radicle Documentation
- Project README
All contributions to Smash-Node-Lib are made under our extended AGPL-3.0 License. By contributing, you agree to license your work under these terms.