Bug: PythonUvBuilder resolves local requirements from the caller directory
Les mainteneurs répondent en général sous 6 jours
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 78/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- python
- Domaine
- build-system
Piste de recherche
Commencez dans aws_lambda_builders.workflows.python_uv.packager, à PythonUvDependencyBuilder.build_dependencies, puis comparez le chemin de build de requirements avec celui de pyproject, qui fournit un répertoire de travail. Reproduisez le problème avec le wheel local et requirements.txt décrits dans l’issue, en lançant le build depuis l’extérieur du répertoire de la fonction. Le résultat attendu est que le wheel soit résolu par rapport au manifeste et que son module soit écrit dans le répertoire d’artefacts demandé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
PythonUvBuilder resolves relative wheel and local package paths in a requirements manifest against the process working directory, rather than the manifest directory. A function with a vendored wheel therefore fails when built from its parent directory. The pyproject build path already supplies a working directory to uv; the requirements build path does not.
Steps to reproduce
With aws-lambda-builders 1.68.0 and uv installed, run this from outside the temporary function directory:
from pathlib import Path
from tempfile import TemporaryDirectory
from zipfile import ZipFile
from aws_lambda_builders.workflows.python_uv.packager import PythonUvDependencyBuilder
with TemporaryDirectory() as directory:
root = Path(directory)
app = root / "function"
app.mkdir()
wheel = app / "local_demo-1.0.0-py3-none-any.whl"
with ZipFile(wheel, "w") as archive:
archive.writestr("local_demo.py", "VALUE = 42\n")
archive.writestr("local_demo-1.0.0.dist-info/METADATA",
"Metadata-Version: 2.1\nName: local-demo\nVersion: 1.0.0\n")
archive.writestr("local_demo-1.0.0.dist-info/WHEEL",
"Wheel-Version: 1.0\nRoot-Is-Purelib: true\nTag: py3-none-any\n")
archive.writestr("local_demo-1.0.0.dist-info/RECORD", "")
manifest = app / "requirements.txt"
manifest.write_text(f"./{wheel.name}\n", encoding="utf-8")
target, scratch = root / "artifacts", root / "scratch"
target.mkdir()
scratch.mkdir()
PythonUvDependencyBuilder(runtime="python3.13").build_dependencies(
str(target), str(scratch), str(manifest)
)
Observed result
UvBuildError: ... UV pip install failed: ... Distribution not found at: file:///<caller-directory>/local_demo-1.0.0-py3-none-any.whl
The wheel exists in function/; it is looked up outside that directory. This also reproduces through LambdaBuilder.build() with either absolute or relative build paths.
Expected result
Install the local wheel from the requirements manifest's directory and write its module into the requested artifact directory, independently of the caller's working directory.
Environment
- Windows, Python 3.13.3, uv 0.11.26
- aws-lambda-builders 1.68.0, develop commit
e3e14536501e38b0d6d8db582ddec6d0e0bd6f8a - Reproduction uses a local wheel only; no AWS account or package index is needed.
I checked the open and closed issue/PR history. #887 addresses workspace-root discovery for pyproject builds; this reproduction uses only requirements.txt and no workspace.
- Langage dominant
- Python
- Étoiles
- 381
- Forks
- 161
- Merge moyen
- 5 j 14 h
- PR mergées (30 j)
- 3
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de aws/aws-lambda-builders
-
python_uv: `UvConfig.compile_bytecode` is never passed to uv, so the option has no effectPeut-être pris @xujiantop-crypto l’a pris il y a 51 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
aws/aws-lambda-builders#925 · 1 réaction ·
Les mainteneurs répondent en général sous 6 jours
-
Bug: PythonUvBuilder does not target Lambda manylinux compatibilityPeut-être pris @vinsymoyya l’a pris aujourd’hui. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 70/100
aws/aws-lambda-builders#955 · 1 commentaire ·
Les mainteneurs répondent en général sous 6 jours
-
Bytecode compiled during build is always discarded at runtime: SAM packaging writes 1980 timestamps, so timestamp-based .pyc never validatePeut-être pris @xujiantop-crypto l’a pris il y a 51 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 64/100
aws/aws-lambda-builders#924 · 1 commentaire · 1 réaction ·
Les mainteneurs répondent en général sous 6 jours
-
Bug: PythonUvBuilder fails to build app with dependencies on editable installs in the workspacePeut-être pris @noritada l’a pris il y a 120 jours. Ouvertestage/needs-triage
Difficulté 3/5 1-2 jours Accessibilité débutants 25/100
aws/aws-lambda-builders#892 ·
Les mainteneurs répondent en général sous 6 jours
-
Feature request: Add native uv support and configurationPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertestage/needs-triage type/feature
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
aws/aws-lambda-builders#839 · 3 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 6 jours
Toutes les issues de aws/aws-lambda-builders
Issues similaires
-
Remove the `pull_request_target` workflow before GitHub blocks itPeut-être pris @jat255 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
IBM/mcp-context-forge#7483 ·
Les mainteneurs répondent en général sous 2 jours
-
bug good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
[Bug Report]: OpenAI 辅助 API 连通性测试因输出上限仅 1 token 误报“未知错误”Peut-être pris @fjfanjian l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Project-N-E-K-O/N.E.K.O#3640 ·
Les mainteneurs répondent en général sous 1 jour
-
author-page correction
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
acl-org/acl-anthology#10808 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour