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

Publish rune documentation online #48

Closed
Qkessler opened this issue Dec 9, 2023 · 4 comments
Closed

Publish rune documentation online #48

Qkessler opened this issue Dec 9, 2023 · 4 comments

Comments

@Qkessler
Copy link
Contributor

Qkessler commented Dec 9, 2023

What should be done?

Publish a github.io page with the Cargo doc documentation from Rune or alternatively find a way to publish the docs without the crate being published to crates.io. It's not currently published and there are naming conflicts if we were to publish it as is (don't think this is something we should look into now)

Why this task should be completed?

​I have seen other crates / languages do that as well (see more details section), which makes the documentation easily consumable, not only directly in the code. That simplifies checking the documentation, as one would not need to do: cargo doc --workspace --no-deps to get all the crates documented.

Acceptance Criteria

  • You have searched through alternatives to publish the cargo doc documentation online.
  • If the suggested solution is the right one, publish a github.io page with the cargo doc --workspace --no-deps behaviour.
  • The github page should be built with CI, so whenever a new commit happens, we don't need to manually publish the index.html pages. Create a job for it, to run on pushes to master, no need to run it on PRs.

Where can I find more details?

Who are the POCs/stakeholders?

@CeleritasCelery
Copy link
Owner

I think this could be really valuable. I will need to look into how to set that up. Relatedly, I am not super attached to the name “rune”. If there is some name that works better we could call it that. Ideally something that makes it clear it is an Emacsen (similar to how neovim makes its roots in vim clear).

@Qkessler
Copy link
Contributor Author

Qkessler commented Dec 9, 2023

Yeah, let's think on names, although I'm kinda getting attached to rune. I feel like the whole acronym for Emacs packages and emacs-related projects is something really into the Emacs Culture. I feel like "Rust Under Emacs" really sums up the project.

I think I know how to set it up. I see this issue as low hanging fruit that I was hoping other contributors (maybe someone starting with the project) can pick up and deliver. Probably we can do a call for contributors, what do you think?

@CeleritasCelery
Copy link
Owner

Before we call for contributors I would like to have at least the following things done:

  1. Core refactor done
  2. Documentation published
  3. Through documentation of core structures
  4. Ability to test built in functions against GNU Emacs

my expectation is that the easiest thing for new contributors will be to implement a new defun. Ideally we could create a list of all the ones that are yet to be done. But in order to do that we need to make it clear how to actual code it up. Many of the 1500 Emacs built in function are standalone and easy to write. Some will require more work though.

another easy thing is to look at the “Todo”s in the code and fix those. We could even turn them into issues.

Qkessler added a commit to Qkessler/rune that referenced this issue Dec 16, 2023
I tried different things and ended up choosing netlify. Netlify has a
very powerful build system and it's running on Ubuntu, but it did not
allow for apt-get installs. Since we need pango and gdk to run `cargo
doc` on the crate, moved to Github actions.

As part of the same PR, I fixed all the warnings on cargo doc, making
sure that the documentation is correctly published. The trick to deploy
cargo doc is to deploy `target/doc` and then pair that with a redirect
of the main page (configured rune-rs.netlify.app on my own account) to
`/rune` which (as the main crate) has the info about the subcrates as well.

Closes CeleritasCelery#48
Qkessler added a commit to Qkessler/rune that referenced this issue Dec 16, 2023
I tried different things and ended up choosing netlify. Netlify has a
very powerful build system and it's running on Ubuntu, but it did not
allow for apt-get installs. Since we need pango and gdk to run `cargo
doc` on the crate, moved to Github actions.

As part of the same PR, I fixed all the warnings on cargo doc, making
sure that the documentation is correctly published. The trick to deploy
cargo doc is to deploy `target/doc` and then pair that with a redirect
of the main page (configured rune-rs.netlify.app on my own account) to
`/rune` which (as the main crate) has the info about the subcrates as well.

Closes CeleritasCelery#48
@Qkessler
Copy link
Contributor Author

Qkessler commented Dec 16, 2023

Took the issue myself, as I was able to set it up and worked with Netlify in the past. You can see how it works on https://qkessler-rune-rs.netlify.app. I'll publish a PR!

After that, we need to work on actually making the documentation better! There are lots of stuff documented currently, but if you see the page, getting to them is pretty rough (some private modules, all the generated __subr functions and more).

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

2 participants