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
- Dev setup and running rmpc from the source code
- AI usage
- Formatting the code
- Reporting an issue
- Requesting a feature
- Submitting a pull request
- Documentation
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.
-
Ensure you have latest version of rust installed.
-
Clone the repository and switch to the newly created directory
git clone https://github.com/mierak/rmpc.gitcd rmpc- Run rmpc
# in debug modecargo run# or in release modecargo run --release- 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.
- Install nightly
rustfmt
rustup component add rustfmt --toolchain nightly- Format the code
cargo +nightly fmt --allAI 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.
RUST_LOG=trace rmpc# or if you are running directly from source codeRUST_LOG=trace cargo runRequesting 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:
- Ensure you have node.js installed.
- Go to the repository root and install dependencies
npm install- Run the dev server
npm run devA 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.