Report the http(s):// gRPC endpoint deprecation as a DeprecationWarning, not a UserWarning on every client
Les mainteneurs répondent en général sous 7 jours
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 85/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- grpc, python
- Domaine
- developer-experience
Piste de recherche
Commence par GrpcEndpoint._set_scheme dans dapr/conf/helpers.py, qui appelle warn() sans catégorie ni stacklevel. Lis ensuite les tests existants d'analyse des endpoints dans tests/conf/ et tests/clients/. C'est terminé lorsque le message devient un DeprecationWarning avec un stacklevel qui pointe vers l'appelant (ou qu'il ne se déclenche qu'une fois par processus), que les résultats d'analyse http/https restent inchangés, et que les nouveaux tests assertWarns ainsi que uv run pytest tests -m "not e2e" passent.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Problem
Setting DAPR_GRPC_ENDPOINT to an https:// (or http://) URL, for example https://grpc.example.com:443, prints this every time a gRPC endpoint is parsed:
dapr/conf/helpers.py:43: UserWarning: http and https schemes are deprecated for grpc, use myhost?tls=false or myhost?tls=true instead
The sidecar endpoint proposal says SDKs "will continue to accept the old behaviour of DAPR_GRPC_ENDPOINT with the scheme value https to signal to use TLS". The format is supported, so a UserWarning (shown by default, and with no category) is too loud. Because GrpcEndpoint is built for every DaprClient, workflow client and worker, an app that creates several clients logs the same line many times.
The warning comes from GrpcEndpoint._set_scheme in dapr/conf/helpers.py, which calls warn(...) with no category and no stacklevel.
Proposed change
Keep accepting http:// and https:// exactly as today. Only change how the deprecation is reported:
- Emit it as a
DeprecationWarning(hidden by default, visible under-W defaultor in pytest), not aUserWarning. - Pass a
stacklevelthat points at the caller rather than athelpers.py, or emit it at most once per process. - Keep the message, and add the equivalent form for the URL given, e.g.
use grpc.example.com:443?tls=true.
Acceptance criteria
https://host:443andhttp://host:80parse to the same hostname, port and TLS settings as today.- Parsing them raises a
DeprecationWarning, not aUserWarning. Add a test withassertWarns(DeprecationWarning)and one showing that noUserWarningis raised. - Building several clients against the same
https://endpoint doesn't repeat the warning, if you choose the once-per-process approach. - Per the proposal,
https://host?tls=falsestill errors. Add a test if one doesn't exist. - Tests live with the existing endpoint parsing tests under
tests/conf/andtests/clients/.uv run ruff check,uv run ruff formatanduv run pytest tests -m "not e2e"pass.
Pointers for a first contribution
- Code:
dapr/conf/helpers.py, theGrpcEndpoint._set_schememethod. - Python docs:
warnings.warn(category,stacklevel). - Setup: see
CONTRIBUTING.md;uv sync --frozen --all-packages --group devinstalls everything.
- Langage dominant
- Python
- Étoiles
- 274
- Forks
- 157
- Merge moyen
- 9 j 5 h
- PR mergées (30 j)
- 30
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- 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 dapr/python-sdk
-
SDK Alignment of Workflow ExamplesPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouvertedapr-ext-workflow good first issue kind/enhancement P2
Difficulté 2/5 1-2 jours Accessibilité débutants 72/100
dapr/python-sdk#853 · 4 commentaires ·
Les mainteneurs répondent en général sous 7 jours
-
[WORKFLOW SDK FEATURE REQUEST] Retry WaitForInstanceCompletion/Start on a server-sent CANCELLEDOuvertedapr-ext-workflow kind/enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
dapr/python-sdk#1246 ·
Les mainteneurs répondent en général sous 7 jours
-
[BUG] subscribe_with_handler stops silently: async task can die or be collected, sync retry path exits, handler errors reconnect the streamPeut-être pris @CasperGN l’a pris il y a 20 jours. Ouvertekind/bug
Difficulté 4/5 3-5 jours Accessibilité débutants 65/100
dapr/python-sdk#1233 ·
Les mainteneurs répondent en général sous 7 jours
-
[BUG] Configuration subscription stops permanently after the daprd sidecar restartsPeut-être pris @CasperGN l’a pris il y a 17 jours. Ouvertekind/bug
Difficulté 4/5 3-5 jours Accessibilité débutants 68/100
dapr/python-sdk#1232 ·
Les mainteneurs répondent en général sous 7 jours
-
[WORKFLOW SDK BUG] Workflow constructors reject Unix-domain socket DAPR_GRPC_ENDPOINTPeut-être pris @Kayvan-Zahiri l’a pris il y a 23 jours. Ouvertedapr-ext-workflow kind/enhancement
Difficulté 3/5 1-2 jours Accessibilité débutants 78/100
dapr/python-sdk#1213 ·
Les mainteneurs répondent en général sous 7 jours
Toutes les issues de dapr/python-sdk
Issues similaires
-
Workflow.schedule stops when a cron deadline passes before sleepPeut-être pris @HuaTNA l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
[Bug] HiveDialect shares its colspecs dict with SQLAlchemy's DefaultDialect (python/pyhive)Peut-être pris @rusackas l’a pris aujourd’hui. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 80/100
apache/kyuubi#7786 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 80/100
Les mainteneurs répondent en général sous 1 jour
-
[20.0] hr_work_entry: Duration column of Export Time Entries is truncated to whole hoursPeut-être pris @odooaktiv l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
fix formatting of the sample database page of the docsPeut-être pris @Aaqibhafeezkhan l’a pris aujourd’hui. Ouvertedocumentation good first issue help wanted
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
chaoss/CollectOSS#544 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour