Repository navigation
Description
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_b2test/integration/test_b2_command_line.py::test_sse_ctest/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
- 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'scli-compatjob green at once. - 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. - 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. - Track it where the fix lands: open/raise the primary issue on
B2_Command_Line_Tooland link it here. This issue stays as the SDK-side visibility (cli-compatred) 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-compatis 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-compatjob is green;masterContinuous Integration is green. - No releases are cut while CI is red.
Activity
[-]ci: cli-compat integration tests fail on Python 3.14 (sse, sync_up)[/-][+]ci: cli-compat fails — 4 sse/sync integration tests broken in B2_Command_Line_Tool (all environments)[/+]ffumero2003 commentedon Oct 8, 2026
Re-scoped after fuller analysis: this is not Python-3.14-specific. The same 4 sse/sync integration tests fail across every environment in
B2_Command_Line_Tool's own CI (3.10–3.14, pypy, Docker, bundles, Windows, macOS); it only surfaced as the 3.14 job here becausecli-compatruns the CLI integration suite only on the 3.14 entry. Root cause and fix belong inB2_Command_Line_Tool(assertion attest/integration/helpers.py:138).ffumero2003 commentedon Oct 8, 2026
Primary fix tracked in Backblaze/B2_Command_Line_Tool#1184 (the tests live in B2_Command_Line_Tool).