Remove the speculative FileSystemSource - #51
Merged
Conversation
FileSystemSource sketched a provenance-sidecar loading convention (data files next to fingerprint-keyed YAML provenance) but never gained a concrete subclass: nothing implements deserialize_data, and from_path, storage_type, get_content_df, and the module-level sidecar scanner have zero callers in src, tests, or docs. The practical load-data-from-disk path is the Spool node. Keep the small Source ABC the engine consumes (isinstance checks in pipe.py and executor.py) minus its dead optional from_path hook; drop the FileSystemSource re-exports from derzug and derzug.workflow.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Removes the speculative
FileSystemSourcefromworkflow/source.py, per maintainer decision (flagged in the 2026-08-04 architecture review as an API call to make).It sketched a provenance-sidecar loading convention — data files stored next to fingerprint-keyed YAML provenance records — but was never finished: no concrete subclass exists anywhere (nothing implements
deserialize_data, so it was never instantiable), andfrom_path,storage_type,get_content_df, and the module-level sidecar scanner have zero callers in src, tests, or docs. The practical "load data from disk into a workflow" path is the Spool node.Kept: the small
SourceABC the engine actually consumes (isinstancechecks inpipe.py/executor.py), minus its dead optionalfrom_pathhook. TheFileSystemSourcere-exports are dropped fromderzugandderzug.workflow(−~155 lines). CHANGELOG notes the public-name removal under Changed (breaking); it remains recoverable from git history if a Sink/Source provenance workflow ever lands on the roadmap.Counterpart review: Codex CLI still rate-limited (resets Aug 8). Given the scope — a pure deletion of never-instantiable code, verified by repo-wide grep for every removed public name — no separate self-review file this time; the verification is in this description.
Checklist
I have (if applicable):
Sourcepaths)prek run --all-filesandpytest tests(2114 passed, 44 skipped; all 10 hooks pass).python scripts/bench_compare.py --baseline main. (n/a — dead code only)