Comments (4)
should we defer adding the trait until we know it's necessary?
You're right. It doesn't seem like there's any motivation to prefer handling the extreme edge case of out-of-band delete + create at the same path in favor of handling the more common edge case of editing a file out-of-band.
Let's only add configurability when we see that people actually want it.
from jupyter_server_fileid.
from jupyter_server_fileid.
If the default is to only use creation times (when available) and given the expense of adding a configurable trait[*] that can likely introduce wrong behavior, should we defer adding the trait until we know it's necessary?
For example, to enable this trait, the user is saying to treat an out-of-band modified file as a NEW file. For the case in which the file had been deleted and recreated with the SAME name, and that the inode was unchanged, one could easily argue that the user's intention was to preserve the meaning of the file (by retaining the name), and they're just "starting over". But, simply modifying the file, should never resort in the orphaning of all external references.
I suspect there will be other edge cases that will be more severe (e.g., hard and soft links, other filesystem types) that can be focused on for now.
[*]: Adding a configurable trait is expensive. It requires documentation, is one more "knob" a user needs to fully understand (especially in this case) and requires a deprecation cycle to be removed.
from jupyter_server_fileid.
This will include a regression since I believe there may be a few tests that cover this, and those will need to be removed as well.
from jupyter_server_fileid.
Related Issues (20)
- prefix contents manager root to paths stored in ArbitraryFileIdManager HOT 1
- make `BaseFileIdManager` a true ABC
- Improve documentation about getting a LocalFileIdManager HOT 2
- support crtime on ext4
- ArbitraryFileIdManager should have a configurable option to determine its "content root" HOT 3
- pypy compatibility
- Alternative file ID implementation
- create SQLite mixin
- jupyter-fileid script needs click HOT 6
- Tests are failing on archs like ppc64le or s390x HOT 5
- tmpfs support HOT 12
- Using sqlite in WAL mode causes file saving failure when used on JupyterHub on NFS HOT 15
- UNIQUE constraint failed when moving file HOT 9
- use a decorator to automatically commit after public methods
- Newly created notebook is not indexed HOT 5
- How to deal with file deletion? HOT 7
- Allow db_path to be set to ":memory:" HOT 3
- Add simple REST API to fetch a file ID given a file path HOT 1
- Setup Github publishing actions and PyPI with Jupyter Server Bot.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jupyter_server_fileid.