Azure / Azure/azure-functions-core-tools
Update func publish to support uv
- 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
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