Ruby 1.9.3 documentation challenge

With the freeze of Ruby 1.9.3 coming up near the end of the month I looked at how much documentation coverage ruby has for it's standard library:

Files: 511

Classes: 1036 ( 624 undocumented)
Modules: 228 ( 136 undocumented)
Constants: 1335 (1134 undocumented)
Attributes: 738 ( 381 undocumented)
Methods: 8098 (2960 undocumented)

Total: 11435 (5235 undocumented)
54.22% documented

Can we make it to 60% coverage? That's only another 1626 items to document!

I've written a blog post with further information including a link to an hourly-updatidng coverage report and a tutorial by Steve Klabnik on how to write documentation and get it committed, the short link is here:

http://bit.ly/ruby-1-9-3-docs-challenge

Let's make Ruby 1.9.3 the best-documented release ever!

If you've never contributed to Ruby before, I wrote up this blog post,
explaining just how easy it is for you to add the documentation that Eric's
asking for.

http://blog.steveklabnik.com/contributing-to-rubys-documentation

this is certainly a worthwhile effort - thanks for organizing it...
happy to help out in any way i can.

  - j

···

--
Posted via http://www.ruby-forum.com/.

X-Cloudmark-Analysis: v=1.1 cv=vUpxTctd+kpWCBtSXXIkt5ll4Z8E5Qu9nLREXC/hfIo= c=1 sm=0 a=CPlwVjms4CEA:10 a=rDlpkb2S-8kA:10 a=IkcTkHD0fZMA:10 a=mTVtM7KMAAAA:8 a=CH-RE0sgAAAA:8 a=fe4Du_4jg87Tw7NL8d8A:9 a=z9gbKKUCDM2zmKH0F90A:7 a=QEXdDO2ut3YA:10 a=WIphuvhjV2sA:10 a=HpAAvcLHHh0Zw7uRqdWCyQ==:117
Precedence: bulk
Original-Lines: 50
List-Id: ruby-talk.ruby-lang.org
List-Software: fml [fml 4.0.3 release (20011202/4.0.3)]
List-Post: <mailto:ruby-talk@ruby-lang.org>
List-Owner: <mailto:ruby-talk-admin@ruby-lang.org>
List-Help: <mailto:ruby-talk-ctl@ruby-lang.org?body=help>
List-Unsubscribe: <mailto:ruby-talk-ctl@ruby-lang.org?body=unsubscribe>
Xref: news.gmane.org gmane.comp.lang.ruby.general:341569
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.ruby.general/341569>

Hi,

based in your coverage @
http://segment7.net/projects/ruby/documentation_coverage.txt I took a
few looks, e.g. it says:

# in files:
# ext/socket/raddrinfo.c
# ext/socket/lib/socket.rb

class Addrinfo
end

I took a look at ext/socket/raddrinfo.c and found addrinfo_initialize()
with lots of documentation above it which I also see reflected at
http://www.ruby-doc.org/core-1.9/classes/Addrinfo.html#M001733 .

Next sample was

class CSV # is documented

  # in file lib/csv.rb
  def raw_encoding(default = Encoding::ASCII_8BIT); end

end

taking a closer look, it's method marked private.

I've a few questions now:

- for Addrinfo, is there really still something missing or does this
come from the additional ruby code in ext/socket/lib/socket.rb and the
coverage report just can't connect both of these together?

- Is there an encouragement to document private methods? If not it would
be nice if they could be omitted from the coverage. Otherwise just so we
know what the goal is.

- While I was looking at addrinfo_initialize() in ext/socket/raddrinfo.c
and then looked at
http://www.ruby-doc.org/core-1.9/classes/Addrinfo.html#M001733 , I
noticed that at the HTML page there is a typo, it says "The instnace
contains..." but the docs in the code are right. Looking with git blame
at the code docs it said last change was in 2009-11-04 12:02:37 . That's
now more than two years and I'm wondering if looking at
http://www.ruby-doc.org/core-1.9/ will give generally a wrong impression
because the docs aren't up to date? Is there some automatic generation?

thanks for clearing things up,
- Markus

Thanks! I never really contributed to Ruby, but if it's that easy I'll
probably do so.

···

On 5/11/11 5:15 AM, Steve Klabnik wrote:

If you've never contributed to Ruby before, I wrote up this blog post,
explaining just how easy it is for you to add the documentation that Eric's
asking for.

http://blog.steveklabnik.com/contributing-to-rubys-documentation

Cool!

···

On Wed, May 11, 2011 at 11:15 AM, Steve Klabnik <steve@steveklabnik.com> wrote:

