Tier 1 — Replace. src/Fallout.Common/IO/FtpTasks.cs (~83 LOC) does recursive FTP upload via the deprecated WebRequest/WebRequestMethods.Ftp API (#pragma warning disable SYSLIB0014).
Replace with
FluentFTP — async-first, maintained, modern FTP client.
⚠️ Breaking change
FtpTasks is public API. New signatures (async, different upload entry points) break consumers → carries breaking-change, lands on experimental, batched to the yearly major per ADR-0004. Add a CHANGELOG.md entry under the next major with a migration note. Consider an [Obsolete] shim on the old surface if a transition path is wanted.
Acceptance
From dependency-consolidation audit, 2026-06-02.
Tier 1 — Replace.
src/Fallout.Common/IO/FtpTasks.cs(~83 LOC) does recursive FTP upload via the deprecatedWebRequest/WebRequestMethods.FtpAPI (#pragma warning disable SYSLIB0014).Replace with
FluentFTP — async-first, maintained, modern FTP client.
FtpTasksis public API. New signatures (async, different upload entry points) break consumers → carriesbreaking-change, lands onexperimental, batched to the yearly major per ADR-0004. Add aCHANGELOG.mdentry under the next major with a migration note. Consider an[Obsolete]shim on the old surface if a transition path is wanted.Acceptance
SYSLIB0014suppression removedbreaking-changelabel + CHANGELOG entry + migration noteexperimentalFrom dependency-consolidation audit, 2026-06-02.