Skip to content

Question: Bundling Python Dependencies into .nupkg for Offline Serverless Runtime Execution #1603

@bootsarp

Description

@bootsarp

Summary

When a Python-based UiPath process is invoked on the serverless runtime, dependencies are resolved and installed at cold-start time by reaching out to a remote package index (PyPI or a private repository such as Artifactory). This raises a question around whether there is a supported pattern for bundling dependencies directly into the .nupkg at build time, so that the serverless runtime can satisfy all dependencies from the package itself with no outbound network calls required at execution time.

Motivation

Resolving and installing packages at cold-start time creates several compounding problems in enterprise environments:

  • Internal repository load - organisations proxying PyPI through Artifactory (or similar tools) place it in the critical path of every cold start. Burst scale-out events generate concurrent download requests that private repositories are not provisioned to absorb.
  • Runtime reliability - both Artifactory and PyPI become hard runtime dependencies. An outage or slowdown in either becomes an automation outage, entirely unrelated to process logic.
  • Cold-start latency - resolving and installing packages over the network at startup adds latency that could be avoided if dependencies were already present in the package.

What's Been Explored

It seems like this could theoretically be achieved by:

  1. Pre-downloading wheels into a wheels/ directory before packing
  2. Including .whl files in the .nupkg via uipath.json packOptions
  3. Configuring uv via pyproject.toml to use --no-index --find-links ./wheels/ at install time

However, it's unclear whether there is a supported or recommended way to configure uv for offline installs that doesn't interfere with local development or uv workspace setups, and whether any documented pattern exists for this use case.

Request

If there is no supported path today, first-class support in the SDK and/or uipath pack for this use case would be valuable - for example:

uipath pack --bundle-dependencies

This would own the complexity of downloading platform-targeted wheels, including them in the package, and configuring the runtime install step correctly — rather than leaving each enterprise user to implement and maintain this themselves.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions