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

Basic design #1

Open
ikeycode opened this issue Sep 11, 2023 · 6 comments
Open

Basic design #1

ikeycode opened this issue Sep 11, 2023 · 6 comments

Comments

@ikeycode
Copy link
Member

ikeycode commented Sep 11, 2023

Jotting down prior to a meeting..

Aim for Solus support first, with reusable core library for moss

  • bincode for the state DB
  • clap for CLI handling
  • ion-rs for trigger compilation into shared trigger state (cascade stateless)
  • ion-schema for CLI tool to validate triggers at package build time
  • thiserror because we're not insane.

Use a digraph and likely rayon to get best runtimes from usysconf. Less time doing repeat work.

Experimenting initially with ion for our trigger definition due to strong typing guarantees

@EbonJaeger
Copy link

Out of curiosity, what would be different in a Solus vs Serpent implementation? Is there anything keeping it from being completely agnostic between the two, so both can benefit from it immediately?

@ikeycode
Copy link
Member Author

I'd like to share as much as possible. Main difference I think is that the Solus implementation needs the wrapper binary and has no path knowledge, as pisi can't pass that stuff along in terms of "what changed" in a trivial fashion.

moss would directly link usysconf crate and notify of the changes, ie not needing the mtime approach

@EbonJaeger
Copy link

EbonJaeger commented Sep 11, 2023

Ah, okay. Yeah, that would be really nice for moss. Basically, the binary would take the place of moss in that environment, sorta kinda.

@ikeycode
Copy link
Member Author

Right, think of /usr/sbin/usysconf as a moss-adapter. Internally they'll both do the same thing and have 100% compatibility - pushing both projects forward. ^_^

@EbonJaeger
Copy link

Awesome! That makes perfect sense.

@livingsilver94
Copy link
Contributor

  • ion-rs for trigger compilation into shared trigger state (cascade stateless)
  • ion-schema for CLI tool to validate triggers at package build time

We almost unanimously chose to use YAML + schema validation instead of Ion.

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

3 participants