Skip to content

Releases: zen-fs/core

1.8.1

15 Jan 17:28
v1.8.1
dc5f9d8
Compare
Choose a tag to compare

Note

This release includes a bug fix that is a breaking change

  • Moved over LazyFile
  • OverlayFS no longer uses a mutex
  • Improved FSRequest types in Port
  • Fixed PortFS.read buffer transfer issues
  • Implemented readSync and writeSync on Async
  • Added growBuffer
  • Changed from ArrayBuffer.slice to ArrayBuffer.subarray (performance)
  • Fixed LazyFile.write and .writeSync using an incorrect position
  • Added DeviceDriver.readD and DeviceDriver.writeD
  • Deprecated DeviceDriver.read and .write
  • Added documentation to new FileSystem methods
  • Fixed FileSystem.read and .readSync not having a buffer parameter (breaking)
  • Passthrough.sync and .syncSync now sync some stats
  • The Inode constructor now accepts a partial InodeLike
  • Readonly now throws EROFS on write and `writeSync

1.8.0

14 Jan 02:53
v1.8.0
d4e71cf
Compare
Choose a tag to compare
  • Added LazyFile
    • This is not used at the moment by any backends, though it will in a future release
  • Added FileSystem.read and FileSystem.write
  • Added StatsCommon.toJSON
  • Reduce default max byte length to 1 MiB (#168)
  • Added FileReadResult type that uses built-in ArrayBufferView
  • Removed PortFile, file RPC, and RPC scopes
  • Fixed StoreFS.loadIndex (+Sync) not committing the transaction
  • Fixed files trying to call FileSystem.sync on read-only file systems
  • Reworked Port error passing
  • Changed the default value of length in File.read and File.write (+Sync)
    • From this.stats.size to buffer.byteLength - offset
    • This now has the same behavior as the relevant Node.js APIs
  • Fixed PreloadFile's handling of a buffer and stats size mismatch
  • PortFS.sync now converts metadata to a plain object
  • Fixed PortFile.read not copying to buffer
  • Changed utimes to use numbers internally
  • Tweaked Fetch.baseUrl trailing slash behavior
  • Fixed backend options type checking
  • Changed FetchFS to extend StoreFS
  • Added StoreFS methods for working with Index:
    • loadIndex
    • loadIndexSync
    • toIndex
    • toIndexSync
  • Deprecated IndexFS
    • You can use StoreFS and call loadIndex/loadIndexSync with your index
  • Changed inode and data IDs from bigint to number
  • Rewrote Index and IndexFS to be read/write
  • Added while canaries
    • This should prevent any infinite locks due to while loops
  • Fixed StoreFS not using creation options
  • Improved internal _open options
  • Added directory file type checks
  • Added PureCreationOptions

Testing:

  • Updated the npm test script
  • Improved Fetch testing
  • StoreFS using Index is now run through the full FS test suite
  • Port (including Async) is now run through the full FS test suite
  • Removed Async-specific common test suite
  • Simplified temporary coverage directory removal
  • Failing tests will now give an exit code of 1
  • Reduced tests wait times
  • zenfs-tests output is now much prettier. It has colors and fancy formatting and such.
  • Added zenfs-test flags:
    • --clean will remove cached coverage data
    • --report will report any cached coverage data, then remove it
    • --preserve will run tests but will not remove the coverage data or report on it
  • Deprecated APIs are no longer considered when calculating coverage
  • CI/CD tests now display output about test suites

1.7.2

07 Jan 18:18
v1.7.2
89b1309
Compare
Choose a tag to compare
  • Fixed ErrnoError.message incorrectly including the path and errno
    • This full message is now returned by ErrnoError.toString
  • Fix incorrect usage of assert.rejects message argument in tests
  • Updated Async._patchAsync error message for clarity

1.7.1

07 Jan 17:24
v1.7.1
a9f7d57
Compare
Choose a tag to compare

Made FileSystemMetadata.features optional to accommodate older FSes.

1.7.0

07 Jan 17:00
v1.7.0
b7be848
Compare
Choose a tag to compare
  • Added the Passthrough backend (#114)
    • This allows you to use an existing node:fs interface with ZenFS
  • Added support for set uid/gid behavior on directories to the VFS (#133)
    • Updated FileSystem.createFile and FileSystem.mkdir so contexts will be used for uid/gid
    • If a FileSystem applies setuid/setgid based on the mode, it can indicate this to the VFS by adding setid to its list of features.
  • Renamed emulation to vfs for clarity. There is now a export field for emulation in package.json for compatiblity
  • Added symlink, readlink, and realpath tests for contexts
  • Added --exit-on-fail/-e to zenfs-test
  • Reverted Async._patchAsync not throwing when out of sync on ENOENT

1.6.17

06 Jan 04:46
v1.6.17
73f091b
Compare
Choose a tag to compare
  • randomBigInt no longer uses crypto
  • randomBigInt generated 32 bits instead of 64
    • This simplifies debugging and some use cases
  • Async._patchAsync will no longer throw an error if the sync cache is out of sync and causes an ENOENT

1.6.16

24 Dec 01:16
v1.6.16
d78e35f
Compare
Choose a tag to compare
  • Fixed fs.promises.watch not passing the right this (context) to new FSWatcher
    • Added tests to prevent regression
  • Turned off some Eslint rules relating to any

1.6.15

23 Dec 23:03
v1.6.15
be3f663
Compare
Choose a tag to compare

The type of IndexData.version has been changed from 1 to number, to better support JSON imports.

1.6.14

23 Dec 21:36
v1.6.14
36ac80c
Compare
Choose a tag to compare

This release fixes watchers not supporting contexts correctly.

1.6.13

23 Dec 19:52
v1.6.13
468a43c
Compare
Choose a tag to compare
  • Updated npm dependencies
  • Removed lint-staged and minimatch