Execution Environments
The Execution Environment is the Python environment in which the
Snippet Framework runs every Dynamic Application snippet. When you build a
custom Execution Environment for a PowerPack, you decide which libraries are
installed in it. The default set of libraries includes one
silo-low-code-steps-* library for each family of
Steps (for example, silo-low-code-steps-ssh), along with
every transitive dependency those Steps need. If your PowerPack or Dynamic
Application does not use a family of Steps, you can leave that steps
library, and the dependencies only it requires, out of your Execution
Environment.
Trimming
Trimming is the method for creating a custom Execution Environment: you
start from the default set of libraries and remove the steps libraries
(and the dependencies only they require) that your PowerPack or Dynamic
Application does not use.
Important
Always duplicate (copy) the Execution Environment before you make any changes, and make your adjustments to the copy only. Never trim the original Execution Environment, so that you can always return to the original set of libraries.
Benefits of Trimming
Smaller PowerPack: every library in the Execution Environment is packaged into the PowerPack. Removing unused libraries (for example the compiled
ssh2-pythonandgeventwheels used only by thesshSteps) reduces the size of the PowerPack that you build, upload, and distribute.Faster snippet execution: every
silo-low-code-steps-*library that is installed registers all of its Steps each time a snippet executes, whether or not the snippet uses them. Removing astepslibrary that you do not use removes that registration work (and the imports it triggers) from every snippet execution.Smaller dependency surface: fewer installed libraries means fewer libraries to track for vulnerabilities and version conflicts.
Note
Trimming is optional. Only remove a steps library when you are certain
that no Dynamic Application in the PowerPack, and no
custom step it ships, uses any Step provided by that
library. A snippet that references a Step that is not installed fails when
it runs.
What Can Be Removed
Each row below lists a steps library, the Steps it provides, and the
libraries to remove if you do not use
any of those Steps. The libraries to remove are the steps library itself
plus the transitive dependencies that no other library remaining in the
Execution Environment requires. You can remove any combination of rows.
Warning
Never remove silo-low-code-steps-standard. Removing it prevents the
low_code syntax from being registered, and snippet arguments that use it will not
run.
Steps library |
Steps it provides |
Libraries to remove if unused |
Total libraries |
|---|---|---|---|
|
|
|
4 |
|
|
|
2 |
|
|
|
1 |
|
|
|
1 |
|
|
|
1 |
|
|
|
9 |
|
|
|
5 |
Removing Libraries
Libraries are removed manually from a custom Execution Environment using the Skylar One Execution Environment Manager in the user interface.