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

Document new Ravedude.toml manifest #579

Open
Rahix opened this issue Sep 14, 2024 · 3 comments
Open

Document new Ravedude.toml manifest #579

Rahix opened this issue Sep 14, 2024 · 3 comments
Labels

Comments

@Rahix
Copy link
Owner

Rahix commented Sep 14, 2024

PR #522 introduced a Ravedude.toml manifest for configuring ravedude. This needs to be documented for users. We need to decide on where this documentation should be placed.

I personally am in favor of just putting it into the crate documentation of ravedude so it shows up on docs.rs.

Alternatives that were proposed (could also be done additionally to the above):

Cc: @Creative0708, @tippfehlr

@tippfehlr
Copy link
Contributor

tippfehlr commented Sep 14, 2024

I’m also in favor of docs.rs. mdbook would work as well, but seems a bit overkill for ravedude alone and is probably more work to set up.
I personally think man pages would also be helpful, both for the cli and the config file.

We could use clap_mangen for the cli manpage (and clap-complete for shell completions ✨), we would only need to migrate to clap. Is there a reason not to?

I think there’s no way other than writing the ravedude.toml.5 manpage by hand, but I could do that from the other documentation. I think scdoc would be suitable (with quite readable source files).

Another point: is ravedude really related to avr-hal or would it be better to move it to it’s own repo?

edit: I’ve also just created an AUR package for ravedude at https://aur.archlinux.org/packages/ravedude

@Rahix
Copy link
Owner Author

Rahix commented Oct 21, 2024

Let's go with crate documentation then!

I personally think man pages would also be helpful, both for the cli and the config file.

I'm a fan of manpages as well, but deployment is difficult for tools installed via cargo. The only solution I know of would be for ravedude to carry its manpages in its belly and provide them via a ravedude --man xyz CLI flag... Not great, imo.

For distro packages like the one you crated, manpage deployment isn't an issue, of course.

The thought of a ravedude(3) and a Ravedude.toml(5) does sounds sweet though :D

we would only need to migrate to clap. Is there a reason not to?

My main reason for avoiding clap was the bloat. We don't really need advanced commandline parsing and we need it even less now that most commandline options have moved into the config file. So I'd rather keep ravedude with as few dependencies are really necessary...

Another point: is ravedude really related to avr-hal or would it be better to move it to it’s own repo?

I have conflicted feelings on this as I'm usually of the opinion that related software should rather live in one large repo than many small ones. But I do know that the rust community at large is mostly following a different approach. Not sure, I guess I'd be open to create an umbrella organization to house all the rust + avr related repos I'm currently maintaining. And then also splitting out ravedude into its own repo.

@tippfehlr
Copy link
Contributor

provide them via a ravedude --man xyz CLI flag... Not great, imo.

No, please don’t :D
I think I’ll write a manpage (for the config file) nonetheless and only include it in my package for now. Maybe there’ll be more packages at some point.

My main reason for avoiding clap was the bloat

Ok wow, 269 vs. 14k loc is a big difference. Still, autocompletion ^^

I have conflicted feelings on this as I'm usually of the opinion that related software should rather live in one large repo than many small ones.

I think the avr crates are fine here. Ravedude is a whole different piece of software with no dependencies(?) in this repo and seperate releases, that’s what I meant. At the moment, the AUR package needs to download the whole repo (it could use the source from crates.io though).

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

No branches or pull requests

2 participants