Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
1 contributor

Users who have contributed to this file

115 lines (87 sloc) 6.73 KB
title
Contributing

Contributing

Welcome to Interledger.rs!

Interledger.rs is an implementation of the Interledger Protocol (ILP) written in the Rust programming language. Contributions are very welcome and if you're interested in getting involved, this document provides some background on the project and how we work.

Prerequisites

Before diving in to Interledger.rs, you may find it helpful to familiarize yourself with some aspects of the Interledger Protocol itself and the Rust-based technologies we use:

Feature Requests

  • On Interledger
    • If you have questions about how Interledger works or ideas for new features, please visit the Interledger Forum and post your questions or comments.
  • On Interledger.rs
    • If you have any opinion on the features of Interledger.rs, please open issues describing what you think we need.

Pull Requests

We welcome pull requests (PRs) that address reported issues. You can find appropriate issues by bug or help-wanted labels. To avoid multiple PRs for a single issue, please let us know that you are working on it by a comment for the issue. Also we recommend to make discussions on the issue of how to address the issue, methodology towards the resolution or the architecture of your code, in order to avoid writing inefficient or inappropriate code.

Please follow the instruction below when making pull requests.

  • Make sure that your branch is forked from the latest master branch.
  • Make sure that you wrote tests, ran it and the results were all green.
  • Make sure to run cargo fmt before you commit.
    • To install rustfmt, run rustup component add rustfmt
  • Make sure to commit using -s or --signoff option like git cz -s.
    • cz means using the commitizen explained below.
    • Why we use the option is explained later in the Signing-off section.
  • Make sure that you committed using the commitizen format (commit messages should start with feat:, docs:, refactor:, chore:, etc). PRs may contain multiple commits but they should generally be squashed into one or a small number of complete change sets (for example, a feature followed by multiple refactors and another commit to add tests and docs should be combined into a single commit for that feature).
  • Make pull requests against master branch of this repository (emschwartz/interledger-rs) from your repository.
  • If reviewers request some changes, please follow the instruction or make discussions if you have any constructive opinions on the PRs you made.
    • Then if you want to make some changes on your PRs, push -f is allowed to renew your branch after squashing your new commits. You don't need to open new PRs.
  • For our examples, we adopted a literate programming approach. The examples are described in Markdown with shell commands included. The run-md.sh script parses the commands out of the Markdown file and runs them. If you want to add examples, please make sure your instruction file can be parsed and run by that script.
    • You can check if it is correct with running ../../scripts/run-md.sh README.md (in your example directory).

Signing-off

By using -s or --signoff option, you agree to the following agreement (Developer Certificate of Origin) which assures that your commits consist of your own code and/or code which you have rights to submit.

Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.


Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Bug Reports

If you find any bugs, please feel free to report them by opening an issue. Please look through existing issues before posting to avoid duplicating other bug reports.

To resolve the problem we need a detailed report of the bug. When you report your bugs, refer to the following example of a report.

Short summary: <summary>
Commit hash or branch: <hash or branch> (or even tag etc. to determine exact version)
How to reproduce the bug: <how to reproduce the bug> (procedure or sample code)
Description: <description> (explanation and/or backtrace)

Questions

If you have any questions, you can get in touch with us by posting on the Interledger Forum or in the #rust channel of the Interledger Slack.

Once again, welcome to Interledger.rs -- we look forward to working with you!

You can’t perform that action at this time.