저장소 발행, 복구와 실행 문제
태그 없이 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는 데이터 일부만 처리합니다. 전체 빌드에서만 나타나는 값이 코드를 실패하게 할 수 있습니다.
- 실패한 빌드의 오류에서
Caused by로 시작하는 원인과 변환 파일의 줄 번호를 확인합니다. - 사용 중인 언어 및 저장소 버전 문제라면
... > Upgrade를 검토하고 생성한 PR을 실제 병합하여 적용합니다.
Preview 결과만으로 전체 입력에 대한 성공을 판단하지 않습니다.
Workbook에서 옮긴 코드가 동작하지 않을 때
다음을 비교합니다.
@transform과@transform_df중 함수의 입출력 방식에 맞는 decorator를 사용했는지 확인합니다.- 모든 입력이 선언되어 있고 계산 함수의 인자로 전달되는지 확인합니다.
- DataFrame 변수 이름이 옮긴 코드와 맞고, 반환형 변환이라면 결과 DataFrame을 실제로 반환하는지 확인합니다.
- Workbook에서 사용한 라이브러리가 새 저장소에도 있는지 확인합니다.
- 양쪽 코드가 같은 데이터셋과 같은 브랜치를 입력으로 읽는지 확인합니다.
더 넓은 실패 유형은 빌드와 checks 문제에서 확인할 수 있습니다.
이전에 사용하던 Conda 패키지를 찾지 못할 때
기존에 동작하던 저장소의 checks에서 PackageNotFoundError 또는 Conda 캐시의 MD5MismatchError가 생길 수 있습니다. 패키지 해석 및 캐시 문제가 의심될 때는 다음 순서로 처리합니다.
- 변경을 하나 commit하여 환경 구성을 다시 시작합니다. 빈 줄 하나를 추가하는 작은 commit으로 해결되는 경우도 있습니다.
- 계속 실패하면 숨김 파일을 표시합니다. 저장소 설정의 톱니바퀴에서
Hidden files를 켭니다. - Python 하위 프로젝트의
conda-versions.run.linux-64.lock을 찾아 제거하고 commit하여 환경 의존성을 다시 구성합니다. - 이후에도 실패하면 Palantir 지원팀에 요청합니다.