Skip to content

Latest commit

 

History

History
83 lines (56 loc) · 3.09 KB

CONTRIBUTING.md

File metadata and controls

83 lines (56 loc) · 3.09 KB

Contributions Guide

Hi! We're glad that you're interested in contributing to idf-build-apps. This document would guide you through the process of setting up the development environment, running tests, and building documentation.

Supported ESP-IDF Versions

Here's a table shows the supported ESP-IDF versions and the corresponding Python versions.

ESP-IDF Version ESP-IDF Supported Python Versions idf-build-apps Releases
4.1 2.7, 3.4+ 1.x
4.2 2.7, 3.4+ 1.x
4.3 2.7, 3.4+ 1.x
4.4 2.7, 3.4+ 1.x
5.0 3.7+ main (2.x)
5.1 3.7+ main (2.x)
5.2 3.7+ main (2.x)
5.3 3.8+ main (2.x)
5.4 3.8+ main (2.x)
master (5.5) 3.9+ main (2.x)

idf-build-apps is following the semantic versioning. The major version of idf-build-apps is the same as the ESP-IDF version it supports. For example, idf-build-apps 1.x supports ESP-IDF 4.x, and idf-build-apps 2.x supports ESP-IDF 5.x.

In order to compatible to all 5.x ESP-IDF versions, please don't forget to keep the code compatible with python 3.7, even it's end of life on 2023-06-05.

Besides, pydantic dropped 3.7 support since 2.6.0. Don't rely on pydantic 2.6.0+ since we're still supporting python 3.7.

Setup the Dev Environment

  1. Create virtual environment

    python -m venv venv
  2. Activate the virtual environment

    . ./venv/bin/activate
  3. Install flit

    We use flit to build the package and install the dependencies.

    pip install flit
  4. Install all dependencies

    All dependencies would be installed, and our package idf-build-apps would be installed with editable mode.

    flit install -s

Run Testing

We use pytest for testing.

pytest

Build Documentation

We use sphinx and autodoc for generating documentation and API references. Besides, we treat warnings as errors while building the documentation. Please fix them before your commits got merged.

cd docs && make html

For documentation preview, you may use any browser you prefer. The executable has to be searchable in PATH. For example we're using firefox here.

firefox _build/html/index.html