一个最小的测试包。
项目描述
NIM python包
一个参考python包。
包含所有配置文件,以确保在管道中正确运行。
安装。
-
创建一个虚拟环境。强烈建议为每个正在工作的repo创建一个单独的环境。
python -m venv venv
并激活它。
-
安装依赖项。请确保已激活先前的环境。
# from inside the root folder of the repo # for dev purposes. pip install -e '.[dev,test]'
这将安装包括开发测试需求的包的编辑版。
构建工具
管道与构建工具无关。它将与setuptools、flit和poetry(未测试)构建系统一起工作。
如果您愿意,可以在本地创建一个包(一个wheel)
# inside the root of your repom with your virtualenv activated.
python -m build
# this creates a wheel file inside the dist folder of your repo (add this folder to gitignore.)
开发工具
所有开发和测试需求都在setup.py
或pyproject.toml
配置文件中的可选依赖项中定义。
请参阅此repo中的pyproject.toml
文件。
待办事项:链接到一个带有setup.py
文件的项目。
预提交
预提交在提交(和推送)到您的原始GitHub repo之前执行某些任务非常有用。这保证了代码始终符合一组基本的质量规则。
预提交在先前的安装步骤中自动安装。要激活它
pre-commit install
从现在开始,每个提交都将先执行在.pre-commit-config.yaml
中定义的质量检查。
配置文件
本地和管道中使用的所有工具,大多数由本地配置文件定义。
其中大多数在pyproject.toml
文件中。Flake8尚未支持pyproject.toml
,并在setup.cfg
中配置。
打包
最终,Python包需要发布。要么是PyPI,要么是私有仓库。Tekton管道正在管理这一点。
只有主/Master分支会发布包。
版本流
我们根据语义化版本控制方案(主版本.次版本.修订版)来版本控制我们的软件包。除此之外,版本还必须遵循PEP440规范。
遵循PEP440规范对于确保你的依赖项解析器(在pip或poetry中)正常工作非常重要。
使用gitversion工具自动创建软件包版本:[https://gitversion.net/](https://gitversion.net/) 采用主线策略,生成的版本将被转换为符合PEP440规范的版本名称。
完整自动版本:修订版修补
每次向主/Master推送时,都会通过增加修订版号来创建一个新版本。(例如:1.0.0 -> 1.0.1)
非完整自动版本:次版本和主版本修补。
如果你正在开发一个添加额外功能的功能分支(不破坏其他东西),你应该增加次版本号。通过在该分支内部的一个提交消息中附加 +semver: minor
来完成此操作。
git commit -am 'my commit message +semver: minor'
一旦将其合并到主分支,gitversion工具将拾取此消息并自动增加次版本号(例如:1.0.1 -> 1.1.0)
如果你正在开发一个破坏性更改,你想要增加主版本号。创建如下git消息:
git commit -am 'my commit message +semver: major'
在合并到主分支时,gitversion现在将拾取此消息并增加主版本号(例如:1.1.0 -> 2.0.0)
更多详情请见以下流程
MAIN DEV FEATURE
5.0.8 checkout 5.1.0a0
commit
5.1.0a1
|
5.0.9 <--merge-----┘ # gets merged as a patch version
checkout 5.1.0a0
commit
5.1.0a1 ---checkout---> 5.1.0-just-a-test.1
commit +semver:minor
5.1.0-just-a-test.2
|
5.1.0a2 <--merge--------┘
|
5.1.0 <--merge-----┘ # here is the +semver:minor in action.
checkout 5.2.0a0 ---checkout---> 5.2.0-branchA.1
commit +semver:minor
---checkout---> 5.2.0-branchB.1
commit +semver:minor
|
5.2.0a1 <--merge branchA-┘
5.2.0a2 <--merge branchB-┘
|
5.3.0 <--merge-----┘ # we merged two branches with both +semver:minor
# as result we have double minor version bump.
标签/发布
每次创建软件包时,都会在GitHub上发布一个发布版本,使用创建的版本作为标签。你可以手动创建标签,但不要创建可能会干扰gitversion
自动打标签的标签。因此,不要创建“v1.0.0”标签,因为它可能会破坏管道。
发布说明
目前还没有关于如何同时进行自动版本控制和发布管理的策略。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源代码分发
构建分发
nim_python_package-10.1.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e0d237f722d2afb5a471a29c765dca078dda3967e5a3d851b5bbc647794adb10 |
|
MD5 | 5a0ae7cf1a43eab3c840da3c3e64c7b5 |
|
BLAKE2b-256 | 58fffa2512c8733634f8d7ed2072d05b2c1ccc3b01c476143195523d2dcd0a39 |
nim_python_package-10.1.1-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | de4268ef05f3c722c2cd4fee3a75db67c25b9e490c76ff7be37fef0a66269c52 |
|
MD5 | 3185bc653c29995f51a37f61270eade0 |
|
BLAKE2b-256 | 90ec69edd94ab2f0cb4eee1939c49dd96e21962ebf6d3ee36e391075a47a1f19 |