Repository navigation
Published upstream compatibility verification
The reference is the latest actual PyPI fs==2.4.16 wheel and sdist. Both hashes were checked, and all 57 Python modules in the two artifacts match byte for byte. FS Next retains all original modules and 730 publicly named definitions/constructors/context-manager methods, with no incompatible argument signatures.
Changes
- Run the complete published original test suite, including its original
fs.testcontract helper, against the installed FS Next candidate. No assertions are removed: four discovery mocks are retargeted, and the legacy multiprocessing fixture is run last and joined to avoid interference from the old FTP fixture. - Restore the original
scandirinstallation extra; supported Python versions already provideos.scandir. - Resolve the Python 3.15 FTPS/hash failure: create hash objects in a short-lived worker thread so failed OpenSSL algorithm lookup cannot contaminate the caller's TLS error state. Preserve supported algorithm aliases and exception types.
- Make the original upstream suite on all three operating systems and the full Python 3.15 preview matrix mandatory for publishing.
Verification
- Original PyPI suite on the installed candidate: 2,400 passed, 29 capability/platform skips on macOS Python 3.10.
- Modern full suite: 2,760 passed, 30 skips on each local CPython 3.10–3.15rc1; the installed 3.15 wheel passes the same suite.
- Original/candidate installed behavior comparison, no-setuptools wheel smoke, S3 migration and pyfatfs probes pass.
- Required remote checks cover Linux/macOS/Windows on Python 3.10–3.14, original PyPI tests on all three OSes, plugin probes, API/behavior parity, and Python 3.15 preview. Publishing also validates docs, artifacts and the installed-wheel suite.
python -m pip install fs-next==0.1.1Use a fresh environment; fs and fs-next must not coexist. Python 3.10 remains the minimum. The 3.15 checks use release candidates. External S3/SSH plugins are not built-in features of the original distribution, and live services/arbitrary plugins remain outside this test evidence.