4.5 KiB
Developer Guide
All contributions to RenderCV are welcome!
The source code is thoroughly documented and well-commented, making it an enjoyable read and easy to understand. A detailed documentation of the source code is available in the reference.
Getting Started
There are two ways of developing RenderCV: locally or with GitHub Codespaces.
Develop Locally
-
Ensure that you have Python version 3.10 or higher.
-
Install Hatch, as it is the project manager for RenderCV. The installation guide for Hatch can be found here.
-
Clone the repository recursively (because TinyTeX is being used as a submodule) with the following command.
git clone --recursive https://github.com/sinaatalay/rendercv.git -
Go to the
rendercvdirectory.cd rendercv -
RenderCV uses three virtual environments:
default: For the development. It contains packages like Ruff, Black, etc.docs: For building the documentation.test: For testing RenderCV.
Create the virtual environments with the following commands.
hatch env create default hatch env create docs hatch env create test -
To use the virtual environments, either
-
Activate one of the virtual environments with one of the following commands.
hatch shell defaulthatch shell docshatch shell test -
Select one of the virtual environments in your Integrated Development Environment (IDE).
=== "Visual Studio Code"
- Press `Ctrl+Shift+P`. - Type `Python: Select Interpreter`. - Select one of the virtual environments created by Hatch.=== "Other"
To be added.
-
Develop with GitHub Codespaces
- Fork the repository.
- Navigate to the forked repository.
- Click the <> Code button, then click the Codespaces tab, and then click Create codespace on main.
Then, Visual Studio Code for the Web will be opened with a ready-to-use development environment.
This is done with Development containers, and the environment is defined in the .devcontainer/devcontainer.json file. Dev containers can also be run locally using various supporting tools and editors.
Available Commands
These commands are defined in the pyproject.toml file.
- Format the code with Black
hatch run default:format - Lint the code with Ruff
hatch run default:lint - Sort the imports with isort
hatch run default:sort-imports - Check the types with Pyright
hatch run default:check-types - Run the tests
hatch run test:run - Run the tests and generate a coverage report
hatch run test:run-and-report - Start the development server for the documentation
hatch run docs:serve - Build the documentation
hatch run docs:build - Update schema.json
hatch run docs:update-schema - Update
examplesfolderhatch run docs:update-examples - Update figures of the entry types in the "Structure of the YAML Input File"
hatch run docs:update-entry-figures
About pyproject.toml
pyproject.toml contains the metadata, dependencies, and tools required for the project. Please read through the file to understand the project's technical details.