mirror of https://github.com/DJ2LS/FreeDATA.git
Added basic CONTRIBUTING.md
parent
e2652b746a
commit
9f5c20d174
|
|
@ -0,0 +1,55 @@
|
|||
# Contribution Guide
|
||||
|
||||
## Required Tools and Dependencies
|
||||
|
||||
The backend of FreeDATA is built with python, with a couple dependencies written
|
||||
in C/C++, and the frontend is build with VueJS, so you will need Python (from
|
||||
3.10 to 3.13) to work on the backend, and node+npm to work on the frontend.
|
||||
|
||||
System dependencies required:
|
||||
- python3 (with virtual environment support)
|
||||
- portaudio
|
||||
- hamlib (optional, there is a vendored version bundled with the freedata
|
||||
server, or you can build it from source)
|
||||
- nodejs + npm
|
||||
|
||||
Example for debian trixie: `sudo apt update && sudo apt install python3
|
||||
python3-venv nodejs npm portaudio19-dev`
|
||||
|
||||
Example for MacOS: `brew install python pyenv-virtualenv npm node@24 portaudio`
|
||||
|
||||
To fetch the python dependencies create a virtual environment and next use pip:
|
||||
|
||||
- Create a virtual environment: `python -m venv venv`
|
||||
- Load the virtual environment `source venv/bin/activate`
|
||||
- There are several sets of dependencies you can install:
|
||||
- `pip install .` installs only the libraries required to run freedata
|
||||
- `pip install .[test]` installs the libraries required for running and testing
|
||||
freedata
|
||||
- `pip install .[dev]` installs the libraries required for running, testing
|
||||
and linting/checking freedata
|
||||
- `pip install .[build]` installs only the libraries required to run and build
|
||||
the freedata pip module
|
||||
- `pip install .[nuitka]` installs only the libraries required to run and
|
||||
build the freedata windows executable
|
||||
|
||||
To fetch the `npm` dependencies go inside `./freedata_gui` and run `npm
|
||||
install`. See `./freedata_gui/README.md` for additional informations.
|
||||
|
||||
## Linting and Formatting (python-only)
|
||||
The python sources must be formatted and checked using `ruff`. There is a CI
|
||||
workflow that block all PRs that do not pass the linter/formatter checks.
|
||||
|
||||
- To check formatting run `ruff format --check` (lists file that needs formatting)
|
||||
- To see what the automatic formatter will change run `ruff format --diff` (shows
|
||||
diff-style changes).
|
||||
- To automatically format files run `ruff format`
|
||||
|
||||
- To run the checker/linter execute `ruff check`
|
||||
- Some errors can be automatically fixed running `ruff check --fix`, but always
|
||||
check and test the changes made by ruff. There are errors that ruff cannot safely
|
||||
fix automatically, you must fix them manually.
|
||||
|
||||
## Testing backend
|
||||
To run the backend tests run inside the virtual environment `python -m unittest
|
||||
discover tests`
|
||||
Loading…
Reference in New Issue