cargo-docset icon indicating copy to clipboard operation
cargo-docset copied to clipboard

Provide a way to install the generated docset

Open Robzz opened this issue 6 years ago • 8 comments

It's a bit of a pain to install docsets manually. Some quick thoughts on automating this:

  • Simply copy/pasting the docset directory works, but Zeal needs to be restarted to pick up the new docset. Doing that and killing/restarting Zeal if it's open is a possibility... The heim crate sounds like the good place to check but it may lack the needed functionality. We'll see.
  • Needs to figure out the docset directory. For Zeal, it seems to be stored in an ini like file called Zeal.conf. The dirs crate can probably be used to locate the config file and/or docset directory. Or we use that method as a fallback, and build on #5 and specify it either in the toml file, or in a global toml file (~/.config/cargo-docset.toml or something ?)

Robzz avatar Aug 29 '19 07:08 Robzz

Also, if anyone passing by happens to run dash and can share any insight: does dash need to be restarted to pick up the new docset after replacing it? I would think so, but I don't own a mac to try it.

Robzz avatar Sep 05 '19 20:09 Robzz

The documentation for dash doesn't mention that a restart is needed, I will try this on my mac later.

LovingMelody avatar Oct 15 '19 17:10 LovingMelody

Thank you!

I just realized the issue description does not fully describe my concern. So, to be clear, the part I'm worried about is whether dash detects the new SQLite database after copying a new version of an existing docset, or if it's just loaded at startup and kept in memory. In other words, if you copy an updated docset containing new entries (as opposed to just updating the contents of previously existing pages), are these new entries detected when searching from within dash without restarting it.

Robzz avatar Oct 15 '19 18:10 Robzz

Sorry it took so long, just got the chance to do this. Tested it with one crate, edited the documentation of the main package, and reloading was only required when I navigated away and back to that section.

LovingMelody avatar Oct 15 '19 22:10 LovingMelody

Sorry it took so long

No problem, that was actually pretty darn quick :smile: In any case, I won't be working on this right away, hopefully next week, so there really is no rush.

Thank you for the testing! So if I understand correctly, Dash does behave the same as Zeal here, and needs a restart before it can use the updated SQLite database, correct ? If so, then we can treat Dash and Zeal pretty much the same in cargo-docset. And if that's the case, then, excellent, the less platform/doc browser specific code, the better.

Robzz avatar Oct 16 '19 17:10 Robzz

Sorry it took so long ...

@Robzz No restart, just need to navigate away and back, sorry I didn’t word that well.

LovingMelody avatar Oct 16 '19 23:10 LovingMelody

To make things a little faster I hacked up a little shell script to automate the creation/installation of a docset on Zeal with cargo-docset, might be useful: gist link

saskenuba avatar Jan 10 '20 04:01 saskenuba

I build the docset for the project I worked on in GHA, and created a RSS feed, which contains all dependencies' docs. It can be subscribed via an url like dash-feed://https%3A%2F%2Frisingwavelabs.github.io%2Frisingwave%2FRisingWave.xml 😄

https://github.com/risingwavelabs/risingwave/blob/461c4eb131eb83fb7b916b00215288abab29c354/.github/workflows/doc.yml#L37-L47

xxchan avatar Oct 06 '23 18:10 xxchan