Skip to content

Cherry pick #1107 Migrate in-memory file system to new backend - #1255

Merged
Jay Bosamiya (Microsoft) (jaybosamiya-ms) merged 3 commits into
uliteboxfrom
jayb/cherrypick/migrate-in-memory-filesystem
Sep 2, 2026
Merged

Cherry pick #1107 Migrate in-memory file system to new backend#1255
Jay Bosamiya (Microsoft) (jaybosamiya-ms) merged 3 commits into
uliteboxfrom
jayb/cherrypick/migrate-in-memory-filesystem

Conversation

@jaybosamiya-ms

Copy link
Copy Markdown
Member

Note that this cherry-pick onto ulitebox is not clean, because ulitebox makes assumptions (due to #894) on how permission checks on directories should behave. Specifically, the Windows shim forces an incorrect implementation within the core, that would force incorrect behavior at the Linux shim. A proper fix would need a broader set of changes, so will need to be done separately. For now, this is documented by a comment and any time this is triggered at runtime, a debug log is printed.

This PR switches our in-memory filesystem to the new core file system
design (see #887). Concretely,
it adds a `InMem` backend, migrates all old usage of
`in_mem::FileSystem` to a resolver-backed one to use the new `InMem`
backend, and then removes the old `in_mem::FileSystem`. It also revamps
the in-mem backend initialization design, moving away from the ugly
"temporarily change user and do operations" to an actual controlled
initialization, which reduces the chances of footguns, and also makes
future improvements easier :)
@jaybosamiya-ms
Jay Bosamiya (Microsoft) (jaybosamiya-ms) force-pushed the jayb/cherrypick/migrate-in-memory-filesystem branch from 15c66af to a871fb5 Compare September 2, 2026 01:03
@jaybosamiya-ms
Jay Bosamiya (Microsoft) (jaybosamiya-ms) removed this pull request from the merge queue due to a manual request Sep 2, 2026
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

🤖 SemverChecks 🤖 ⚠️ Potential breaking API changes detected ⚠️

Click for details
--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/struct_missing.ron

Failed in:
  struct litebox::fs::in_mem::FileSystem, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-ulitebox/cfd1a2cacc07e2bf87112669ea51081b3de59328/litebox/src/fs/in_mem.rs:35

Merged via the queue into ulitebox with commit 83f6729 Sep 2, 2026
11 of 12 checks passed
@jaybosamiya-ms
Jay Bosamiya (Microsoft) (jaybosamiya-ms) deleted the jayb/cherrypick/migrate-in-memory-filesystem branch September 2, 2026 01:19
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