Metadata-Version: 2.1
Name: idf-component-manager
Version: 0.2.1a1
Summary: Espressif IDF component manager
Home-page: https://espressif.com
Author: Sergei Silnov
Author-email: sergei.silnov@esspressif.com
Maintainer: Sergei Silnov
License: Apache License 2.0
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Description-Content-Type: text/markdown
Requires-Dist: future
Requires-Dist: pyyaml
Requires-Dist: requests
Requires-Dist: requests-toolbelt
Requires-Dist: schema
Requires-Dist: semantic-version
Requires-Dist: six
Requires-Dist: tqdm
Requires-Dist: pathlib ; python_version < "3.4"

# IDF Component Management

Component manager for ESP IDF

## Use with idf.py

To use component manager with `idf.py` install `idf-component-manager` python package to idf's virtual environment. Then `idf_component.yml` manifests will be processed automatically when CMake is running.

## Use without IDF

Some features, like uploading a component to the service are available without IDF. It's useful for CI pipelines where IDF may not be available.

The component manager may be executed as a python module, for example:

```
python -m idf_component_manager create-remote-component --namespace espressif --name test
```

## Writing the manifest

Example of a component manifest:

```yaml
version: "2.3.1" # Component version, required only for components pushed to the service
targets: # List of supported targets (optional, if missing all targets are considered to be supported)
    - esp32
description: Test project # Description (optional)
url: https://github.com/espressif/esp-idf # Original repository (optional)
dependencies:
    # Required IDF version
    idf:
        version: ">=4.1"
    # For components maintained by Espressif:
    # Same as `espressif/component`
    component:
        version: "~1.0.0"
    # For 3rd party components :
    username/component:
        version: "~1.0.0"
        public: true # For transient dependencies
    # For components hosted on non-official web service:
    company_user/component:
        version: "~1.0.0"
        service_url: "https://componentservice.company.com"
    # For components in git repository:
    test_component:
        path: test_component
        git: ssh://git@gitlab.com/user/components.git
    # For components in local folder:
    some_local_component:
        path: ../../projects/component
```


