# Contributing to Lilex Thank you for your interest in improving Lilex. ## Contribute an issue In most cases, submitting an issue is the first step to contributing to Lilex. Check existing issues and see if your issue has not already been described. Then use one of the templates to ask a question, report an issue or suggest an improvement. ## Contribute improvements or fixes ### Setup Whatever you plan to do with the project (except perhaps changing the documentation), you will need to configure the builder. At the moment building is possible on Ubuntu, Debian and macOS. First, install the system dependencies: on **macOS** run: ```sh brew install cairo freetype harfbuzz pkg-config libgit2 ``` on **Ubuntu / Debian** run: ```sh sudo apt install python3-setuptools ttfautohint build-essential libffi-dev libgit2-dev ``` Then install project level dependencies and setup git hooks. It will require you to have [uv](https://docs.astral.sh/uv/) installed. ```sh make configure ``` #### Website If you are planning to change the preview website in the [`website/`](website/) directory, you need also install the node dependencies: ```sh make website-configure ``` ### Changing font sources Following the instructions in the [`sources/README.md`](sources/README.md) file. Do not update [`fonts/`](fonts/) directory manually. It is auto-generated by the CI runner. Run `make build` to build the font. ### Changing scripts After changing the scripts, ensure that the interface for interacting with Makefile remains functional. Run `make scripts-lint` to check the scripts for errors. ### Changing website After changing the website, ensure that the interface for interacting with Makefile remains functional. Run `make website-lint` to check the website code for errors. Run `make website-build` to build the website. The font MUST be built before building the website. ### Commit messages Commit messages are named according to the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/): - If the edit concerns the website ([website/](website/) directory), the commit must contain `website` scope: `fix(website): ...`; - There are no other scopes. ### Pull Request Here are the basic requirements to consider when requesting a pull request: 1. Make sure your PR does not duplicate another PR; 2. The request is directed to the `master` branch; 3. All changes have been checked, nothing unnecessary has been added to the PR; 4. All CI checks are passing; 5. Affected issues and linked PRs are linked; 6. If changes are made to the font sources, [CHANGELOG.md](CHANGELOG.md) must be updated;