贡献

sqlite-utils 的开发在 sqlite-utils GitHub 仓库进行。

对软件的所有改进都应从一个 issue 开始。阅读 我如何构建一个功能 以详细了解构建错误修复或增强功能的推荐流程。

获取代码

要在本地处理此库,首先检出代码。然后创建一个新的虚拟环境

git clone git@github.com:simonw/sqlite-utils
cd sqlite-utils
python3 -mvenv venv
source venv/bin/activate

或者如果你正在使用 pipenv

pipenv shell

在虚拟环境中运行 sqlite-utils 应该会运行你本地可编辑版本的工具。你可以使用 which sqlite-utils 来确认你正在运行的是虚拟环境中的版本。

运行测试

安装依赖和测试依赖

pip install -e '.[test]'

运行测试

pytest

构建文档

构建文档,首先安装文档依赖

pip install -e '.[docs]'

然后从 docs/ 目录运行 make livehtml,以在端口 8000 启动一个服务器,该服务器将提供文档并在你编辑 .rst 文件时进行实时重载。

cd docs
make livehtml

cog 工具用于维护文档的某些部分。你可以这样运行它

cog -r docs/*.rst

代码检查和格式化

sqlite-utils 使用 Black 进行代码格式化,以及 flake8mypy 进行代码检查和类型检查。

Black 作为 pip install -e '.[test]' 的一部分安装 - 你可以在项目根目录运行它来格式化你的代码。

black .

要安装 mypyflake8,运行以下命令

pip install -e '.[flake8,mypy]'

然后可以在项目根目录这样运行这两个命令

flake8
mypy sqlite_utils

这三个工具都会在每次提交和拉取请求时由我们的 CI 机制运行。

使用 Just 和 pipenv

如果你安装了 Justpipenv,你可以使用它们来管理你的本地开发环境。

创建虚拟环境并安装所有开发依赖,运行

cd sqlite-utils
just init

运行所有测试和代码检查工具

just

运行测试,或按名称运行特定的测试模块或测试

just test # All tests
just test tests/test_cli_memory.py # Just this module
just test -k test_memory_no_detect_types # Just this test

只运行代码检查工具

just lint

对你的代码应用 Black

just black

使用 Cog 更新文档

just cog

运行实时文档服务器(这会先运行 Cog)

just docs

并列出所有可用命令

just -l

发布流程

版本发布是使用标签进行的。当一个新的版本在 GitHub 上发布时,一个 GitHub Actions workflow 将执行以下操作

要部署新版本,你需要拥有 GitHub 仓库的推送权限。

sqlite-utils 遵循 语义化版本控制 (Semantic Versioning)

major.minor.patch

对于向后不兼容的版本,我们增加 major 版本号。

对于新功能,我们增加 minor 版本号。

对于错误修复版本,我们增加 patch 版本号。

要发布新版本,首先创建一个 commit,更新 setup.py 中的版本号以及 变更日志,突出显示新版本的内容。一个示例 commit 可在此处查看

# Update changelog
git commit -m " Release 3.29

Refs #423, #458, #467, #469, #470, #471, #472, #475" -a
git push

在 commit 消息中引用属于该版本的 issue 可确保该版本的名称显示在相应的 issue 页面上,例如 此处

你可以通过从发行说明或 GitHub “自上次发布以来的更改”视图中复制并粘贴文本到这个 从粘贴文本中提取 issue 号 工具,来生成特定版本的 issue 引用列表。

要创建该版本的标签,请在 GitHub 上创建与新版本号匹配的新版本。你可以通过将渲染的 HTML 复制并粘贴到这个 粘贴到 Markdown 工具 中来将发行说明转换为 Markdown。