kivy / kivy/python-for-android

ENHACEMENT: warn about potential patch apply errors when package version requested don't match recipe

Ouverte
#3,088 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
need-analysis Priority: Low recipe
Langage dominant
Python
Étoiles
8.9k
Forks
2k
Merge moyen
12 h 20 min
PR mergées (30 j)
9

Description

User can specify package version with --requirements option:
`p4a apk --requirements=python3,pillow==7.1`
Then p4a will download specified version instead of the one defined in the Pillow recipe. This recipe has patches to apply, and p4a will fail trying to do so because patch almost always strictly requires the exact input files of the particular package version - the package version which is specified in the recipe itself:
```
self.handle_command_exit_code(exit_code)
File "/home/u1/.local/share/pipx/venvs/python-for-android/lib64/python3.11/site-packages/sh.py", line 821, in handle_command_exit_code
raise exc
sh.ErrorReturnCode_1:

RAN: /usr/bin/patch -t -d /home/u1/.local/share/python-for-android/build/other_builds/Pillow/armeabi-v7a__ndk_target_24/Pillow -p1 -i /home/u1/.local/share/pipx/venvs/python-for-android/lib/python3.11/site-packages/pythonforandroid/recipes/Pillow/setup.py.patch

STDOUT:
patching file setup.py
Hunk #1 FAILED at 39.
Hunk #2 succeeded at 156 with fuzz 1 (offset 6 lines).
Hunk #3 FAILED at 461.
Hunk #4 succeeded at 400 with fuzz 2 (offset -96 lines).
Hunk #5 FAILED at 507.
Hunk #6 succeeded at 500 (offset -107 lines).
3 out of 6 hunks FAILED -- saving rejects to file setup.py.rej
```

Suggestion: warn user clearly that the package version he requested does not match the recipe version, and the patch is likely to fail.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez au point d’entrée `p4a apk --requirements` et suivez la manière dont la version demandée d’un paquet est comparée à la version de la recette Pillow avant l’application de `setup.py.patch`. Reproduisez l’incompatibilité avec `pillow==7.1`, puis vérifiez que la commande avertit clairement les utilisateurs lorsqu’un patch de recette peut échouer parce que la version demandée diffère.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
build-system, cli
Type d'issue
Fonctionnalité
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.