Skip to content
This page is for the development version of rmpc. Make sure your version matches the selected documentation.

Development and contributing

Contributing to rmpc

Thank you for taking interest in helping rmpc! Hopefully this short guide will help you run and debug the project.

Table of contents

Prerequisites

  • This guide assumes you are reasonably familiar with git and github.
  • You will also need to have rust installed on your system. You can install it from the official website https://www.rust-lang.org/tools/install

Dev setup and running rmpc from the source code

Running rmpc is very straight forward.

  1. Ensure you have latest version of rust installed.

  2. Clone the repository and switch to the newly created directory

Terminal window
git clone https://github.com/mierak/rmpc.git
cd rmpc
  1. Run rmpc
Terminal window
# in debug mode
cargo run
# or in release mode
cargo run --release
  1. Setup your config file for debug mode

Rmpc will search for config.debug.ron instead of config.ron in debug mode. This means you do not have to change your usual config file to develop and debug rmpc. You can also use a special Logs pane your debug config which displays logs directly in rmpc.

Formatting the code

Rmpc uses rustfmt nightly to format the code.

  1. Install nightly rustfmt
Terminal window
rustup component add rustfmt --toolchain nightly
  1. Format the code
Terminal window
cargo +nightly fmt --all

AI usage

Rmpc is a project created by a human in their spare time and for humans to enjoy. Usage of AI is allowed but you, the contributor, are responsible for the submission. If you wish to contribute using AI you must follow these few points:

  • All AI usage MUST be disclosed. State what tool you used and to what extent you used its assistance.
  • You, the human, MUST fully understand the code changes you made and how they affect the rest of the system.
  • Do not copy paste or otherwise use AI to generate messages and descriptions in issues and PRs. These are for human interaction and talking to an LLM via a proxy is demotivating at the very least. If you wish to include AI generated text, you are allowed to do so in its own section of the comment/description body and it must be clearly labeled as AI generated.
  • Failure to follow these rules may result in closing your issue/PR without notice.

Reporting an issue

Please fill the Bug Report template if you encounter an issue which is not yet solved in the current git version of rmpc and include all information relevant to your issue.

Sometimes you might be asked to provide trace level logs. You can obtain them by running rmpc with RUST_LOG environment variable set to trace. The log file is located at /tmp/rmpc_${UID}.log. These logs can be very verbose so you might have to upload them somewhere and link them to the issue.

Terminal window
RUST_LOG=trace rmpc
# or if you are running directly from source code
RUST_LOG=trace cargo run

Requesting a feature

Similar to the bug report, please fill out the Feature Request template.

Submitting a pull request

This is just a small checklist to potentially reduce the amount of back and forth when submitting pull requests.

  • Format the code
  • Run clippy (stable)
  • Ensure that all tests pass by running cargo test
  • Update the documentation if your feature changed, added or removed behavior
  • Note your change in the changelog
  • Address all comments in the pull request

Documentation

The documentation lies in a separate repository. The docs area created with astro javascript framework. All contributions and improvements to the documentation are welcome.

There are multiple sections in the docs, primarily src/content/docs/next and src/content/docs/release which correspond to the current dev and release version respectively.

To run the documentation locally:

  1. Ensure you have node.js installed.
  2. Go to the repository root and install dependencies
Terminal window
npm install
  1. Run the dev server
Terminal window
npm run dev

A local HTTP server will be started. Navigate to http://localhost:4321 and you should see the docs website. All changes you make to the docs should be automatically reflected in your browser.