This PR generates cli-extensions and bundles them in the msi package during build.
How It Works
This PR introduces changes that allow us to generate, build and install extensions.
The generate_extensions.py script generates extensions from Open API descriptions in open-api/beta. It first generates configuration files that autorest.az and autorest.python uses to generate extensions.
The next step is to build the generated extensions, which is done by the build_exstensions.py script. It builds the extensions into distributable python packages. The script also creates a manifest of installed extensions which the CLI uses for loading command modules.
Finally, extensions are installed by the install_extensions.py script. We also run this script when building msgraph-cli.
Known Issues
We are not generating extensions with long names, tracked in #AB 5222
Some extensions fail to generate, tracked in #AB 5223
Error stacktrace shown to the user, tracked in #AB 5224
Purpose
This PR generates cli-extensions and bundles them in the msi package during build.
How It Works
This PR introduces changes that allow us to generate, build and install extensions.
The
generate_extensions.py
script generates extensions from Open API descriptions inopen-api/beta
. It first generates configuration files that autorest.az and autorest.python uses to generate extensions.The next step is to build the generated extensions, which is done by the
build_exstensions.py
script. It builds the extensions into distributable python packages. The script also creates a manifest of installed extensions which the CLI uses for loading command modules.Finally, extensions are installed by the
install_extensions.py
script. We also run this script when buildingmsgraph-cli
.Known Issues
We are not generating extensions with long names, tracked in #AB 5222 Some extensions fail to generate, tracked in #AB 5223 Error stacktrace shown to the user, tracked in #AB 5224