chore(cordis): drop rsync sync after git upstream is connected

This commit is contained in:
ryan
2026-08-30 14:32:18 +08:00
parent c68038ad06
commit df271ff708
5 changed files with 8 additions and 61 deletions
+2 -2
View File
@@ -86,13 +86,13 @@ Strong success criteria let you loop independently. Weak criteria ("make it work
- 触碰框架目录 `backend/{core,pkg,plugins}` 前,先判断能力归属:
- **通用能力**(与 OpenFlare 业务无关、任何下游都用得上)→ 必须同步在 **Wavelet 上游**完成修改,
本仓库只能通过 `scripts/sync-upstream.sh` 取得,不得长期持有本地补丁。
本仓库通过 `git fetch wavelet && git merge wavelet/main` 取得,不得长期持有本地补丁。
- **非通用能力**(OpenFlare 业务特有)→ 在自己的插件内(`backend/OpenFlare/plugins/<name>/`)实现,
或新建一个下游插件,禁止塞进上游目录。
- 开发下游功能优先**复用上游已有能力**(`core/contracts`、`backend/plugins/*`、`backend/pkg/*`);
发现上游已提供而下游仍保留本地副本的,删除本地副本改为复用,或把差量回流上游。
- 上游暂缺而确属通用能力时,可先在本仓库实现并登记到 `backend/OpenFlare/upstream-patches.md`
(`sync-upstream.sh` 同步后会提示核对),回流 Wavelet 后删除登记并重新同步。
(merge 上游后请确认补丁仍在),回流 Wavelet 后删除登记并重新 merge。
- 禁止删除 `frontend/node_modules`。
- `backend/pkg/util/` 保持纯净:禁止导入 Gin、GORM、sessions 等 HTTP/Web/DB 框架(会话选项在 `backend/OpenFlare/plugins/server/oauth/session.go`)。
+3 -2
View File
@@ -2,8 +2,9 @@
本目录占据上游 `backend/downstream/` 的位置,存放 OpenFlare 的全部业务,
按功能职责拆为 **4 个插件 + 1 个共享层**。上游目录
(`backend/{core,pkg,plugins}`)由 `scripts/sync-upstream.sh` 覆盖同步,
本目录与 `backend/cmd` 永不被覆盖。
(`backend/{core,pkg,plugins}`)通过 `git fetch wavelet && git merge wavelet/main`
吸收(第一次接线已 merge `wavelet/feat/cordis-alignment`,待该分支合入上游 main
后改走 `wavelet/main`)。本目录、`frontend/` 与 `backend/cmd` 由本仓库持有。
```
backend/OpenFlare/
+2 -2
View File
@@ -19,8 +19,8 @@
## 所有权与上游同步
**本目录由 OpenFlare 拥有,不属于上游同步范围**:`scripts/sync-upstream.sh` 仅覆盖
`backend/{core,pkg,plugins}`,从不写入 `share/` 与 `OpenFlare/`。
**本目录由 OpenFlare 拥有,不属于上游 merge 范围**:`git merge wavelet/main` 吸收
`backend/{core,pkg,plugins}` 等上游变更,从不覆盖 `share/` 与 `OpenFlare/`。
计划迁入的候选(随插件化进度):`wsclient`(需先合并 `pkg/util` 的仅存符号)、
`render`(openresty 配置渲染)、`pagesarchive`(Pages 产物解包)。
+1
View File
@@ -23,6 +23,7 @@ sidebar: false
- 控制面读写系统配置改为走上游管理仓储并同步失效缓存,避免选项/节点/日志库切换写入后 `/api/v1/config/public` 仍返回旧值。
- 已部署库启动时把历史 `goose_db_version` 一次性写入 `w_schema_versions`(`openflare/legacy` 与 `server`),不再重跑 76 条混合迁移;全新安装只创建当前的 `of_*` 业务表。ClickHouse 继续只升级节点访问/可观测相关表,用户访问日志表改由上游负责。
- `make swagger` 重新扫描上游平台插件,对外文档覆盖金标准全部 232 条 path+method(允许超集);`GET /api/v1/config/public` 仍返回扁平键值。
- 用 git merge 接入 Wavelet 上游历史(第一次 merge `wavelet/feat/cordis-alignment`,含 W1–W9);此后以 `git fetch wavelet && git merge wavelet/main` 吸收 `backend/{core,pkg,plugins}`,不再使用 rsync 同步脚本。`frontend/` 与 `backend/OpenFlare/` 仍由本仓库持有。
## [v3.5.4] - 2026-08-29
### ✨ 新功能
-55
View File
@@ -1,55 +0,0 @@
#!/usr/bin/env bash
# 从 Wavelet 上游同步 Cordis 内核与平台插件到本仓库。
#
# 只覆盖与上游同构的三个目录:backend/core、backend/pkg、backend/plugins。
# 永不触碰下游自有内容:backend/OpenFlare(业务插件)、backend/share(共享层)、
# backend/cmd 与 backend/main.go(本仓库自持的装配根)。
#
# 用法:
# scripts/sync-upstream.sh [上游 backend 路径]
# scripts/sync-upstream.sh --check # 仅报告差异,不写入
set -euo pipefail
CHECK=0
SRC="/Users/ryan/Code/Go/Wavelet/backend"
if [[ "${1:-}" == "--check" ]]; then
CHECK=1
shift
fi
if [[ -n "${1:-}" ]]; then
SRC="$1"
fi
if [[ ! -d "$SRC/core" ]]; then
echo "error: 上游 backend 路径无效:$SRC" >&2
exit 1
fi
DST="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/backend"
RSYNC_OPTS=(-a --delete)
if [[ "$CHECK" == "1" ]]; then
RSYNC_OPTS+=(-n -i)
echo "==> dry-run:仅列出将变更的文件"
fi
# 上游工作区里被 gitignore 的运行期产物绝不允许带进本仓库(曾经误提交
# uploads/diskcache 缓存块与 driver_http/dist 前端构建物共 1000+ 文件)。
EXCLUDES=(--exclude 'uploads' --exclude 'dist' --exclude 'data' --exclude '*.db' --exclude '.DS_Store')
for dir in core pkg plugins; do
echo "==> sync $dir"
rsync "${RSYNC_OPTS[@]}" "${EXCLUDES[@]}" "$SRC/$dir/" "$DST/$dir/" | sed "s|^|$dir/|"
done
PATCHES="$DST/OpenFlare/upstream-patches.md"
if [[ "$CHECK" == "1" ]]; then
echo "==> 检查完成(未写入)。以上 >f/<f 行即为与上游的差异。"
else
echo "==> 同步完成。"
if [[ -f "$PATCHES" ]]; then
echo "注意:以下上游文件带有本地补丁,同步后请确认补丁仍在(cd backend && go build ./... && go test ./core/...):"
sed -n 's/^- `\(.*\)`$/\t\1/p' "$PATCHES"
fi
fi