18. PEP 396 — Module Version Numbers
__init__.py
,
constant
setup.py
:mod:`leftpad` Leftpad
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
from .constant import DEFAULT_PADDING
__version__ = '0.1.0'
19. PEP 396 — Module Version Numbers
ast __init__.py __version__
import ast
def get_version():
filename = 'leftpad/__init__.py'
with open(filename, 'r') as f:
tree = ast.parse(f.read(), filename)
for node in tree.body:
if (isinstance(node, ast.Assign) and
node.targets[0].id == '__version__'):
return ast.literal_eval(node.value)
else:
raise ValueError('could not find __version__')
20. setuptools.setup 인자 (2)
: packages vs py_modules
py_modules :
, .
packages :
.
setuptools.find_packages()
.
setup(
...
# or use find_packages()
py_modules='leftpad.py',
classifiers=[
...
],
...
)
47. 변경 기록 항상 적기
if git show --format=%B --quiet $TRAVIS_PULL_REQUEST_SHA
| grep '[changelog skip]' > /dev/null; then
echo Skip changelog checker...
elif [[ $TRAVIS_TAG != ]]; then
! grep -i to be released CHANGES.md
else
[[ $TRAVIS_COMMIT_RANGE = ]] ||
[[ $(git diff name only $TRAVIS_COMMIT_RANGE | grep CHANGES.md) != ]]
fi
48. 귀찮은 일 미루기
CI (CircleCI TravisCI) git
GitHub
deploy:
provider: releases
api_key: GITHUB OAUTH TOKEN
file: FILE TO UPLOAD
skip_cleanup: true
on:
tags: true