diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6ad8522..5f7988f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,10 @@ env: CARGO_TERM_COLOR: always # Pin the toolchain to the declared MSRV so CI matches production. RUST_TOOLCHAIN: 1.90.0 - GO_VERSION: "1.25.0" + # The differential check compares Rust against net/http behaviour, which + # changes between Go releases (e.g. ServeMux redirects 301 -> 307), so the + # reference must be built with the same Go the Rust port mirrors. + GO_VERSION: "1.27.3" jobs: rust: diff --git a/README.md b/README.md index b76f77e..7df5762 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,8 @@ against the same `BALANCE_DB_PATH`; do not run both writers simultaneously. Existing accounts, access/refresh tokens and saved device cursors remain usable. See [deployment and rollback](docs/DEPLOYMENT.md) for the full procedure. -Verify the implementations locally with Go 1.25+, Rust and Python 3: +Verify the implementations locally with Go 1.27.3 (the version CI uses for the +differential check), Rust and Python 3: ```sh cargo test --locked diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index fd38cf6..1c2923f 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -2,7 +2,7 @@ ## Требования -Production-сервер использует Rust 1.90+ и bundled SQLite. Go 1.25+ нужен для сохранённой эталонной реализации и differential-проверок. Python 3 используется без сторонних пакетов. +Production-сервер использует Rust 1.90+ и bundled SQLite. Go 1.25+ нужен для сохранённой эталонной реализации; differential-проверки (`tools/compatibility.py`) требуют Go 1.27.3, как в CI: поведение `net/http` (например, код редиректа ServeMux 301/307) зависит от версии Go. Python 3 используется без сторонних пакетов. Проверить локальную версию: