끝점에 도달하는 데는 여러 가지 방법이 있습니다. 여기에 콘도 자체가 무엇입니까?
콘돔의 버전 정보는 __version__
에 conda/__init__.py
입니다. 그것은 프로그래밍 방식으로 파이썬 코드 내에서 from conda import __version__
으로로드 할 수 있습니다. 또한 setup.py
here (참고 this code도 있음)에 하드 와이어되어 있으므로 명령 줄 python setup.py --version
에서 해당 정보를 얻을 수있는 표준 방법입니다. 진리의 우리의 소스를 사용하여 내장 패키지의 버전을 설정합니다 build.sh
에 선
$PYTHON setup.py --version > __conda_version__.txt
퍼팅 CONDA 빌드의 1.x에서 버전의
. __conda_version__.txt
파일은 더 이상 사용되지 않으며이며 conda-build 2.0 릴리스로 제거 될 가능성이 큽니다. 최신 버전의 conda-build에서 이것을 수행하는 가장 좋은 방법은 을 jinja2 컨텍스트에서 사용하는 것입니다. 그러면 setup.py
의 모든 메타 데이터에 액세스 할 수 있습니다. 특히, meta.yaml
파일에, 우리는 당신 see in the source code이 auxlib.packaging.get_version()
를 호출 무엇 ...
을 __version__
변수가 conda/__init__.py
에 설정 방법이
package:
name: conda
version: "{{ load_setup_py_data().version }}"
이제
, 같은이있을 것이다 기능. 이 기능은
- 파일
conda/.version
먼저 찾아 위해 다음과 같은 작업을 수행하고, 버전 식별자로 내용을 반환 찾을 경우
- 옆
VERSION
환경 변수에 대한보고, 설정하면하면 버전으로 값을 반환
- 상기 수율 중에 버전 식별자를 반환하지 않는 경우 식별자
- 가
git describe --tags
출력에서 최종보고, 가능한 버전 ID를 반환 (기타 등 자식이 설치되어 있어야하는 자식 REPO이어야) None
마지막 트릭이 하나 더 있습니다. 콘도의 setup.py
file에서 및 sdist
에 대해 을 auxlib.packaging
에서 제공하는 것으로 설정합니다.기본적으로 우리는 __version__
변수가 하드 코딩 된 문자열로 문자 그래서
from auxlib import packaging
setup(
cmdclass={
'build_py': packaging.BuildPyCommand,
'sdist': packaging.SDistCommand,
}
)
이 특별한 명령 클래스가 실제로 내장/설치된 패키지의 conda/__init__.py
파일을 수정해야하고, auxlib.packaging.get_version()
기능을 사용하지 않습니다. 귀하의 경우에는
모든 릴리스에 태그를 원하지 않는, 당신은 위의 모든 사용할 수 있으며, 명령 줄에서
VERSION
환경 변수를 사용하여 버전을 설정합니다. 당신의
build
섹션 meta.yaml 조리법에서
VERSION=1.0.0alpha1 conda build conda.recipe
같은 것을, 당신은 빌드 환경에있는 모든 방법을 통해 VERSION
환경 변수를 전달하는 CONDA 빌드를 말할 script_env
키를 추가해야합니다.
build:
script_env:
- VERSION
더 나은 답변을 얻으려면 다음과 같은 사람이 필요합니다. git 태그 * 및 *에 대한 정정을 마쳤습니다. setup.py에 일부 명령을 추가하여 일부 패키지 도구에서 버전을 부딪혔습니다. m (Inno Setup for Windows), 나의 'version.py'를 사용하고, 커밋과 태그를 필요로했다. – daveydave400