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

Net::IMAP Client docs #74

Merged
merged 17 commits into from
Dec 22, 2022
Merged

Net::IMAP Client docs #74

merged 17 commits into from
Dec 22, 2022

Conversation

nevans
Copy link
Collaborator

@nevans nevans commented Nov 21, 2022

This is a draft of my rdoc changes to the Net::IMAP class. It cherry-picks from several other PRs:

I also made several PRs to ruby/rdoc for the 6.5.0 release, and I think they make a big difference to how this renders!

The output of rake rdoc can be viewed here: https://nevans.github.io/net-imap/Net/IMAP.html


Some of my documentation changes were removed from this branch, because they will be obsoleted soon (I hope!).

@nevans
Copy link
Collaborator Author

nevans commented Nov 22, 2022

@shugo: the reference to nevans/rdoc has been removed from this PR.

Copy link
Member

@shugo shugo left a comment

Choose a reason for hiding this comment

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

It looks fine!

@nevans nevans force-pushed the client-docs branch 2 times, most recently from 70d9af7 to d5d4271 Compare November 23, 2022 15:35
* Escape some text that shouldn't be linked, e.g. IMAP.
* Link some text that should be linked:
  * removing "+" to let classes link
* Remove `Net::IMAP::` prefix from response data class names.  The
  redundant prefix breaks up the reading flow of the text.  Examples
  will still use fully-qualified names, and readers should generally be
  able to see that the classes/modules are in Net::IMAP, from context.
* Add headings and convert text to headings.
* Reduce headings inside method docs to h5 (call-seq renders like h4).
* Add <tt> or "+" to code or verbatim text.
* To match the tweaks to rdoc's darkfish template, convert definition
  lists to "note" vs "label" style lists for table vs lists.
* Add ">>>" with <em> to highlight important "aside" notices.
* Add :nodoc: to ResponseErrors.
* Document capabilities at the class-level, linking to #capability for
  details.
* Add "Basic IMAP4rev1 capabilities" and "Using IMAP4rev1 extensions"
  sections to the #capability rdoc.
* Add relevant capabilities to the rdoc for every command extension.
* Update existing capability docs to the same consistent format.
* Add TODO comment for unsupported LIST-EXTENDED
Every IMAP command method now links to the RFC section that defines it.
There are a lot of IMAP commands!  This makes it easier to navigate
between them.  Hopefully this makes it easier to learn the IMAP4rev1
protocol and its extensions, as well.
* Link to UIDPlusData for commands that can return it:
  `#append`, `#copy`, and `#move`

* Update `#uid_expunge` to avoid "UID set", which has slightly different
  semantics from "sequence set of UIDs".
* Add paragraph to class-level docs, about expunge messages.
* Add explanation to #noop docs, explaining EXPUNGE responses
* Update #uid_expunge docs with method link instead of command name.
@nevans nevans force-pushed the client-docs branch 4 times, most recently from e2fddbc to 07b1e8b Compare December 20, 2022 19:57
@nevans nevans marked this pull request as ready for review December 20, 2022 19:59
The documentation on these methods is meant to complement a new
SASL::Authenticator base class and new documentation on each of the
individual authenticator classes.  See #78 and #82.

That base class is added in another PR (#78), but the documentation for
these methods can be updated without it.

Also, somehow I misremembered `LOGINDISABLED`: it only applies to
`LOGIN`, not `AUTHENTICATE`!  This fixes that error.
Add a note about the implicit UID message data item.
Makes it just a little bit simpler.
This "What's here?" section is based on the new documentation style for
many core ruby classes.  It isn't purely a list of methods; paragraphs
of explanatory text are interspersed.

*Many* "TODO" comments are added too, hidden from rdoc by `--` and `++`.
Without resetting to the default section, code that's loaded later may
be documented in the wrong place
@nevans
Copy link
Collaborator Author

nevans commented Dec 21, 2022

@shugo I've updated this since the last time you looked at it... sorry if the rebasing makes it hard to see the differences! I tried to make each individual commit reviewable on its own. Let me know if you have any concerns with merging it.

@nevans nevans requested a review from BurdetteLamar December 22, 2022 00:40
@nevans
Copy link
Collaborator Author

nevans commented Dec 22, 2022

@BurdetteLamar Since you've been doing so much documentation for core and stdlib, I'm curious if you have any thoughts on this (the latest version is rendered here: https://nevans.github.io/net-imap). This is a big PR, so I understand if you don't have time for it any time soon!

Copy link
Member

@shugo shugo left a comment

Choose a reason for hiding this comment

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

It looks fine 👍

@nevans nevans merged commit 4d4866e into master Dec 22, 2022
@nevans nevans deleted the client-docs branch December 22, 2022 15:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Development

Successfully merging this pull request may close these issues.

2 participants