Skip to content

Latest commit

 

History

History
96 lines (79 loc) · 4.22 KB

File metadata and controls

96 lines (79 loc) · 4.22 KB

Open issues and PRs upstream

Possibly valid bugs

  • #146 Bug: NameError: name 'self' is not defined
  • #144 How to enable O_DIRECT
  • #142 FUSE::_wrapper() is a static method, so it shouldn't refer to 'self'
  • #130 fixing TypeError: an integer is required when val is None
  • #129 setattr(st, key, val): TypeError: an integer is required
  • #124 "NameError: global name 'self' is not defined" in static FUSE._wrapper()
  • #120 lock operation is passed a pointer to the flock strut
  • #116 Segfault when calling fuse_exit
  • #97 broken exception handling bug
  • #81 Irritating default behavior of Operations class - raising FuseOSError(EROFS) where it really should not bug

Features

  • #147 Implement support for poll in the high-level API
  • #145 Added fuse-t for Darwin search. See https://www.fuse-t.org/
  • #127 Pass flags to create in non raw_fi mode.
  • #104 fix POSIX support for UTIME_OMIT and UTIME_NOW
  • #101 Support init options and parameters.
  • #100 libfuse versions
  • #70 time precision inside utimens causes rsync misses
  • #66 Support init options and parameters
  • #61 performance with large numbers of files
  • #28 Implement read_buf() and write_buf()
  • #7 fusepy speed needs
  • #2 Unable to deal with non-UTF-8 filenames

Cross-platform issues and feature requests that are out of scope

  • #143 Expose a file system as case-insensitive
  • #141 Windows version?
  • #136 RHEL8 RPM package
    • This is the task of Linux distribution package maintainers.
  • #133 Slashes in filenames appear to cause "Input/output error"
  • #128 fusepy doesn't work when using 32bit personality
  • #117 Module name clash with python-fuse
  • #57 Does this support using the dokany fuse wrapper for use on Windows?
  • #40 [openbsd] fuse_main_real not existing, there's fuse_main

Questions

Most of these are non-actionable.

  • #138 “nothreads” argument explanation
  • #134 Project status?
  • #132 fusepy doesn't work when in background mode
  • #123 Create/Copy file with content
  • #119 Documentation
  • #118 Publish a new release
    • Not relevant to mfusepy. Also, mfusepy already did publish a new release.
  • #115 read not returning 0 to client
  • #112 truncate vs ftruncate using python std library
  • #105 fuse_get_context() returns 0-filled tuple during release bug needs example
  • #98 Next steps/road map for the near future
  • #26 ls: ./mnt: Input/output error

FUSE-ll out of scope for me personally

  • #114 [fusell] Allow userdata to be passed to constructor
  • #111 [fusell] Allow userdata to be set
  • #102 Extensions to fusell.
  • #85 bring system support in fusell.py to match fuse.py

Tests and documentation

  • #139 Memory example empty files and ENOATTR
    • Fixed with mfusepy#33.
  • #126 package the LICENSE file in distributions
    • The sdist and the wheel, both include the LICENSE.
  • #109 Add test cases for fuse_exit implementation needs tests
  • #99 Python versions
    • Tests for all supported Python versions >= 3.9 exist. There is no point in supporting 2.x anymore.
  • #82 Create CONTRIBUTING.md
  • #80 Test infrastructure and suite
  • #78 update memory.py with mem.py from kungfuse?
  • #59 Include license text in its own file
  • #27 link to wiki from readme

Performance Improvement Ideas

  • Reduce wrappers:
    • Always forward path as bytes. This avoids the _decode_optional_path call completely.

Changes for some real major version break

  • Enable raw_fi by default.
  • Remove file path encoding/decoding by default.
  • Return ENOSYS by default for almost all Operations implementation.
  • Simply expose c_stat to the fusepy user instead of expecting a badly documented dictionary. It is platform-dependent, but thanks to POSIX the core members are named identically. The order is unspecified by POSIX. What the current approach with set_st_attrs adds is silent ignoring of unknown keys. This may or may not be what one wants and the same can be achieved by testing c_stat with hasattr before setting values. This style guide should be documented.