feat!: add read-only mode, fix XDG behavior in get_data_dir()#79
Draft
jsstevenson wants to merge 7 commits into
Draft
feat!: add read-only mode, fix XDG behavior in get_data_dir()#79jsstevenson wants to merge 7 commits into
jsstevenson wants to merge 7 commits into
Conversation
theferrit32
reviewed
Sep 18, 2025
Comment on lines
+85
to
+87
| * If read-only is enabled, ``$XDG_DATA_DIRS`` can be used to provide a data directory, but only if | ||
| a ``wags-tails`` subdirectory already exists within it. Otherwise, an individual directory entry | ||
| is skipped. If unable to resolve to a directory that exists, raises ``WagsTailsDirNotAvailableError``. |
There was a problem hiding this comment.
Is this extra criteria needed? Only if read-only is enabled, and only if the subdirectory already exists?
Member
Author
There was a problem hiding this comment.
Yeah, I've been chasing my tail on this a bit. When read-only is on, a nonexistent directory is useless, but I think it begs the question of what to do when $WAGS_TAILS_READONLY=true and $WAGS_TAILS_DIR is defined but doesn't exist. I guess a simpler way forward would be to not skip and fail once the process tries to write a file to the data subdirectory, because presumably if you can define $WAGS_TAILS_READONLY then you can also be smart enough to point $WAGS_TAILS_DIR to a real directory.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
get_data_dir(), either with a function argreadonly=Trueor env varWAGS_TAILS_READONLY=true. If True, don't try tomkdir(), but otherwise run some broad checks to confirm that it's actually writeable (raise an error if they fail). This begins to address Wags-tails incorrectly reads config files on containers #78XDG_DATA_DIRSshould be read-only -- if one of the items already includes a directory namedwags_tails, use it, but skip otherwise)"read only mode" here is not truly read-only, because we will also need to force all source
.get_latest()calls to usefrom_local=True. Unfortunately, we don't have a terribly elegant way of changing things on that side, so I'd prefer to see if this is good enough for now: ifWAGS_TAILS_READONLY=trueis declared in an environment where the required data is already available at an expected location, then I would expect no further writes to happen. I think I may tackle a bigger redesign effort during an upcoming bikeshedding week.