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

Improve and harden alt file regeneration #466

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from

Conversation

rasa
Copy link
Contributor

@rasa rasa commented Oct 11, 2023

What does this PR do?

Improvements include:

  1. Skip writing a temporary file if the file contents are unchanged
  2. Better error reporting if templating program fails
  3. Better error reporting/handling if file creation, mv, or chmod fail
  4. Quiet logs by not outputting "Creating output..." line twice (debug & loud)

What issues does this PR fix or reference?

In both Linux and WSL, I saw many temporary files created in the form .template.nnnn.nnnnn appear in my yadm managed directory. It was pretty common, sometimes happening several times in one day.

Previous Behavior

See above.

New Behavior

The new code skips regenerating the alt file if its contents have not changed. While this means we now read the old alt file before rewriting it, the vast majority of the time the contents are unchanged, so this extra read is offset by the skipped write and move.

While there is a small amount of time between reading the alt file, and rewriting it, the chance of a race condition inside this window is small, as yadm should be the only program running against these files.

Have tests been written for this change?

No. The existing tests should be sufficient as we aren't adding new functions or new logic.

Have these commits been signed with GnuPG?

Yes!


Please review yadm's Contributing Guide for best practices.

@rasa rasa force-pushed the rasa/improve-template-logic branch from 87d319f to 6a39fc9 Compare October 11, 2023 21:41
Improvements include:

1. Skip writing a temporary file if the file contents are unchanged
2. Better error reporting if templating program fails
3. Better error reporting/handling if file creation, mv, or chmod fail
4. Quiet logs by not outputing "Creating output..." line twice (debug & loud)
@rasa rasa force-pushed the rasa/improve-template-logic branch from 6a39fc9 to 95d7bae Compare October 11, 2023 21:59
@TheLocehiliosan TheLocehiliosan self-assigned this Oct 20, 2023
@TheLocehiliosan TheLocehiliosan added this to In progress in Next Release via automation Nov 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Next Release
In progress
Development

Successfully merging this pull request may close these issues.

None yet

2 participants