You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mount the upstream library-only fsspec-cli core application at canfar data. CANFAR supplies configured sources and owns no command implementation.
Upstream core work is complete in shinybrar/vosfs PR #294, squash commit 9e5314db4706894d31d54d245392f43b9556cfbb. Recursive copy is available. Recursive removal exists behind explicit application policy. Cross-source mv remains a locked source-free rejection and its implementation issue was closed as not planned.
Required behavior
Build one upstream AsyncFilesystemSource callable returning a fresh async context manager for every configured Storage Name.
Always add reserved local through a fresh AsyncFileSystemWrapper(LocalFileSystem(skip_instance_cache=True), asynchronous=True) per invocation.
Register the stable upstream seam App(sources, capabilities=...).typer_app as canfar data with no extensions.
Leave recursive copy enabled. Leave recursive removal disabled unless the parent issue's global host-qualification gate is explicitly resolved; do not infer policy from source type or protocol.
Keep the upstream explicit name:/absolute/path grammar.
Do not add :/path, bare local operands, an active alias, canfar storage, JSON/YAML wrappers, progress, confirmation, or CANFAR transfer logic.
Suppress the active-server banner for every data leaf so stdout remains byte/text compatible with upstream commands such as cat, find, size, and basename.
Root help advertises data in a standard pip install canfar installation; dependency imports must not perform filesystem or network I/O.
Pin documentation and test environments to vosfsv0.6.0 and fsspec-cli-v0.5.0.
Install the released pair through the normal pip install canfar path; never suggest installing main or canfar[data].
Preserve upstream cross-source mv rejection (mv: cross-source move unsupported, status 2, no source entry). Do not advertise same-source mv for current CANFAR sources either.
Do not add a CANFAR composite mv. Any future one-command relocation must be a separately named, opt-in orchestration module with stronger versioned-delete and residual-state semantics.
Acceptance criteria
Root CliRunner help contains data.
Fake source factories prove that all configured storage names and local are passed to the upstream App.
canfar data ls -lh canSRC:/ delegates unchanged to upstream behavior.
canfar data cp -R delegates unchanged to the released recursive-copy contract for admitted local/remote pairs.
Recursive rm is either intentionally disabled with the upstream source-free diagnostic or enabled only after the parent host-qualification gate is resolved and tested.
Cross-source mv retains the upstream source-free rejection, and CANFAR documentation directs users to explicit cp then rm instead.
No active-server banner or CANFAR serialization contaminates data stdout.
Deprecated grammar and aliases remain unsupported.
Standard package metadata installs both pinned data dependencies, and importing CANFAR performs no data I/O.
CANFAR passes with Typer/fsspec versions required by fsspec-cli-v0.5.0.
Lint, type checks, deterministic tests, and package build pass.
Out of scope
Any command implementation, public storage API, server-side transfer optimization, compute-near-data orchestration, FUSE, signed URLs, per-source recursive-removal policy design, and PyPI publication of upstream packages.
Issue #151 established and verified the immutable Git pins. This ticket promotes them to normal CANFAR dependencies and removes the superseded canfar[data] extra before the epic lands.
Part of Integrate upstream vosfs and fsspec-cli as canfar data.
Blocked by
fsspec-cli-v0.5.0tagged releasecapabilities.recursion.remove=FalseSummary
Mount the upstream library-only
fsspec-clicore application atcanfar data. CANFAR supplies configured sources and owns no command implementation.Upstream core work is complete in
shinybrar/vosfsPR #294, squash commit9e5314db4706894d31d54d245392f43b9556cfbb. Recursive copy is available. Recursive removal exists behind explicit application policy. Cross-sourcemvremains a locked source-free rejection and its implementation issue was closed as not planned.Required behavior
AsyncFilesystemSourcecallable returning a fresh async context manager for every configured Storage Name.localthrough a freshAsyncFileSystemWrapper(LocalFileSystem(skip_instance_cache=True), asynchronous=True)per invocation.App(sources, capabilities=...).typer_appascanfar datawith no extensions.name:/absolute/pathgrammar.:/path, bare local operands, anactivealias,canfar storage, JSON/YAML wrappers, progress, confirmation, or CANFAR transfer logic.cat,find,size, andbasename.vosfsandfsspec-clito normal CANFAR dependencies using the immutable direct Git tags from Integrate upstream vosfs and fsspec-cli as canfar data #150; remove thedataextra.datain a standardpip install canfarinstallation; dependency imports must not perform filesystem or network I/O.vosfsv0.6.0andfsspec-cli-v0.5.0.pip install canfarpath; never suggest installingmainorcanfar[data].mvrejection (mv: cross-source move unsupported, status2, no source entry). Do not advertise same-sourcemvfor current CANFAR sources either.mv. Any future one-command relocation must be a separately named, opt-in orchestration module with stronger versioned-delete and residual-state semantics.Acceptance criteria
CliRunnerhelp containsdata.localare passed to the upstreamApp.canfar data ls -lh canSRC:/delegates unchanged to upstream behavior.canfar data cp -Rdelegates unchanged to the released recursive-copy contract for admitted local/remote pairs.rmis either intentionally disabled with the upstream source-free diagnostic or enabled only after the parent host-qualification gate is resolved and tested.mvretains the upstream source-free rejection, and CANFAR documentation directs users to explicitcpthenrminstead.fsspec-cli-v0.5.0.Out of scope
Any command implementation, public storage API, server-side transfer optimization, compute-near-data orchestration, FUSE, signed URLs, per-source recursive-removal policy design, and PyPI publication of upstream packages.
Related
Publish vosfs and fsspec-cli distributions is non-blocking.
Delivered prerequisite
Issue #151 established and verified the immutable Git pins. This ticket promotes them to normal CANFAR dependencies and removes the superseded
canfar[data]extra before the epic lands.