Politique de gestion des dépendances pour le connecteur Python

Le connecteur Snowflake pour Python dépend de bibliothèques tierces, toutes essentielles pour communiquer avec la base de données Snowflake. Bien que nous ayons l’intention de rendre la gestion des dépendances facile et fiable, chaque bibliothèque peut introduire des changements qui pourraient entraîner un comportement inattendu dans le connecteur Snowflake pour Python ou causer des conflits avec d’autres bibliothèques.

Ce thème couvre les informations suivantes :

  • La politique pour déterminer comment les versions des bibliothèques dépendantes sont sélectionnées comme exigences pour le connecteur Snowflake pour Python.

  • Le processus de traitement des incidents qui pourraient survenir à la suite de changements dans les bibliothèques dépendantes.

Dans ce chapitre :

Politique de détermination des exigences en matière de dépendance

Le connecteur Snowflake pour Python établit des exigences de dépendances selon les règles suivantes :

  • Si le connecteur Snowflake pour Python fait directement référence à un package, le nom de ce package est inclus dans la liste des dépendances.

  • Pour chaque bibliothèque dépendante, les exigences spécifient à la fois la version limite inférieure et la version limite supérieure de la bibliothèque.

    • La version limite inférieure (version minimale) est la première version utilisée pour vérifier que la bibliothèque a fonctionné.

    • La version limite supérieure (première version qui n’est pas prise en charge) est la prochaine version majeure.

      Si une version mineure introduit un changement qui rompt la compatibilité, la version limite supérieure sera définie sur cette version mineure.

    Cela fournit un environnement stable dans lequel le connecteur peut être testé avec des versions spécifiques des bibliothèques dépendantes.

Note

Ces règles sont basées sur l’hypothèse que tous les paquets, y compris le connecteur Snowflake pour Python, suivent les directives en matière de gestion sémantique des versions. Selon ces directives, une version mineure ou une version patch d’une bibliothèque ne doit pas introduire de modifications d’API.

Traitement des incidents résultant de changements dans les bibliothèques dépendantes

Bien que la politique de gestion des dépendances soit conçue pour réduire les effets des modifications apportées aux bibliothèques dépendantes, des incidents peuvent se produire dans des conditions inattendues. Cette section traite de la manière dont chaque cas est traité.

Cas 1. Une bibliothèque dépendante introduit un changement dans l’API ou le comportement

Si un incident survient parce qu’une nouvelle version d’une bibliothèque dépendante a introduit un changement dans son API (et/ou son comportement), nous publierons une nouvelle version du connecteur Snowflake pour Python qui exclut la nouvelle version de la bibliothèque dépendante de la plage des versions prises en charge. Nous apporterons ce changement dans les meilleurs délais. (Snowflake fera tout son possible pour résoudre ce problème dans la prochaine version.)

Par exemple, supposons que le fichier des exigences spécifie cette plage de versions pour la bibliothèque dépendante package1:

package1>=1.0,<2.0

En théorie, l’API ne devrait pas changer dans les versions publiées dans cette plage. Toutefois, si une modification de la version 1.3 rompt la compatibilité, la version limite supérieure sera modifiée pour exclure la version 1.3 et les versions ultérieures :

package1>=1.0,<1.3

Cette modification se veut une solution temporaire au problème. Une fois le problème résolu, nous modifierons la version limite supérieure pour la prochaine version majeure de la bibliothèque.

Cas 2. Une bibliothèque dépendante introduit une nouvelle version supérieure à la limite supérieure

Dans ce cas, après avoir vérifié que le connecteur Snowflake pour Python fonctionne avec la nouvelle version de la bibliothèque, nous inclurons la nouvelle version dans la plage des versions prises en charge pour la prochaine version du connecteur Snowflake pour Python. Par exemple, supposons que le fichier des exigences spécifie cette plage de versions pour la bibliothèque dépendante package1:

package1>=1.0,<2.0

Si la version package1 2.0 est publiée, la nouvelle version ne peut pas être utilisée avec le connecteur Snowflake pour Python, car la version est en dehors de la page des versions requises. Nous disposons de tests automatisés qui permettent de détecter ce cas.

Notez que s’il y a des raisons critiques qui nécessitent la prise en charge de cette nouvelle version de la bibliothèque (par exemple, si la nouvelle version inclut un patch de sécurité), nous ferons le maximum pour publier la mise à jour du connecteur Snowflake pour Python dans la prochaine version après que l’incident ait été signalé.