If you've never contributed to Ruby before, I wrote up this blog post,
explaining just how easy it is for you to add the documentation that Eric's
asking for.

http://blog.steveklabnik.com/contributing-to-rubys-documentation

--
Twitter: @ghosTM55
Facebook.com/ghosThomas

Mechanism, not policy

I'm not sure who makes these decisions for ruby-doc.org, but is there any chance that we could get Yardoc-formatted documentation (or at least a fresh stylesheet for standard rdoc output) this time around?

I'd be very inclined to help out with this effort if I knew the output was going to look fresh and appealing.

(Yes, I know I could host my own styled version of the docs. But I'm talking about what comes up first on Google.)

Cheers,
David

···

On Wednesday, 11 May 2011 at 7:25 am, jake kaiden wrote:

this is certainly a worthwhile effort - thanks for organizing it...
happy to help out in any way i can.

- j

--
Posted via http://www.ruby-forum.com/\.

Markus Fischer wrote:

- Is there an encouragement to document private methods? If not it would
be nice if they could be omitted from the coverage. Otherwise just so we
know what the goal is.
  
I can't speak for Eric, but I think part of documenting is marking the code which does not need documenting with :nodoc:

- While I was looking at addrinfo_initialize() in ext/socket/raddrinfo.c
and then looked at
http://www.ruby-doc.org/core-1.9/classes/Addrinfo.html#M001733 , I
noticed that at the HTML page there is a typo, it says "The instnace
contains..." but the docs in the code are right. Looking with git blame
at the code docs it said last change was in 2009-11-04 12:02:37 . That's
now more than two years and I'm wondering if looking at
http://www.ruby-doc.org/core-1.9/ will give generally a wrong impression
because the docs aren't up to date? Is there some automatic generation?

Ever since 1.9 came out, I've felt like ruby-doc.org has fallen behind. rdoc.info has been my go-to site for documentation: http://rdoc.info/stdlib/socket/1.9.2/Addrinfo:initialize

-Justin

Question answered:
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/csv.rb?r1=32141&r2=32140&pathrev=32141

···

On 15.06.2011 18:23, Markus Fischer wrote:

- Is there an encouragement to document private methods? If not it would
be nice if they could be omitted from the coverage. Otherwise just so we
know what the goal is.

based in your coverage @
http://segment7.net/projects/ruby/documentation_coverage.txt I took a
few looks, e.g. it says:

# in files:
# ext/socket/raddrinfo.c
# ext/socket/lib/socket.rb

class Addrinfo
end

I took a look at ext/socket/raddrinfo.c and found addrinfo_initialize()
with lots of documentation above it which I also see reflected at
http://www.ruby-doc.org/core-1.9/classes/Addrinfo.html#M001733 .

Next sample was

class CSV # is documented

# in file lib/csv.rb
def raw_encoding(default = Encoding::ASCII_8BIT); end

end

taking a closer look, it's method marked private.

I've a few questions now:

- for Addrinfo, is there really still something missing or does this
come from the additional ruby code in ext/socket/lib/socket.rb and the
coverage report just can't connect both of these together?

There is no class documentation for Addrinfo. Either a Document-class: Addrinfo needs to be added to the C file or a class comment needs to be added to the ruby file.

- Is there an encouragement to document private methods? If not it would
be nice if they could be omitted from the coverage. Otherwise just so we
know what the goal is.

Yes, but if the maintainer of the library decides that a private method is also an implementation detail it may be hidden by :nodoc:

Private methods can be API. For example, when you subclass you may need to call a private method for proper operation.

- While I was looking at addrinfo_initialize() in ext/socket/raddrinfo.c
and then looked at
http://www.ruby-doc.org/core-1.9/classes/Addrinfo.html#M001733 , I
noticed that at the HTML page there is a typo, it says "The instnace
contains..." but the docs in the code are right. Looking with git blame
at the code docs it said last change was in 2009-11-04 12:02:37 . That's
now more than two years and I'm wondering if looking at
http://www.ruby-doc.org/core-1.9/ will give generally a wrong impression
because the docs aren't up to date? Is there some automatic generation?

I'm not sure how ofter ruby-doc.org updates, I don't maintain it.

···

On Jun 15, 2011, at 9:23 AM, Markus Fischer wrote:

I would appreciate this more for the fact that the syntax is better.

···

On Wed, May 11, 2011 at 14:32, David Jacobs <developer@wit.io> wrote:

I'm not sure who makes these decisions for ruby-doc.org, but is there any chance that we could get Yardoc-formatted documentation (or at least a fresh stylesheet for standard rdoc output) this time around?

I'd be very inclined to help out with this effort if I knew the output was going to look fresh and appealing.

Markus Fischer wrote:

- Is there an encouragement to document private methods? If not it would
be nice if they could be omitted from the coverage. Otherwise just so we
know what the goal is.
  
I can't speak for Eric, but I think part of documenting is marking the
code which does not need documenting with :nodoc:

But rdoc, at least by default, does not document private methods. I
assume it's just a limitation of the coverage tool for now.

Ever since 1.9 came out, I've felt like ruby-doc.org has fallen behind.
rdoc.info has been my go-to site for documentation:
http://rdoc.info/stdlib/socket/1.9.2/Addrinfo:initialize

Thanks, I quickly noticed it contains stdlib but not core.

I'm still looking for a convenient way to quickly search through the
current docs. Currently I use a FF4 keyworded search which uses the
integrated search on ruby-doc.org :

The results I get back when I search for e.g. split or other methods are
often nearly perfect. That's where I also found Addrinfo.

The advantage at ruby-doc, at least for me, is that it includes core;
and I need core too.

- Markus

···

On 16.06.2011 23:55, Justin Collins wrote:

That too, but I figured if the goal here was to complete the documentation (instead of revamping it), a complete conversion to Yardoc would be a hard sell. (If that's not the case, I'll be thrilled.)

···

On Wednesday, 11 May 2011 at 8:53 am, Nikolai Weibull wrote:

On Wed, May 11, 2011 at 14:32, David Jacobs <developer@wit.io> wrote:
> I'm not sure who makes these decisions for ruby-doc.org, but is there any chance that we could get Yardoc-formatted documentation (or at least a fresh stylesheet for standard rdoc output) this time around?
>
> I'd be very inclined to help out with this effort if I knew the output was going to look fresh and appealing.

I would appreciate this more for the fact that the syntax is better.

It does, actually. It's a bit hidden under "stdlib" => "core". :slight_smile:

Regards,
Florian

···

On Jun 17, 2011, at 11:12 AM, Markus Fischer wrote:

Ever since 1.9 came out, I've felt like ruby-doc.org has fallen behind.
rdoc.info has been my go-to site for documentation:
http://rdoc.info/stdlib/socket/1.9.2/Addrinfo:initialize

Thanks, I quickly noticed it contains stdlib but not core.

When you run `make` on ruby trunk rdoc is run with --all so private methods are picked up. The coverage report does the same.

···

On Jun 17, 2011, at 2:12 AM, Markus Fischer wrote:

On 16.06.2011 23:55, Justin Collins wrote:

Markus Fischer wrote:

- Is there an encouragement to document private methods? If not it would
be nice if they could be omitted from the coverage. Otherwise just so we
know what the goal is.

I can't speak for Eric, but I think part of documenting is marking the
code which does not need documenting with :nodoc:

But rdoc, at least by default, does not document private methods. I
assume it's just a limitation of the coverage tool for now.

There is currently a discussion on Redmine about switching to YARD:
http://redmine.ruby-lang.org/issues/4211

X-Cloudmark-Analysis: v=1.1 cv=HQ3F56nxkum+cgCiDL7AXQpbvw7DWrWCBJRnYYnM0Zc= c=1 sm=0 a=CPlwVjms4CEA:10 a=rDlpkb2S-8kA:10 a=IkcTkHD0fZMA:10 a=z4coldwSh4F5qiqvATIA:9 a=QEXdDO2ut3YA:10 a=HpAAvcLHHh0Zw7uRqdWCyQ==:117
Precedence: bulk
Original-Lines: 6
List-Id: ruby-talk.ruby-lang.org
List-Software: fml [fml 4.0.3 release (20011202/4.0.3)]
List-Post: <mailto:ruby-talk@ruby-lang.org>
List-Owner: <mailto:ruby-talk-admin@ruby-lang.org>
List-Help: <mailto:ruby-talk-ctl@ruby-lang.org?body=help>
List-Unsubscribe: <mailto:ruby-talk-ctl@ruby-lang.org?body=unsubscribe>
Xref: news.gmane.org gmane.comp.lang.ruby.general:341678
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.ruby.general/341678&gt;

···

On 17.06.2011 11:30, Florian Gilcher wrote:

Thanks, I quickly noticed it contains stdlib but not core.

It does, actually. It's a bit hidden under "stdlib" => "core". :slight_smile:

Thanks :slight_smile: