Skip to content

Conversation

jstvz
Copy link
Contributor

@jstvz jstvz commented Sep 4, 2025

This PR removes PyFilesystem2. Importing fs emits a pkg_resources deprecation warning (see
pyfilesystem2#597). There are also open questions about the project’s maintenance status (see
pyfilesystem2#571). As far as I can tell, CumulusCI only relied on a small, local subset of functionality. That subset maps cleanly to Python’s standard library.

This PR introduces a local-only FSResource and open_fs_resource implemented with pathlib, os, and shutil. file:// URLs are supported for absolute and relative paths, and non-file schemes are rejected. All fs imports were removed and tests updated to expect FileExistsError instead of fs.errors.DirectoryExists.

This commit removes `PyFilesystem2`. Importing `fs` emits a
`pkg_resources` deprecation warning (see
[pyfilesystem2#597](PyFilesystem/pyfilesystem2#597)).
There are also open questions about the project’s maintenance status
(see
[pyfilesystem2#571](PyFilesystem/pyfilesystem2#571)).
As far as I can tell, CumulusCI only relied on a small, local subset of functionality. That
subset maps cleanly to Python’s standard library.

This commit introduces a local-only `FSResource` and `open_fs_resource`
implemented with `pathlib`, `os`, and `shutil`. `file://` URLs are
supported for absolute and relative paths, and non-file schemes are
rejected. All `fs` imports were removed and tests updated to expect
`FileExistsError` instead of `fs.errors.DirectoryExists`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant