Skip to content

Latest commit

 

History

History
128 lines (88 loc) · 4.19 KB

CONTRIBUTING.md

File metadata and controls

128 lines (88 loc) · 4.19 KB

Contributing

Table of contents

Feedback

While the maintainers might currently prioritize working on features, we are open to ideas and contributions by people and projects interested in using r3bl_rs_utils or r3bl-cmdr for other projects. Please feel free to:

  1. Open an issue.
  2. Chat with us on the r3bl discord in the dedicated #r3bl-cmdr channel.

Good starting points

If you want to get started, check out the list of issues with the "good first issue" label.

You can also browse the more information TODOs in TODO.todo which haven't been turned into issues yet.

Please follow the Rust Code of Conduct all the way through!

🦜 New to terminals?

Here's a learning path to help you get started:

  1. A really good first step is taking a look at crossterm crate - it is small and relatively straight forward to understand. This will give you good exposure to the underlying terminal stuff. Here's a link to the repo's examples.
  2. Here's some documentation w/ lots of background information on terminals, PTY, TTY, etc.

🐒 New to the R3BL codebase?

  1. A great starting point is this this README. Here are some important sections:
  2. Here's a repo that is a good one to start working on first. This repo is for a simple address book CLI app that does NOT have TUI support. It is a good app to convert to using the TUI library to get a solid handle on how to build TUIs. This app was intended to be a pedagogical example to get a handle on this stuff.
  3. Here are some resources to learn more about the project itself:

Developing

Set up

This is no different than other Rust projects.

git clone https://github.com/r3bl-org/r3bl-cmdr
cd r3bl-cmdr
# To try our example program
cargo run

Code style

We follow the standard Rust formatting style and conventions suggested by clippy.

Best practices before submitting a PR

Before submitting a PR make sure to run:

  1. for formatting (a rustfmt.toml file is provided):

    cargo fmt --all
  2. the clippy lints

    cargo clippy
  3. the test suite

    cargo test