mkdir -p romm_mock/library/roms/switch
touch romm_mock/library/roms/switch/metroid.xci
mkdir -p romm_mock/resources
mkdir -p romm_mock/assets
mkdir -p romm_mock/config
touch romm_mock/config/config.yml
cp env.template .env
# https://mariadb.com/docs/skysql-previous-release/connect/programming-languages/c/install/#Installation_via_Package_Repository_(Linux):
sudo apt install libmariadb3 libmariadb-dev pipx
You'll need poetry installed
https://python-poetry.org/docs/#installing-with-the-official-installer
pipx install poetry
Then create the virtual environment
# Fix disable parallel installation stuck: $> poetry config experimental.new-installer false
# Fix Loading macOS/linux stuck: $> export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
poetry install --sync
If you are on Arch Linux or another Arch-based distro, you need to run the command as follows:
# https://bbs.archlinux.org/viewtopic.php?id=296542
CFLAGS="-Wno-error=incompatible-pointer-types" poetry install --sync
docker-compose up -d
*__*Migrations will be run automatically when running the backend.__*
cd backend
poetry run python3 main.py
cd backend
poetry run python3 worker.py
cd frontend
# npm version >= 9 needed
npm install
mkdir assets/romm
ln -s ../backend/romm_mock/resources assets/romm/resources
ln -s ../backend/romm_mock/assets assets/romm/assets
npm run dev
We use Trunk for linting, which combines multiple linters and formatters with sensible defaults and a single configuration file. You'll need to install the Trunk CLI to use it.
curl https://get.trunk.io -fsSL | bash
Alternative installation methods can be found here. On commit, the linter will run automatically. To run it manually, use the following commands:
trunk fmt
trunk check
Failing to install and run the linter will result in a failed CI check, which won't allow us to merge your PR.
docker exec -i mariadb mariadb -u root -p<root password> < backend/romm_test/setup.sql
*__*Migrations will be run automatically when running the tests.__*
cd backend
# path or test file can be passed as argument to test only a subset
poetry run pytest [path/file]