为友链朋友圈做贡献
首先,感谢你考虑为本项目做出贡献!我们欢迎任何形式的贡献,从修复错误、改进文档到添加新功能。
本文档为 hexo-circle-of-friends
项目的贡献提供了简单的指导方案和标准工作流程。
目录
项目技术栈与架构
本项目主要是一个 Rust 应用程序,带有一些用于特定部署场景的 Python 组件。
核心逻辑 (Rust):
Python 组件:
- 提供了一个 FastAPI 应用 (
api/vercel.py
),以便在 Vercel 上轻松部署。 - 依赖项由
uv
管理,并列在requirements.txt
中。
- 提供了一个 FastAPI 应用 (
配置:
fc_settings.yaml
: 主要的应用程序设置。css_rules.yaml
: 包含用于网页抓取的 CSS 选择器。
搭建开发环境
前提条件
- Rust: 通过 rustup 安装 Rust 工具链。
- Python: Python 3.12 或更高版本。
- Git: 用于版本控制。
步骤
Fork 并克隆仓库: Fork Rock-Candy-Tea/hexo-circle-of-friends 仓库,并将你的 fork 克隆到本地:
bashgit clone https://github.com/<YOUR_USERNAME>/hexo-circle-of-friends.git cd hexo-circle-of-friends
配置项目: 从模板创建你自己的设置文件:
bashcp fc_settings.yaml my_settings.yaml
对于本地开发,建议使用
sqlite
数据库,它不需要额外设置。请确保在你的my_settings.yaml
中设置了DATABASE: "sqlite"
。构建 Rust 项目: 构建整个工作区,以确保所有依赖项都已获取并且代码可以编译。
bashcargo build
运行核心应用: 要执行抓取并填充数据库,请运行
fcircle_core
二进制文件。它将默认使用fc_settings.yaml
。bashcargo run --bin fcircle_core
这将在根目录中创建一个
data.db
SQLite 文件。运行 API 服务器: 要提供数据服务,请运行
fcircle_api
二进制文件。bashcargo run --bin fcircle_api
API 将在
http://localhost:8000
上可用。
运行测试与检查
在提交任何更改之前,请确保所有测试和代码质量检查都通过。
运行测试: 请为你编写的组件或功能编写测试。要在本地运行测试,请运行:
bashcargo test --workspace --all-features --all-targets -- --test-threads=1
检查格式化: 使用
rustfmt
来保持一致的代码风格。bashcargo fmt --all --check
运行 Linter (Clippy): 使用
clippy
来捕捉常见错误并提高代码质量。bashcargo clippy --workspace --all-targets --all-features -- -D warnings
分支管理与拉取请求
创建分支: 基于
main
分支为你的功能或错误修复创建一个新分支。bashgit checkout -b your-feature-name main
进行更改: 使用清晰简洁但概括全面的消息提交你的更改。
推送并创建拉取请求: 将你的分支推送到你的 fork,并针对主仓库的
main
分支创建一个拉取请求(PR)。PR 清单:
- 为你的 PR 提供一个清晰的标题和描述。
- 确保所有测试、格式化检查和 linter 检查都通过。
- 如果你添加了新功能,请同时添加相应的测试。
- 如果你的更改影响了配置或需要新的设置步骤,请相应地更新文档。
为文档做贡献
文档位于 hexo-circle-of-friends-doc 仓库中,并使用 vitepress 构建。
为文档做贡献的步骤:
克隆
hexo-circle-of-friends-doc
仓库。在
fcircle-docs/
目录中对 Markdown 文件进行更改。要本地预览你的更改,可以使用 PNPM:
bash# 如果你还没有安装 PNPM npm i -g pnpm # 启动文档服务 pnpm docs:dev
提交一个包含你更改的PR。