Skip to content

FS Next 0.1.0

Choose a tag to compare

@kmsk99 kmsk99 released this 03 Oct 15:29

First stable FS Next release

FS Next is an independent maintenance fork of PyFilesystem2. Version 0.1.0 keeps the fs import and fs.opener entry-point group, preserves the original MIT license and Git history, and supports CPython 3.10 onward.

Compatibility audit

  • All 57 Python module paths and 730 publicly named definitions/constructors/context-manager methods from published fs==2.4.16 are retained, with no incompatible argument signatures. The count includes reusable test helpers and internal modules.
  • Installed upstream and candidate packages produced identical results for the deterministic filesystem behavior probe, including all 14 built-in opener registrations.
  • Memory, local, temporary, application, ZIP/TAR, mount, multi-filesystem, subfilesystem, wrappers, walking/globbing and utility APIs remain available and covered by inherited tests.
  • Local source and installed-wheel suites: 2,757 passed, 30 skipped. Coverage: 92.77% statements, 86.07% branches.
  • Required release checks cover Linux/macOS/Windows on Python 3.10–3.14, upstream API/behavior parity, S3 dependency migration and pyfatfs. Python 3.15 preview is checked separately.

Fixes and maintenance

  • Remove runtime setuptools/pkg_resources dependency while retaining namespace extensions and opener discovery.
  • Correct modern Python URL quoting, FTP cleanup and date parsing, and deprecated UTC timestamp construction.
  • Fix streamed FTPS worker uploads by completing TLS shutdown before awaiting transfer completion. Seeking after a write also waits for completion, fixing stale reads on Windows. An encrypted loopback contract suite and failure-cleanup regressions cover these fixes.
  • Adapt the documentation and migration instructions; build docs with warnings treated as errors.

Installation and scope

python -m pip install fs-next==0.1.0

Use a fresh environment. Do not install fs and fs-next together; they own overlapping files. External packages declaring a dependency on fs need a metadata migration. Python versions below 3.10 are outside the support range.

FTPS verification uses a loopback server. S3 uses a locally adapted plugin and an emulator; pyfatfs is an API probe. This release does not claim universal hosted-server, live AWS, SSH or third-party plugin compatibility.

Detailed release audit · Migration guide · Support policy

Thanks to Will McGugan and all PyFilesystem2 contributors whose implementation, tests and documentation this fork preserves.

Known preview limitation

Python 3.15rc2 has an FTPS/hash error-path failure on all three operating systems, also reproduced with the standard-library FTP_TLS client on 3.15rc1. Full 3.15 compatibility is not yet verified. Python 3.10–3.14 pass all required checks. See support policy.