Python Connector의 종속성 관리 정책

Python용 Snowflake 커넥터에서는 서드 파티 라이브러리를 사용하며, 이러한 라이브러리는 Snowflake 데이터베이스와 통신하기 위해 필수적입니다. Snowflake는 편리하고 신뢰할 수 있는 종속성 관리를 위해 노력하지만, 각 라이브러리로 인해 Python용 Snowflake 커넥터에서 예기치 않은 동작이 발생하거나 다른 라이브러리와 충돌할 수 있는 변경 사항이 추가될 수 있습니다.

이 항목에서 다루는 정보는 다음과 같습니다.

  • 종속 라이브러리 버전을 Python용 Snowflake 커넥터의 요구 사항으로 선택하는 방법을 결정하기 위한 정책입니다.

  • 종속 라이브러리의 변경으로 인해 발생할 수 있는 문제를 처리하기 위한 프로세스입니다.

이 항목의 내용:

종속성 요구 사항을 결정하기 위한 정책

Python용 Snowflake 커넥터는 다음 규칙에 따라 종속성 요구 사항을 설정합니다.

  • Python용 Snowflake 커넥터가 패키지를 직접 참조하는 경우에는 해당 패키지의 이름이 종속성 목록에 포함됩니다.

  • 각 종속 라이브러리와 관련하여 요구 사항은 라이브러리의 하한 및 상한 버전을 모두 지정합니다.

    • 하한 버전(최소 버전)은 라이브러리가 동작하는지 확인하기 위해 사용되는 가장 이른 버전입니다.

    • 상한 버전(지원되지 않는 맨 처음 버전)은 다음 주 버전입니다.

      부 버전이 변경되어 호환성이 유지되지 않으면 해당 부 버전으로 상한 버전이 설정됩니다.

    이를 통해 종속 라이브러리의 특정 버전으로 커넥터를 테스트할 수 있는 안정적인 환경이 제공됩니다.

참고

이러한 규칙에서는 Python용 Snowflake Connector 등 모든 패키지가 의미 체계 버전 관리 가이드라인을 준수하는 것으로 가정됩니다. 이러한 가이드라인에 따라, 라이브러리의 부 버전 또는 패치 버전에서는 API가 변경되지 않아야 합니다.

자세한 내용은 의미 체계 버전 관리 지침 섹션을 참조하십시오.

종속 라이브러리 변경으로 인한 문제 처리하기

종속성 관리 정책은 종속성 라이브러리 변경의 영향을 최소화하도록 설계되었지만 예기치 않은 상황에서 문제가 발생할 수 있습니다. 이 섹션에서는 각 사례를 처리하는 방법을 설명합니다.

사례 1. 종속 라이브러리에서의 API 또는 동작 변경

종속 라이브러리의 새 버전에서 API(및/또는 동작)가 변경되어 문제가 발생하는 경우 Snowflake는 지원되는 버전 범위에서 종속 라이브러리의 새 버전을 제외하는 Python용 Snowflake 커넥터의 새 버전을 출시합니다. Snowflake는 최대한 빠른 시일 내에 이러한 변경을 수행합니다. (Snowflake는 다음 릴리스에서 문제를 해결하기 위해 최선을 다합니다.)

예를 들어, 요구 사항 파일이 종속 라이브러리 package1 에 대한 이러한 버전 범위를 지정하는 것으로 가정해 보겠습니다.

package1>=1.0,<2.0
Copy

이론적으로 API는 이러한 범위에서 릴리스된 버전에서 변경되지 않아야 합니다. 그러나 1.3 버전의 변경으로 호환성이 유지되지 않는 경우 상한 버전이 변경되어 1.3 이상 버전이 제외됩니다.

package1>=1.0,<1.3
Copy

이러한 변경은 문제를 임시로 해결하기 위한 것입니다. 문제가 해결되면 Snowflake는 상한 버전을 라이브러리의 다음 주 버전으로 다시 변경합니다.

사례 2. 종속 라이브러리에 상한 이상의 새 버전 도입

이러한 경우 Python용 Snowflake 커넥터가 새 버전의 라이브러리와 작동하는지 확인한 후 Python용 Snowflake 커넥터의 다음 릴리스에서 지원되는 버전의 범위에 새 버전을 포함합니다. 예를 들어, 요구 사항 파일이 종속 라이브러리 package1 에 대한 이러한 버전 범위를 지정하는 것으로 가정해 보겠습니다.

package1>=1.0,<2.0
Copy

package1 버전 2.0이 릴리스된 경우 새 버전은 필수 버전의 범위를 벗어나므로 Python용 Snowflake 커넥터에서 새 버전을 사용할 수 없습니다. Snowflake는 이러한 사례를 감지하는 테스트를 자동화했습니다.

이 새 라이브러리 버전을 지원해야 하는 중요한 이유(예: 새 버전에 보안 패치가 포함된 경우)가 있는 경우, Snowflake는 문제가 보고된 이후의 다음 릴리스에서 업데이트된 Snowflake 커넥터를 릴리스하기 위해 최선을 다합니다.