37 lines
2.2 KiB
Markdown
37 lines
2.2 KiB
Markdown
# Contributing
|
|
|
|
## Guidelines
|
|
|
|
While Polaris is free and open-source software, it is not very open to code contributions. The reasons behind this are:
|
|
- Polaris is a hobby project. I don't want it to feel like my day job, where I do a lot of code reviews, mentoring and tech leadership.
|
|
- I am committed to maintaining this software for a very long time. I would rather maintain code that I mostly wrote myself.
|
|
|
|
This still leave room for a few avenues to contribute:
|
|
- Help answering questions in the issue tracker.
|
|
- Package Polaris for a Linux distribution
|
|
- Documentation improvements or writing user guides.
|
|
- Satellite projects (eg. [docker-polaris](https://github.com/ogarcia/docker-polaris), [polarios](https://gitlab.com/elise/Polarios))
|
|
- Bug fixes.
|
|
|
|
For non-trivial new features, you are welcome to maintain a fork. If you need help finding your way around the code, feel free to open a [discussion thread](https://github.com/agersant/polaris/discussions).
|
|
|
|
## Compiling and running Polaris
|
|
|
|
1. [Install Rust](https://www.rust-lang.org/en-US/install.html) (stable toolchain)
|
|
2. Clone the polaris depot with this command: `git clone https://github.com/agersant/polaris.git`
|
|
3. You can now run compile and run polaris from the newly created directory with the command: `cargo run`
|
|
|
|
Polaris supports a few command line arguments which are useful during development:
|
|
|
|
- `-c some/config.toml` sets the location of the [configuration](/docs/CONFIGURATION.md) file.
|
|
- `--data some/path` sets the folder Polaris will use to store runtime data such as playlists, collection index and auth secrets.
|
|
- `-w some/path/to/web/dir` lets you point to the directory to be served as the web interface. You can find a suitable directory in your Polaris install (under `/web`), or from the [latest polaris-web release](https://github.com/agersant/polaris-web/releases/latest/download/web.zip).
|
|
- `-f` (on Linux) makes Polaris not fork into a separate process.
|
|
|
|
Putting it all together, a typical command to compile and run the program would be: `cargo run -- -w web -c test-config.toml`
|
|
|
|
While Polaris is running, access the web UI at [http://localhost:5050](http://localhost:5050).
|
|
|
|
## Running unit tests
|
|
|
|
That's the easy part, simply run `cargo test`!
|