Skip to main content

The component manager for ESP-IDF

Project description

IDF Component Manager

The IDF Component manager is a tool that downloads dependencies for any ESP-IDF CMake project. It makes sure that the right versions of all components required for a successful build of your project are in place. The download happens automatically during a run of CMake. It can source components either from the component registry or from a git repository.

A list of components can be found on https://components.espressif.com/

Installing the IDF Component Manager

IDF component manager can be used with ESP-IDF v4.1 and later.

For ESP-IDF v4.4 the idf-component-manager package is installed by default and no extra action is necessary.

In ESP-IDF v4.1 — v4.3, you need to install the following Python package to use the component manager:

source $IDF_PATH/export.sh
pip install idf-component-manager --upgrade

Activating the Component Manager

If CMake is started using idf.py or ESP-IDF VSCode Extension then the Component manager will be activated by default.

If CMake is used directly or with some CMake-based IDE like CLion, it’s necessary to set the IDF_COMPONENT_MANAGER environment variable to 1 to enable the component manager integration with the build system.

Using with a project

You can add idf_component.yml manifest files with the list of dependencies to any component in your project.

IDF Component Manager will download dependencies automatically during the project build process.

When CMake configures the project (e.g. idf.py reconfigure) component manager does a few things:

  • Processes idf_component.yml manifests for every component in the project
  • Creates a dependencies.lock file in the root of the project with a full list of dependencies
  • Downloads all dependencies to the managed_components directory

The component manager won't try to regenerate dependencies.lock or download any components if manifests, lock file, and content of managed_component directory weren't modified since the last successful build.

Defining dependencies in the manifest

All dependencies are defined in the manifest file.

dependencies:
  # Required IDF version
  idf: ">=4.1"
  # For components maintained by Espressif only name can be used.
  # Same as `espressif/component`
  component:
    version: "~2.0.0"
  # Or in a shorter form
  component2: ">=1.0.0"
  # For 3rd party components :
  username/component:
    version: "~1.0.0"
    # For transient dependencies `public` flag can be set.
    # `public` flag doesn't have an effect for the `main` component.
    # All dependencies of `main` are public by default.
    public: true
  anotheruser/component: "<3.2.20"
  # For components hosted on non-default registry:
  company_user/component:
    version: "~1.0.0"
    service_url: "https://componentregistry.company.com"
  # For components in git repository:
  test_component:
    path: test_component
    git: ssh://git@gitlab.com/user/components.git
  # For test projects during component development
  # components can be used from a local directory
  # with relative or absolute path
  some_local_component:
    path: ../../projects/component

Contributions Guide

We welcome all contributions to the Component Manager project.

You can contribute by fixing bugs, adding features, adding documentation, or reporting an issue. We accept contributions via Github Pull Requests.

Before reporting an issue, make sure you've searched for a similar one that was already created. If you are reporting a new issue, please follow the Issue Template.

Resources

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

idf_component_manager-0.3.2b0.tar.gz (55.9 kB view details)

Uploaded Source

Built Distribution

idf_component_manager-0.3.2b0-py3-none-any.whl (75.5 kB view details)

Uploaded Python 3

File details

Details for the file idf_component_manager-0.3.2b0.tar.gz.

File metadata

  • Download URL: idf_component_manager-0.3.2b0.tar.gz
  • Upload date:
  • Size: 55.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for idf_component_manager-0.3.2b0.tar.gz
Algorithm Hash digest
SHA256 152e92781fc6eb36cd681fd7d5344f318150012af32a543ba67d49978ad8a277
MD5 488a01d6bbf2ecf75ece81c015ad28d4
BLAKE2b-256 e967f2ba6f1d89324ec0507ec53f437773f9d71747a59e16fab4e338822903e0

See more details on using hashes here.

File details

Details for the file idf_component_manager-0.3.2b0-py3-none-any.whl.

File metadata

  • Download URL: idf_component_manager-0.3.2b0-py3-none-any.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for idf_component_manager-0.3.2b0-py3-none-any.whl
Algorithm Hash digest
SHA256 882f5de96c22fb80fb8ca8054ad265c6031b477b1de11091d3a0d297704be4ce
MD5 619849c167e00fb5a1271bd577d7fe2d
BLAKE2b-256 1caad11d85622ef0b8922a3c5d8c2471717fbb2b64e0ac52451602ca1f7ce705

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page