mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-12-07 01:48:06 -06:00
# Description
This PR updates the Chinese documentation to 6c879186 (the latest commit at present).
It also fixed a small typo in the original docs. Since the change is so minor, I didn't make a separate PR.
Last docs/zh update PR: #3884
## Checklist
Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]`
If this is a documentation change, only the first checkbox must be filled (you can delete the others if you want).
- [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md).
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4117
Co-authored-by: cdn0x12 <git@cdn0x12.dev>
Co-committed-by: cdn0x12 <git@cdn0x12.dev>
This commit is contained in:
parent
6c87918635
commit
4d6408015b
18 changed files with 817 additions and 115 deletions
|
|
@ -41,11 +41,11 @@
|
|||
|
||||
## 错误报告与功能请求
|
||||
|
||||
目前,我们使用 Github 的问题追踪系统来管理错误报告与功能请求。
|
||||
目前,我们使用 Codeberg 的问题追踪系统来管理错误报告与功能请求。
|
||||
|
||||
你可以在[此处](https://codeberg.org/superseriousbusiness/gotosocial/issues "GoToSocial 的 Github 问题页")查看所有开放的问题。
|
||||
你可以在[此处](https://codeberg.org/superseriousbusiness/gotosocial/issues "GoToSocial 的 Codeberg 问题追踪页")查看所有开放的问题。
|
||||
|
||||
在创建新问题之前,不论是错误还是功能请求,**请现仔细搜索所有仍处于打开状态和已被关闭的问题,以确保它尚未被解决过**。你可以使用 Github 的关键字搜索来进行此操作。如果你的问题与已有问题重复,它将被关闭。
|
||||
在创建新问题之前,不论是错误还是功能请求,**请现仔细搜索所有仍处于打开状态和已被关闭的问题,以确保它尚未被解决过**。你可以使用 Codeberg 的关键字搜索来进行此操作。如果你的问题与已有问题重复,它将被关闭。
|
||||
|
||||
在打开功能请求之前,请考虑以下几点:
|
||||
|
||||
|
|
@ -121,16 +121,14 @@ conda env export -n gotosocial-docs --from-history --override-channels -c conda-
|
|||
|
||||
### Golang 的分支特点
|
||||
|
||||
Golang 的一个特点是,它所依赖的源代码管理路径与 `go.mod` 中使用的路径以及各 Go 文件中的包导入路径相同。这使得使用分支有些棘手。
|
||||
|
||||
正确的解决方案是先派生存储库,然后克隆上游存储库,并将上游存储库的 `origin` 设置为你分支的源。
|
||||
Golang 的一个特点是,它所依赖的源代码管理路径与 `go.mod` 中使用的路径以及各 Go 文件中的包导入路径相同。这使得使用分支版本变得有些棘手。这个问题的解决方案是先派生存储库,然后克隆上游存储库,并将上游存储库的 `origin` 设置为你派生的存储库的源。
|
||||
|
||||
有关更多细节,请参阅[这篇博客](https://blog.sgmansfield.com/2016/06/working-with-forks-in-go/)。
|
||||
|
||||
为防此文章消失,此处是步骤(有轻微修改):
|
||||
|
||||
>
|
||||
> 在 GitHub 上派生存储库或设置任何其他远程 git 存储库。在这种情况下,我会转到 GitHub 并分支存储库。
|
||||
> 在 Codeberg 上派生存储库或设置任何其他远端 git 存储库。在这种情形下,我会转到 Codeberg 并派生存储库。
|
||||
>
|
||||
> 现在克隆上游存储库(而非派生的存储库):
|
||||
>
|
||||
|
|
@ -155,9 +153,9 @@ Golang 的一个特点是,它所依赖的源代码管理路径与 `go.mod` 中
|
|||
|
||||
#### 二进制文件
|
||||
|
||||
要开始构建,你需要先安装 Go。GtS 目前使用 Go 1.21,因此你也应该使用这个版本。安装指南见[此处](https://golang.org/doc/install)。
|
||||
要开始构建,你首先需要安装 Go。你可以在顶层目录的 `go.mod` 文件中查看需要安装的 Go 版本,然后按照[此处](https://golang.org/doc/install)的指引进行安装。
|
||||
|
||||
安装 go 后,将此存储库克隆到你的 Go 路径中。通常,此路径为 `~/go/src/code.superseriousbusiness.org/gotosocial`。
|
||||
安装 Go 后,将此存储库克隆到你的 Go 路径中。通常,此路径为 `~/go/src/code.superseriousbusiness.org/gotosocial`。
|
||||
|
||||
安装完上述环境与依赖后,可以尝试构建项目:`./scripts/build.sh`。此命令将构建 `gotosocial` 二进制文件。
|
||||
|
||||
|
|
@ -185,8 +183,6 @@ GoReleaser 还被 GoToSocial 用于构建和推送 Docker 镜像。
|
|||
|
||||
为此,首先[安装 GoReleaser](https://goreleaser.com/install/)。
|
||||
|
||||
然后按照[Swagger 部分](#更新-swagger-文档)的说明安装 GoSwagger。
|
||||
|
||||
接着按[样式表 / Web开发](#样式表--web开发)的说明安装 Node 和 Yarn。
|
||||
|
||||
最后,创建快照构建,执行:
|
||||
|
|
@ -199,7 +195,7 @@ goreleaser release --clean --snapshot
|
|||
|
||||
##### 手动构建
|
||||
|
||||
如果你更喜欢以简单方法构建 Docker 容器,使用更少的依赖(go-swagger, Node, Yarn),也可以这样构建:
|
||||
如果你更喜欢以简单方法构建 Docker 容器,使用更少的依赖(Node, Yarn),也可以这样构建:
|
||||
|
||||
```bash
|
||||
./scripts/build.sh && docker buildx build -t superseriousbusiness/gotosocial:latest .
|
||||
|
|
@ -207,6 +203,8 @@ goreleaser release --clean --snapshot
|
|||
|
||||
上述命令首先构建 `gotosocial` 二进制文件,然后调用 Docker buildx 构建容器镜像。
|
||||
|
||||
如果在构建过程中出现错误,提示 `"/web/assets/swagger.yaml": not found`,则需要(重新)生成 Swagger 文档,参见 [更新 Swagger 文档](#更新-swagger-文档)。
|
||||
|
||||
如果想为不同 CPU 架构构建 docker 镜像而不设置 buildx(例如 ARMv7 aka 32-bit ARM),首先需要通过添加以下几行到 Dockerfile 顶部来修改 Dockerfile(但不要提交此更改!):
|
||||
|
||||
```dockerfile
|
||||
|
|
@ -481,64 +479,24 @@ GTS_DB_TYPE="postgres" GTS_DB_ADDRESS="localhost" go test -p 1 ./...
|
|||
|
||||
GoToSocial 使用 [go-swagger](https://goswagger.io) 根据代码注释生成 Swagger API 文档。
|
||||
|
||||
你可以遵循 [此处](https://goswagger.io/go-swagger/install/) 的说明安装 go-swagger。
|
||||
|
||||
如果你更改了任何 API 路径上的 Swagger 注释,可以通过运行以下命令在 `./docs/api/swagger.yaml` 生成一个新的 Swagger 文件:
|
||||
如果你修改了任何 API 端点上的 Swagger 注释,你可以通过运行以下命令在 `./docs/api/swagger.yaml` 生成一个新的 Swagger 文件,并通过以下命令将该文件复制到 web 资源目录中:
|
||||
|
||||
```bash
|
||||
go run github.com/go-swagger/go-swagger/cmd/swagger generate spec --scan-models --exclude-deps --output docs/api/swagger.yaml
|
||||
go run ./vendor/github.com/go-swagger/go-swagger/cmd/swagger \
|
||||
generate spec --scan-models --exclude-deps -o docs/api/swagger.yaml \
|
||||
&& cp docs/api/swagger.yaml web/assets/swagger.yaml
|
||||
```
|
||||
|
||||
你无需安装 go-swagger 来运行此命令,因为 `vendor` 目录中已经包含了 go-swagger。
|
||||
|
||||
### CI/CD 配置
|
||||
|
||||
GoToSocial 使用 [Drone](https://www.drone.io/) 进行 CI/CD 任务,如运行测试、代码检查和构建 Docker 容器。
|
||||
GoToSocial 使用 [Woodpecker CI](https://woodpecker-ci.org/) 进行 CI/CD 任务,如运行测试、代码检查和构建 Docker 容器。
|
||||
|
||||
这些运行与 GitHub 集成,在打开拉取请求或合并到主干时执行。
|
||||
这些运行与 Codeberg 集成,在打开拉取请求或合并到主干时执行。
|
||||
|
||||
GoToSocial 的 Drone 实例在 [此处](https://drone.superseriousbusiness.org/superseriousbusiness/gotosocial)。
|
||||
`woodpecker` 流水线文件在 [此处](../../../../.woodpecker) —— 它们定义了 Woodpecker 如何运行及何时运行。
|
||||
|
||||
`drone.yml` 文件在 [此处](../../../../.drone.yml) —— 它定义了 Drone 如何运行及何时运行。Drone 的文档在 [此处](https://docs.drone.io/)。
|
||||
GoToSocial 的 Woodpecker 实例地址在 [此处](https://woodpecker.superseriousbusiness.org/repos/2).
|
||||
|
||||
值得注意的是,`drone.yml` 文件必须由 Drone 管理员帐户签名后才被视为有效。每次修改该文件时都必须这样做。这是为了防止篡改和劫持 Drone 实例。请参阅 [此处](https://docs.drone.io/signature/)。
|
||||
|
||||
要签署文件,请首先安装并设置 [drone cli 工具](https://docs.drone.io/cli/install/)。然后,运行:
|
||||
|
||||
```bash
|
||||
drone -t PUT_YOUR_DRONE_ADMIN_TOKEN_HERE -s https://drone.superseriousbusiness.org sign superseriousbusiness/gotosocial --save
|
||||
```
|
||||
|
||||
### 发布检查清单
|
||||
|
||||
首先:如果这是一个安全修复,我们可能会加急处理此清单,并在几天后发布包含此修复的版本。
|
||||
|
||||
现在,解决完安全问题后,此处是我们的清单。
|
||||
|
||||
GoToSocial 遵循 [语义化版本控制](https://semver.org/)。
|
||||
因此,清单上的首要问题是:
|
||||
|
||||
- 我们正在发布哪个版本?
|
||||
|
||||
接下来我们需要检查:
|
||||
|
||||
- 这些资源是否需要重新构建并提交到存储库。
|
||||
- Swagger 文档是否需要重新生成?
|
||||
|
||||
在项目管理方面:
|
||||
|
||||
- 是否有需要移动到其他里程碑的问题?
|
||||
- [路线图](./ROADMAP.md) 上是否有可以勾掉的事情?
|
||||
|
||||
一旦我们对清单满意,我们就可以创建标签并推送它。
|
||||
剩下的事情 [是自动化](../../../../.drone.yml)。
|
||||
|
||||
然后我们可以前往 GitHub,为发布说明增添个性。
|
||||
最后,我们在所有渠道上发布公告,宣布发布已完成!
|
||||
|
||||
#### 如果出问题了怎么办?
|
||||
|
||||
有时事情会出错。
|
||||
我们发布了有 Bug 的版本,或者忘记了什么重要的东西。
|
||||
|
||||
如果该版本不可用,甚至对很大一部分用户而言是危险的,我们可以删除标签。
|
||||
|
||||
无论怎样,一旦我们解决了问题,我们就重新开始这个清单。版本号并不昂贵,可以随意更改。
|
||||
Woodpecker 的文档参见 [此处](https://woodpecker-ci.org/docs/intro).
|
||||
Loading…
Add table
Add a link
Reference in a new issue