Azure / Azure/azure-functions-core-tools

Update func publish to support uv

Open
#4,705 1 comment 8 reactions 0 assignees View on GitHub
area: publish enhancement func-stack: Python
Dominant language
C#
Stars
1.5k
Forks
498
Avg merge
5d 4h
Merged PRs (30d)
15

Description

### Description

## Problem Statement

Python Functions apps, including custom handlers, now support `uv`. This means instead of requirements.txt, projects can have pyproject.toml instead.

Today the following is returned when the project doesn't have requrirements.txt:
```
local.settings.json found in root directory (/Users/lily/Desktop/Functions/mcp/functions-hosting/test/mcp-sdk-functions-hosting-python).
Resolving worker runtime to 'python'.
Local python version '3.10.11' is different from the version expected for your deployed Function App. This may result in 'ModuleNotFound' errors in Azure Functions. Please create a Python Function App for version 3.10 or change the virtual environment on your local machine to match '3.12'.
Getting site publishing info...
[2025-10-23T22:23:04.971Z] Starting the function app deployment...
[2025-10-23T22:23:04.974Z] Creating archive for current directory...
requirements.txt is not found. requirements.txt is required for python function apps. Please make sure to generate one before publishing.
```

## Requirements
- The `func azure functionapp publish ` command needs to be updated so it doesn't fail because of missing requirements.txt. Specifically, a Python project can have pyproject.toml instead of requirements.txt.
- When Python project has neither, log a message saying that either requirements.txt or pyproject.toml needs to be present

## Acceptance Criteria
- Any Python Function apps, including custom handlers, can deploy if it has _either_ requirements.txt or pyproject.toml when using the `func .. publish` command
- If neither file is present, deployment fails with message stating such

Contributor guide

Open the contributing guide

Research direction

Start at the implementation of the `func azure functionapp publish` command and locate the existing `requirements.txt` validation for Python projects, including custom handlers. Verify behavior with a project containing each supported file and with neither file present; done means either file permits deployment and the missing-files case reports both required options.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, python
Domain
cli, cloud
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.