Skip to content

Latest commit

 

History

History
162 lines (111 loc) · 4.86 KB

File metadata and controls

162 lines (111 loc) · 4.86 KB

Contributing to Smash-Node-Lib

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.


Table of Contents

  1. Code of Conduct
  2. Getting Started
  3. Making Changes
  4. Issues
  5. Resources
  6. Licensing

Code of Conduct

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).

Getting Started

Creating a Radicle Identity

We use Radicle—a decentralized Git collaboration network—for code management and contributions. Before contributing, you need a Radicle identity (DID).

Steps to Create a Radicle Identity:

  1. Install Radicle:
    curl -sSf https://radicle.xyz/install | sh
  2. Create a new identity or log in:
    rad auth

For a complete guide, visit the Radicle User Documentation.

Cloning the Repository

Using Radicle:

  1. 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
  2. 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

Using GitHub (Mirror):

Alternatively, you can request access to the GitHub mirror and clone it:

git clone https://github.com/smashchats/smash-node-lib.git

Making Changes

We use Radicle Patches for collaboration instead of GitHub Pull Requests (PRs). A patch is a local-first, decentralized way to propose and review changes.

Using Radicle Patches

  1. Create a Branch:

    git checkout -b feat/my-feature
  2. Make Changes: Edit your files and commit changes:

    git add .
    git commit -m "Description of changes"
  3. Propose a Patch: Push your changes to the refs/patches branch:

    git push rad HEAD:refs/patches
  4. 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
  5. 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).

Issues

We manage issues through the rad CLI. Browse open issues.

Working with Issues:

  1. List all open issues:
    rad issue
  2. Open a new issue:
    rad issue open
  3. Comment on an issue:
    rad issue comment <id>
  4. Close an issue:
    rad issue state <id> --closed # or --solved

Resources

Here are some resources to help you contribute effectively:

Licensing

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.