Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More robust file watching #147

Merged

Conversation

CosmicHorrorDev
Copy link
Collaborator

Before file watching would keep watching a file even after it was renamed. File watching would also fail permanently if you did something like removing the original file and replacing with a new file after a short delay

These changes handle all of the above cases by .unwratch()ing the file after name changes (the path associated with the watcher is still the original path name even after a rename) and looping continuously to re-register the watcher after the original file is renamed/removed

I also added a reminder to fix watching the file after changing the file by clicking a markdown link from within the current file, but haven't handled that quite yet

@CosmicHorrorDev CosmicHorrorDev added the C-bug Category: Something isn't working label Jun 18, 2023
@CosmicHorrorDev
Copy link
Collaborator Author

I also added a reminder to fix watching the file after changing the file by clicking a markdown link from within the current file, but haven't handled that quite yet

Figured I would go ahead and get around to this. 🤞 that the test passes CI

@CosmicHorrorDev
Copy link
Collaborator Author

Re-ran CI 5 times which means that the test suite passed 15 times in a row across three platforms, but it seems like the new test may be naturally flaky unfortunately. If it becomes a problem in the future then I can just wrap the whole thing in a set amount of retries to drastically reduce the failure rate

Also it looks like the x86 mac runner is the only runner that rebuilds everything on every run even though it has a cache hit, so that's odd

@CosmicHorrorDev
Copy link
Collaborator Author

I'm confident that the test should be reasonable reliable now. If there are any issues in the future then I can investigate and may wrap the test in a fixed amount of retries

@CosmicHorrorDev CosmicHorrorDev merged commit 2cea117 into Inlyne-Project:main Jun 21, 2023
4 checks passed
CosmicHorrorDev added a commit to CosmicHorrorDev/inlyne that referenced this pull request Nov 19, 2023
* The watcher should attempt to re-register on name changes

* Re-register watcher after longer delays

* Add a reminder for fixing watching after file changes

* Move file watcher into its own file

* Make file watcher testable

* Watcher follows file changes

* Test the file watcher

* Final test tweaks

* Swap back to the old delays

* Final final test tweaks

* Use a slightly longer delay

* Shorter poll interval for file watcher

* Follow through with rename
@CosmicHorrorDev CosmicHorrorDev mentioned this pull request Nov 19, 2023
8 tasks
CosmicHorrorDev added a commit that referenced this pull request Nov 23, 2023
* Some clean ups, fixes, config flag (#91)

* Refactor: Remove unneccesary CLI branching

* Refactor: Refactor configuration load function

* Feat: Add '--config' flag

* Refactor: Reduce passing of args and configuration

* Fix: Fix cli parsing of page width

* Clean: use 'display()' instead of debug print for path

* Clean: use Default for Keybindings

* Refactor: Use Keybindings in tests

* Doc: Fix 'page width' to 'page_width'

* Refactor: use interpolation style

* Refactor: Remove inline on Keybindings::new

* Refactor: Extract Keybindings Default implementation

* Refactor: Destructure Config and Args in opts

* Support bare relative links (#103)

* Attempt to reregister file watcher on file "removal" (#106)

* Add a test for all CLI options (#116)

* Add repology badge for package manager installation (#109)

* Make correct location of `inlyne.toml` file clearer (#122)

* Make correct location of `inlyne.toml` file clearer

* Fix missing backtick

* Interpreter testing (#132)

* Interpreter test tweaks (#138)

* Cleanup existing custom debug impls

* Add custom debug impls for `Element::Image(_)`

* Add a snapshot test for complex image elements

* More robust file watching (#147)

* The watcher should attempt to re-register on name changes

* Re-register watcher after longer delays

* Add a reminder for fixing watching after file changes

* Move file watcher into its own file

* Make file watcher testable

* Watcher follows file changes

* Test the file watcher

* Final test tweaks

* Swap back to the old delays

* Final final test tweaks

* Use a slightly longer delay

* Shorter poll interval for file watcher

* Follow through with rename

* Make file reloading less panic happy (#145)

* Rework panic happy file reloading

* Tweak logs

* The watcher should attempt to re-register on name changes

* Re-register watcher after longer delays

* Improve syntax highlighting (#150)

* Add failing test

* Use extended syntax definitions

* Add failing test

* Allow for comma as an info string delimiter

* Retry watcher test with increased delays (#155)

* Fix-up nested lists (#154)

* Add failing tests

* Handle nesting of lists

* Cleanup list prefix handling

* Dogfood new `smart-debug` crate (#156)

* Dont ignore locked mutex in debug impl (#166)

* fix: add missing `fontdb` feature flag (#169)

This solves an issue with the NixOS build where fonts are required at
runtime for inlyne to start. With the `fontconfig` feature flag inlyne
will use font-config to determine a font.

Partially resolves #164

* Add relevant keywords to `Cargo.toml` (#171)

* Use `human-panic` for a custom panic hook (#172)

* Use `human-panic` for a custom panic hook

* Indicate that the version is a "git release"

* `cargo upgragde`

* Update `two-face`

* `cargo update`

* Update simple dependencies

* Update `smart-debug`

* Update `resvg` & co.

* Update `rust-version` to v1.70.0

* Bump version to v0.3.2

---------

Co-authored-by: Gijs Burghoorn <g.burghoorn@gmail.com>
Co-authored-by: Nico Burns <nico@nicoburns.com>
Co-authored-by: AlphaKeks <85143381+AlphaKeks@users.noreply.github.com>
@CosmicHorrorDev CosmicHorrorDev deleted the robust-file-watching branch April 6, 2024 04:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant