跳转到主要内容

一个最小的测试包。

项目描述

NIM python包

一个参考python包。

包含所有配置文件,以确保在管道中正确运行。

安装。

  1. 创建一个虚拟环境。强烈建议为每个正在工作的repo创建一个单独的环境。

    python -m venv venv

    并激活它。

  2. 安装依赖项。请确保已激活先前的环境。

    # 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.pypyproject.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 (6.8 kB 查看哈希)

上传 源代码

构建分发

nim_python_package-10.1.1-py3-none-any.whl (4.9 kB 查看哈希)

上传 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面