ci: cli-compat fails — 4 sse/sync integration tests broken in B2_Command_Line_Tool (all environments)

未关闭
#627 2 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 1 天内回复

@ffumero2003 已经在做这个了。

开始于 2026年10月8日。

评估

这个 Issue 还没有评估数据。

描述

bug testing

The cli-compat job keeps master CI red. After fuller analysis the scope is not Python-3.14-specific (original framing corrected): it is 4 integration tests that fail across every environment, and they live in the B2_Command_Line_Tool repo.

Actual scope

Four tests fail, always the same ones:

  • test/integration/test_b2_command_line.py::test_sse_b2
  • test/integration/test_b2_command_line.py::test_sse_c
  • test/integration/test_b2_command_line.py::test_sync_up[-None]
  • test/integration/test_b2_command_line.py::test_sync_up[sync-None]

They fail with a plain assert expected == actual at test/integration/helpers.py:138 — i.e. the CLI's server-side-encryption / sync behavior no longer matches what its own tests expect.

It is not a Python 3.14 issue. In B2_Command_Line_Tool's own CI these 4 fail on 3.10, 3.12, 3.14, pypy3.10, Docker, Linux bundles, Windows and macOS — the same "4 failed" everywhere. It only looked 3.14-specific here because this SDK's cli-compat job runs the CLI's unit tests on 3.10/3.12 but its integration tests only on the 3.14 entry, so 3.14 was the only red job. The Python-3.14 fork()/forkpty() warnings in the log are noise, not the cause.

It is not caused by this SDK release. The SDK's own unit tests pass on all versions; cli-compat is just surfacing a pre-existing break that already reddens the CLI repo's own CI.

The correct way to fix this

  1. Fix the root cause in B2_Command_Line_Tool — the failing tests and the assertion live there. A passing fix turns both the CLI's CI and this SDK's cli-compat job green at once.
  2. First determine which kind of fix it is: pull the expected-vs-actual for one sse test and decide whether it's (a) a stale test expectation to update (the sse/sync output changed deliberately — the assertion context references apiver_int >= 4, consistent with the CLI v5.0.0 / API v4 change), or (b) a real sse/sync regression to fix in code. Correlate with the most recent change that touched sse inheritance / sync output.
  3. Do not mark the 3.14 job continue-on-error / allow-failure. That would hide a broad, legitimate failure (and wouldn't help, since every version fails). Suppressing CI is the anti-pattern we're trying to avoid.
  4. Track it where the fix lands: open/raise the primary issue on B2_Command_Line_Tool and link it here. This issue stays as the SDK-side visibility (cli-compat red) and closes when the CLI fix propagates.

Standing practice to carry forward

  • No release while CI is red — the red here is real, so the answer is to fix it, not route around it.
  • cli-compat is a cross-repo canary: when it's red, check whether the downstream repo (the CLI) is red on its own first; if it is, the cause is localized there, not in the SDK change.

Acceptance

  • The 4 sse/sync integration tests pass in B2_Command_Line_Tool's CI.
  • This SDK's cli-compat job is green; master Continuous Integration is green.
  • No releases are cut while CI is red.
主要语言
Python
星标
214
派生
68
平均合并
51 分钟
30 天内合并 PR
6

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

Backblaze/b2-sdk-python 的其他 Issue

查看 Backblaze/b2-sdk-python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。