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

High-level ux principles #28

Open
conartist6 opened this issue Aug 5, 2021 · 1 comment
Open

High-level ux principles #28

conartist6 opened this issue Aug 5, 2021 · 1 comment

Comments

@conartist6
Copy link
Collaborator

I need to lay down the high-level UX of the tool because I'm making some architectural decisions now that should be made with the desired UX in mind.

As with any watching system, one of the most high level goals is ensuring that the system does not allow itself to become out of sync with reality. This means a several things:

  • It means using the API in a sound way, e.g. with clocks to avoid race conditions.
  • It means when there are limitations to what the watching system can do ensuring that the user knows about them and has the ability to trigger a resync.
    • One desync case may be when configuration or plugins are updated. I would like for these things not to cause desyncs, but I need to think more about how that is possible. I expect babel to be a source of much good inspiration as they have the same problem and I have copied from their plugin architecture some already.
    • We must consider what to do when the user deletes a file we generated. I feel it would be abusive to respond to such a change by simply regenerating the file. We must respect the user's intent for deleting it. I think instead we should put it in a list of files which macrome knows are out of sync, and we should offer an interactive mode for the terminal which allows users to see the list of out-of-sync files and do a resync of just those files when they are ready to.
@conartist6
Copy link
Collaborator Author

It seems like watchman does consider desyncs and tries to heal them. Excellent!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant