让Python包开发有完整的工作流
如果Pyscaffold已经配置好了,那么还有一些小工具可以帮助Python包的开发,如flake8、pre-commit、pyformat等。
pre-commit
pre-commit
的主要用处是在git commit
前执行一些hook,主要是格式检查,用来保证不同开发者的代码细节风格一致,特别是一些空格、括号风格等。pyscaffold
的对应选项开启后,会通过.pre-commit-config.yaml
文件默认配置pre-commit-hooks、isort
、black
和flake8
。均是常用的hook。
对于规模较大的项目,建议使用更严格的规则,建议参考 https://wemake-python-stylegui.de/en/latest/pages/usage/violations/ 使用wemake-python-styleguide
的规则码和ci进行工作流层次的style约定,主要是以以下代码替换掉.pre-commit-config.yaml
中isort
、black
、flake8
的默认设置:(参考 https://wemake-python-stylegui.de/en/latest/pages/usage/integrations/plugins.html )
1 | - repo: local |
pre-commit在使用前需要安装,即conda install pre-commit
,pre-commit install
github actions
主要推荐:
- 通用
- release-please( https://github.com/marketplace/actions/release-please-action )
用于按照Conventional Commit Messages( https://www.conventionalcommits.org/en/v1.0.0/ )生成changelog和release,严格地控制版本历史和版本号。
- release-please( https://github.com/marketplace/actions/release-please-action )
- Python
- wemake-python-styleguide( https://github.com/marketplace/actions/wemake-python-styleguide ) 用于和wemake-python-styleguide的pre-commit hook搭配,在pr和push中控制贡献者的社区代码风格。
一个建议
在开一个新python包的时候按如下步骤做:
- pyscaffold准备框架
- 配置好pre-commit(
conda install pre-commit
,pre-commit install
) - 使用wemake-python-styleguide的话安装(
pip install wemake-python-styleguide
),并修改好.pre-commit-config.yaml - 修改好文件让flake8开心(×
- 配置好github action,主要是pyscaffold自带ci、release-please和wemake-python-styleguide。
- 按照Conventional Commit Messages( https://www.conventionalcommits.org/en/v1.0.0/ )提交和合并代码
(当然如果是自己一个人开发则以上统统不需要,怎么开心怎么来)
相关文章