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

Documentation improvements (Diátaxis) (FR-2276) #287

Merged
merged 24 commits into from Jul 14, 2022
Merged

Documentation improvements (Diátaxis) (FR-2276) #287

merged 24 commits into from Jul 14, 2022

Conversation

slyon
Copy link
Collaborator

@slyon slyon commented Jul 7, 2022

Description

Re-structuring of Netplan's documentation, according to Diátaxis
The primary documentation (YAML config reference) has been refactored, making use of standard Markdown syntax (instead of pandoc specialities), to be able to render to other frontends like Sphinx or Discourse.

This can now be rendered to several frontends (keeping compatibility with old manpages/pandoc):

Checklist

  • Runs make check successfully.
  • Retains 100% code coverage (make check-coverage).
  • New/changed keys in YAML format are documented.
  • (Optional) Adds example YAML for new feature.
  • (Optional) Closes an open bug in Launchpad.

@slyon slyon force-pushed the slyon/diataxis branch 2 times, most recently from 76b52f3 to 7633a6b Compare July 12, 2022 10:55
@slyon slyon marked this pull request as ready for review July 12, 2022 12:15
@slyon slyon changed the title Documentation improvements (Diátaxis) Documentation improvements (Diátaxis) (FR-2276) Jul 12, 2022
@slyon slyon requested a review from sil2100 July 12, 2022 12:24
Copy link
Collaborator

@sil2100 sil2100 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I think this looks good. I am not completely sure about if this fully follows Diataxis ideology, but at least it feels structured properly. We might want to ask Daniele for a sign off - but that could be done after this PR is done (no need to block on that).

I like this direction in overall, because this means we'll have all of the documentation bits in one repository (not having to worry about the netplan.io one having contents we have no control over). I see you moved things like the examples section into the netplan docs here.

A bit that's a bit confusing to me is the meson doc situation. I mean, I understand the situation: when we build netplan with meson we care about manpages, and the meson.build in doc creates manpages with pandoc. But it gets a bit confusing, because you just have to use the Makefile there to get any other output. It's okay, but it feels a bit disconnected. That being said, not a real problem.

@slyon
Copy link
Collaborator Author

slyon commented Jul 14, 2022

Ok, I think this looks good. I am not completely sure about if this fully follows Diataxis ideology, but at least it feels structured properly. We might want to ask Daniele for a sign off - but that could be done after this PR is done (no need to block on that).

Thanks for your review! I'm not a Diataxis expert by any means myself, but I tried to move the existing documentation roughly into the Diataxis categories. IMO, fine-tuning those can be an iterative process after we land the initial structure (i.e. this PR).

I like this direction in overall, because this means we'll have all of the documentation bits in one repository (not having to worry about the netplan.io one having contents we have no control over). I see you moved things like the examples section into the netplan docs here.

Yes, I copied over the examples page from https://netplan.io/examples as there has been some confusion about https://netplan.io/examples vs https://github.com/canonical/netplan/tree/main/examples in the past, which we can cover better if we track the examples page as part of the documentation (and maybe converge the two locations in the future).

OTOH, I've also added some hyperlinks to external documents under Tutorials, API specification and Explanation (e.g. https://netplan.io/design & https://netplan.io/faq) as I did not want to hijack all of the netplan.io website and drag it into the Documentation, although that might make sense. I guess that's something to be discussed with Daniele.

A bit that's a bit confusing to me is the meson doc situation. I mean, I understand the situation: when we build netplan with meson we care about manpages, and the meson.build in doc creates manpages with pandoc. But it gets a bit confusing, because you just have to use the Makefile there to get any other output. It's okay, but it feels a bit disconnected. That being said, not a real problem.

Indeed, the doc/Makefile is completely detached from the overall official build process of ./Makefile (old) or meson.build (new). That is because it is only to be used to set up a local development environment (i.e. Sphinx environment) to actively work on the docs, but does not produce any artifacts which would be shipped or deployed (at least for now). We might be able to consolidate this, by either getting rid of it, or integrating it with the official meson build process (using proper Sphinx distro dependencies, instead of a Python venv), once we agreed upon which tool to use for that.

I've added a comment about this at the top of doc/Makefile to clarify this situation a bit (via 93446c1), but would merge it as-is for now.

@slyon slyon merged commit 5c89b24 into main Jul 14, 2022
@slyon slyon deleted the slyon/diataxis branch July 14, 2022 10:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants