Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

저장소 발행, 복구와 실행 문제

태그 없이 Python 패키지 발행

특정 브랜치의 최신 commit을 발행하려면 Python 패키지 루트의 build.gradle에서 발행 조건을 지정할 수 있습니다. 다음은 master 브랜치의 발행 조건입니다.

condaLibraryPublish.onlyIf { versionDetails().branchName == "master" }

해당 저장소의 Gradle 설정에 적용하는 조건이며, 실제 사용할 브랜치 이름을 맞춰야 합니다.

삭제된 코드 찾기

삭제 전 변환으로 만든 데이터셋이 있다면 Dataset Preview의 Compare에서 그 시점의 코드를 보고 필요한 변환을 가져올 수 있습니다. 또는 저장소의 Branches에서 해당 브랜치를 열고 변경 이력을 확인합니다.

저장소 복제

플랫폼에는 Code Repository 전체를 복제하는 내장 기능이 없습니다. 로컬로 clone한 코드를 새 Code Repository에 push하는 방식으로 옮길 수 있습니다. 새 프로젝트에는 입력 자산들의 프로젝트 참조도 다시 추가해야 합니다. 코드 복사와 자산 참조 및 권한 설정은 별도 작업입니다.

업그레이드 확인

오른쪽 위 ... 메뉴에 Upgrade가 있는지 확인합니다. 해당 옵션이 없으면 최신 상태로 안내됩니다.

업그레이드는 PR을 만들므로 생성만 하고 끝내지 말고 병합해야 브랜치에 적용됩니다. 어느 브랜치든 업그레이드할 수 있지만 보호 브랜치에 commit을 병합할 때는 검토와 승인이 필요합니다.

빌드 시작 때 입출력 선택

빌드를 시작할 때마다 변환이 입력과 출력을 동적으로 새로 고르는 방식은 지원하지 않습니다. 새 commit의 CI checks 단계에서 입출력 집합을 정의합니다. 변환 generator도 선언 및 등록 시점의 계약을 따라야 합니다.

Preview는 성공하고 빌드는 실패

Preview는 데이터 일부만 처리합니다. 전체 빌드에서만 나타나는 값이 코드를 실패하게 할 수 있습니다.

  1. 실패한 빌드의 오류에서 Caused by로 시작하는 원인과 변환 파일의 줄 번호를 확인합니다.
  2. 사용 중인 언어 및 저장소 버전 문제라면 ... > Upgrade를 검토하고 생성한 PR을 실제 병합하여 적용합니다.

Preview 결과만으로 전체 입력에 대한 성공을 판단하지 않습니다.

Workbook에서 옮긴 코드가 동작하지 않을 때

다음을 비교합니다.

  • @transform과 @transform_df 중 함수의 입출력 방식에 맞는 decorator를 사용했는지 확인합니다.
  • 모든 입력이 선언되어 있고 계산 함수의 인자로 전달되는지 확인합니다.
  • DataFrame 변수 이름이 옮긴 코드와 맞고, 반환형 변환이라면 결과 DataFrame을 실제로 반환하는지 확인합니다.
  • Workbook에서 사용한 라이브러리가 새 저장소에도 있는지 확인합니다.
  • 양쪽 코드가 같은 데이터셋과 같은 브랜치를 입력으로 읽는지 확인합니다.

더 넓은 실패 유형은 빌드와 checks 문제에서 확인할 수 있습니다.

이전에 사용하던 Conda 패키지를 찾지 못할 때

기존에 동작하던 저장소의 checks에서 PackageNotFoundError 또는 Conda 캐시의 MD5MismatchError가 생길 수 있습니다. 패키지 해석 및 캐시 문제가 의심될 때는 다음 순서로 처리합니다.

  1. 변경을 하나 commit하여 환경 구성을 다시 시작합니다. 빈 줄 하나를 추가하는 작은 commit으로 해결되는 경우도 있습니다.
  2. 계속 실패하면 숨김 파일을 표시합니다. 저장소 설정의 톱니바퀴에서 Hidden files를 켭니다.
  3. Python 하위 프로젝트의 conda-versions.run.linux-64.lock을 찾아 제거하고 commit하여 환경 의존성을 다시 구성합니다.
  4. 이후에도 실패하면 Palantir 지원팀에 요청합니다.