docs(plans): 留痕 K69 发布分支同步 main
This commit is contained in:
1 parent
bce8d37d88
commit
c2974957ba
2 files changed
+54
-53
No files matched your search
+27
-53
@@ -1,65 +1,39 @@
|
||||
# INBOX
|
||||
|
||||
## [已处理] K68-A 指定 API_BASE_URL 时跳过地址探测
|
||||
## [已处理] K69-A 把 develop 合入 release/v1.0.0,再合入 main
|
||||
|
||||
### 背景
|
||||
|
||||
正式包通过 `--dart-define=API_BASE_URL=http://39.162.50.99:8081` 指定接口地址,
|
||||
但 `AppConfig.probeAndApplyBaseUrl()` 不支持构建期地址:它只按
|
||||
`127.0.0.1 → 192.168.31.187 → 公网` 探测,探测结果又会覆盖 `apiBaseUrl`。
|
||||
当前 `develop` 已包含 K64~K68 全部改动(原生开屏、启动预取、清理、接口地址锁定),
|
||||
需要发布到 `release/v1.0.0`,随后同步到 `main`。
|
||||
|
||||
后果:正式包启动时仍会去探测局域网;若公网暂时不可达,会回落到开发机地址
|
||||
`192.168.31.187`,正式包里所有请求都指向错误服务器。
|
||||
### 仓库现状
|
||||
|
||||
### 目标
|
||||
- `develop`:最新,含 K68-A(`51c3635`)。
|
||||
- `origin/release/v1.0.0`:落后 develop 很多;另有 3 个 release 专属提交
|
||||
`3d0e080`、`814b2c0`、`35364c9`。
|
||||
- `origin/main`:当前停在 `5c174b0`(PR #1,内容等于旧版 release)。
|
||||
- 工作区干净。
|
||||
|
||||
- `API_BASE_URL` 已指定时,**不再探测**,直接使用该地址。
|
||||
- 运行时地址(用户在 App 内手动改的服务器)仍保持最高优先级,不被构建期地址覆盖。
|
||||
- 未指定 `API_BASE_URL` 时,探测逻辑保持现状。
|
||||
### 任务
|
||||
|
||||
### 实现
|
||||
|
||||
1. `lib/core/config/app_config.dart` 的 `probeAndApplyBaseUrl`:
|
||||
|
||||
```dart
|
||||
static Future<void> probeAndApplyBaseUrl({
|
||||
Future<bool> Function(String baseUrl)? probe,
|
||||
String? fallbackBaseUrl,
|
||||
String? compiledOverride, // 仅测试注入用
|
||||
}) async {
|
||||
final compiled = compiledOverride ?? compiledBaseUrl;
|
||||
if (compiled.isNotEmpty) {
|
||||
// 构建期已指定接口地址:直接使用,避免正式包回落开发机地址
|
||||
if (_runtimeBaseUrl.isEmpty) applyRuntimeBaseUrl(compiled);
|
||||
return;
|
||||
}
|
||||
// …原有探测逻辑不变
|
||||
}
|
||||
```
|
||||
|
||||
2. `lib/main.dart` 不改(已 `AppConfig.ready = AppConfig.probeAndApplyBaseUrl()`)。
|
||||
3. 测试 `test/config/` 补充:
|
||||
- 传 `compiledOverride` 时:`probe` 回调一次都不会被调用,`AppConfig.apiBaseUrl` 等于该地址
|
||||
- 已存在运行时地址且传 `compiledOverride` 时:运行时地址不被覆盖
|
||||
- 不传 `compiledOverride`(默认空)时:探测逻辑与现有测试保持一致
|
||||
- 测试结束复位运行时地址
|
||||
|
||||
### 验收
|
||||
|
||||
- 门禁:`dart analyze lib test` 零告警、`flutter test` 全过、`flutter build apk --debug` 成功。
|
||||
- 复核用正式包构建命令(Trae 负责重打,不需要 Codex 执行):
|
||||
|
||||
```
|
||||
flutter build apk --release --target-platform android-arm,android-arm64 \
|
||||
--dart-define=API_BASE_URL=http://39.162.50.99:8081
|
||||
```
|
||||
|
||||
### Git
|
||||
|
||||
- 从 `develop` 拉 `fix/lock-compiled-base-url`。
|
||||
- 提交:`fix(config): 指定 API_BASE_URL 时跳过地址探测`,作者 `Zhou Weidong <502333560@qq.com>`。
|
||||
- `--no-ff` 合回 `develop` 并 push;`FruitServer/docs/plans/PROGRESS.md` 追加 K68-A 留痕。
|
||||
1. `git checkout -B release/v1.0.0 origin/release/v1.0.0`
|
||||
2. `git merge --no-ff origin/develop`
|
||||
预期冲突文件(预览):
|
||||
- `lib/core/config/app_config.dart`
|
||||
- `lib/main.dart`
|
||||
- `test/config/server_endpoint_test.dart`
|
||||
**冲突处理:以上三个文件一律采用 develop 版本**(`git checkout --theirs <file>` 后 `git add`),
|
||||
因为 K65~K68 已重构启动探测与编译期地址优先级,release 分支旧的默认地址改动不再适用。
|
||||
其它文件如出现冲突,同样优先采用 develop 版本,并在 PROGRESS 里记录。
|
||||
3. 合并后门禁:`dart analyze lib test` 零告警、`flutter test` 全过、`flutter build apk --debug` 成功。
|
||||
4. push `release/v1.0.0`。
|
||||
5. `git checkout main && git merge --no-ff origin/release/v1.0.0`,push `main`。
|
||||
若远端对 `main` 有保护、push 被拒绝,不要强推,停下并在 PROGRESS 记录原因。
|
||||
6. `FruitServer/docs/plans/PROGRESS.md` 追加 K69-A 留痕:两个合并提交 hash、冲突解决说明、门禁输出。
|
||||
|
||||
### 约束
|
||||
|
||||
- 全程中文;禁止 `git add -A`;不改探测候选顺序与超时;完成后停住等待验收。
|
||||
- 全程中文;禁止 `git add -A`;禁止 `git push --force`;不动 `develop`。
|
||||
- 合并提交作者统一 `Zhou Weidong <502333560@qq.com>`。
|
||||
- 完成后停住等待验收。
|
||||
@@ -22452,3 +22452,30 @@ Running Gradle task 'assembleDebug'...
|
||||
```
|
||||
|
||||
解读:静态检查零告警,481 条测试全部通过,debug APK 构建成功。正式包由 Trae 按任务书命令重打并验收。
|
||||
|
||||
## 2026-10-20 ReelShort:K69-A 发布分支同步 main
|
||||
|
||||
- 初始状态:`origin/release/v1.0.0` 为 `35364c9`,`origin/develop` 为 `51c3635`,`origin/main` 为 `5c174b0`。
|
||||
- release 合并提交:`0cb57d0 merge: 将 develop 合入 release/v1.0.0`,作者 `Zhou Weidong <502333560@qq.com>`,已推送 `35364c9..0cb57d0`。
|
||||
- release 合并冲突仅 3 个文件:`lib/core/config/app_config.dart`、`lib/main.dart`、`test/config/server_endpoint_test.dart`,全部采用 develop 版本;无其它冲突,无冲突标记残留。
|
||||
- 门禁产生的 `pubspec.lock` 工作区漂移已恢复为 develop 版本,未改变合并提交内容。
|
||||
- main 先以 `--ff-only` 从本地 `61454e3` 快进到 `origin/main` 的 `5c174b0`,再生成合并提交 `8bb365d merge: 将 release/v1.0.0 合入 main`,作者 `Zhou Weidong <502333560@qq.com>`。
|
||||
- 正常推送 main 成功:`5c174b0..8bb365d`;未使用 force push,远端未因保护分支拒绝。
|
||||
|
||||
门禁原始输出:
|
||||
|
||||
```text
|
||||
$ dart analyze lib test
|
||||
Analyzing lib, test...
|
||||
No issues found!
|
||||
|
||||
$ flutter test
|
||||
01:14 +481: All tests passed!
|
||||
|
||||
$ flutter build apk --debug
|
||||
Running Gradle task 'assembleDebug'...
|
||||
6.5s
|
||||
✓ Built build/app/outputs/flutter-apk/app-debug.apk
|
||||
```
|
||||
|
||||
解读:release 合并结果静态检查零告警、481 条测试全部通过、debug APK 构建成功;release 与 main 均已推送,等待发布验收。
|
||||
Reference in new issue
Block a user