We appreciate any help! If you want to contribute, here is how to get started:
git clone
cd beets-flask
We use a development container for a consistent development environment across devices You can use the provided docker-compose-dev.yaml
to start a development container.
docker-compose -f docker-compose-dev.yaml up --build
This mounts ./
to /repo
in the container for live reloading and enhanced development experience and starts the development flask server and serves the frontend at http://localhost:5173
.
Normally the dependencies (inside the container) should be installed automatically, but we noticed that especially on Apple Silicon, the dependency installation can fail. In this case, you can install the dependencies manually:
docker exec -it beets-flask-dev bash
cd /repo/frontend
pnpm install
pnpm run dev
If you are having issues installing dependencies with pnpm, try:
rm -rf /repo/frontend/node_modules
rm -rf /repo/frontend/dist
rm -rf /repo/.pnpm-store
pnpm store prune
# and/or reset the lockfile
rm -rf /frontend/pnpm-lock.json
Please make sure the tests pass and the code is linted before submitting a pull request. We recommend to setup pre-commit hooks to ensure this.
pip install pre-commit
pre-commit install
^ This should now automatically reject commits that do not pass the linting and formatting checks.
You may run our tests locally with:
cd backend
pip install .[dev,test]
pytest
Further if you want to make sure that the types are correct, you can run:
cd backend
mypy beets_flask
See also Resources.md for some background information and design choices.
Thank you for contributing! We highly appreciate any help.