Re: GSoC Status Update

2011-08-24 Thread Karl Williamson

On 08/23/2011 11:03 PM, Marc Green wrote:

Hello everyone,

This is my last status update, as GSoC ended today (Monday, at the time
of writing). [I am not able to send this out now because I do not have
access to my email (well, to the Internet). I am going to send it out
tomorrow or the day after.]

I believe my project has been successful, and I am positive my mentors
would agree. That being said, I am *still* not done with neither
Pod::Html nor Pod::Checker. Well, I am done with all the coding --
they're both in their final stages in that regard, but they are yet to
be merged into core and tested (and complained about). I plan to see
them through though, and I plan on being the maintainer for both of them
if possible.

I was able to wrap up everything with Pod::Checker this week, so all I
need to do is to clean up its commit history (which will get done within
the next few days). Actually, that is a lie, I was not able to get
everything wrapped up. There is one thing in particular that I did not
get done: splitting Pod::Checker into Pod::Checker and
Pod::Checker::Internals, the latter being-a Pod::Simple and the former
having-a Pod::Checker::Internals. This split was conjured up in order to
remove Pod::Simple from Pod::Checker's interface. However, as I just
said, I was not able to do this. Instead, I added a warning in
Pod::Checker's documentation explaining that no user should EVER use any
aspect of Pod::Checker's interface that has to do with Pod::Simple
unless it is documented. Perhaps this is a task that can be tackled by
me or someone else in the future.

Oh, actually, my lie in the previous paragraph was a lie for another
reason too. My mentor, rjbs, offered to do some grunt work on
Pod::Checker for me so I could focus on the bigger stuff. These tasks
include removing the 5.14isms I used throughout and making Pod::Checker
its own dist (apart from Pod::Parser). These are not done yet, but him
and I are going to remain in contact so that the new Pod::Checker can
see the light of day.

Pod::Html shall also see the light of day. My second mentor, theory,
released a new version of Pod::Simple which contains some new code I
added to allow me to finish Pod::Html a while back. [At the time of
writing this it might not be released, but he assured me it would be in
the next few days, so I will take his word.] Now that it is released, I
can rebase its commit history to remove some hacks that let me use the
aforementioned new code. Pod::Html will then be merged into core and
hopefully be a success.

I feel this has been a wonderful experience for me; my foot is in the
Perl community door now, and I have gotten a taste of what it is like to
contribute to an open source project. It has also been a great
experience for the Perl community (I can imagine), as who doesn't like
seemingly free, beneficial code. (Seemingly beneficial, perhaps.)

Thank you everyone who helped me this summer, in particular rjbs,
theory, and rafl. I appreciate it!

Marc


Marc++


Re: GSoC Status Update

2011-07-27 Thread Marc Green
  I am happy to announce that I have made much progress on porting
  Pod::Checker this week. I have made a list of all the errors that
  Pod::Simple already checks for, and by comparing that to what
 Pod::Checker
  additionally checks for, I can efficiently implement the rest. So that is
  what I have been doing. There is a minor snag in one of the error checks,
  the one that warns if there is any text after a =pod directive, because
  Pod::Simple does not offer any way to access said text. To overcome this
 I
  am adding such a feature to Pod::Simple::Blackbox, so I should resume
  porting the error checks shortly.

 When I looked at this before I found there tended to be significant
 disagreement over whether the Pod::Checker checks were actually good
 checks that ought to be included in Pod::Simple.

 I know this is opening a huge can of worms but I'd be interested if you
 could post the list of checks you're adding to Pod::Simple.

 Michael


I am not adding checks to Pod::Simple, I was advised that would be a bad
idea (and harder to do). Rather, I am rewriting Pod::Checker to have
Pod::Simple as a superclass instead of Pod::Parser, and in doing so I need
to rewrite the checks *within Pod::Checker* using Pod::Simple.

Rereading my email I realize my ambiguity, but I hope I have now cleared up
any confusion. If not, let me know.

Also, if you still want to see what error checks I am rewriting, they are
available at
https://github.com/marcgreen/perl-pod-checker/tree/edit-bb/cpan/Pod-Parser.
There are three files: ps-errors, pc-errors, and pc-errors-todo. The first
is a list of what Pod::Simple checks for, the second is what Pod::Checker
checks for, and the third is a list of the checks I have left to rewrite.

Thanks for your concern,
Marc


Re: GSoC Status Update

2011-07-27 Thread Karl Williamson

On 07/27/2011 07:58 AM, Marc Green wrote:


  I am happy to announce that I have made much progress on porting
  Pod::Checker this week. I have made a list of all the errors that
  Pod::Simple already checks for, and by comparing that to what
Pod::Checker
  additionally checks for, I can efficiently implement the rest. So
that is
  what I have been doing. There is a minor snag in one of the error
checks,
  the one that warns if there is any text after a =pod directive,
because
  Pod::Simple does not offer any way to access said text. To
overcome this I
  am adding such a feature to Pod::Simple::Blackbox, so I should resume
  porting the error checks shortly.

When I looked at this before I found there tended to be significant
disagreement over whether the Pod::Checker checks were actually good
checks that ought to be included in Pod::Simple.

I know this is opening a huge can of worms but I'd be interested if you
could post the list of checks you're adding to Pod::Simple.

Michael


I am not adding checks to Pod::Simple, I was advised that would be a bad
idea (and harder to do). Rather, I am rewriting Pod::Checker to have
Pod::Simple as a superclass instead of Pod::Parser, and in doing so I
need to rewrite the checks *within Pod::Checker* using Pod::Simple.

Rereading my email I realize my ambiguity, but I hope I have now cleared
up any confusion. If not, let me know.

Also, if you still want to see what error checks I am rewriting, they
are available at
https://github.com/marcgreen/perl-pod-checker/tree/edit-bb/cpan/Pod-Parser.
There are three files: ps-errors, pc-errors, and pc-errors-todo. The
first is a list of what Pod::Simple checks for, the second is what
Pod::Checker checks for, and the third is a list of the checks I have
left to rewrite.

Thanks for your concern,
Marc


Here are a couple of pod checker errors that are in error, AFAICT

One is that it warns on any E above 255 as being out of range.  I 
think this is plain wrong, as people do this and it works.  Perhaps 
there are some circumstances when it is wrong, I don't know.


The other is that it warns that use of a link to a man page with a 
section number is deprecated.  We have discussed that on this list 
before, and as I remember it, the consensus was it should not be deprecated.


Re: GSoC Status Update

2011-05-28 Thread Nadim Khemir
Good job (anyway) keep the reports coming too, it is good to see that
things go forward.

Nadim.

+++ Marc Green [Fri, May 27, 2011 at 05:52:15PM -0400]:
 Hello all,
 
 I am sending my status report early because I will not be able to send it at
 the beginning of next week.
 
 Although one could not tell from the most recent
 commitshttps://github.com/marcgreenI have pushed this past week, I
 have gotten a lot done. This is because I
 have found out what I have been doing is a colossal waste of time.
 
 More specifically, at the beginning of this week I was in the mindset that I
 needed to subclass Pod::Simple::Xhtml to modify it in order to resolve L
 directives to local links (as opposed to online links, as it does by
 default). So I went on my merry way, creating the module, tossing ideas back
 and forth about how to best achieve the desired result, until about 2 hours
 ago. I realized that it will be a pain pursuing my original plan (which was
 to use Pod::Simple::Search within my subclass of ::Xhtml in order to resolve
 the links). Consequently, I realized I need not subclass Xhtml to resolve
 links locally, the module itself provides methods to alter the URL of all
 links. It's embarrassing that I never thought to use said methods before,
 but oh well, the damage is done.
 
 Not only that, but I took on way too much when I was subclassing ::Xhtml.
 For some reason I thought it would be a great idea to scrap everything in
 Pod::Html and rewrite it using my subclass. I came to my senses today and
 realized I only need to have a drop in replacement for Pod::Html's pod
 parser and xhtml formatter. What a relief!
 
 But this week wasn't really a waste of time. Besides the obvious reason of
 finding a good way not to resolve links locally, I learned about the
 internals of Pod::Html much more (though not enough, yet). I cleaned out all
 of Pod::Html's old code, and started setting up to use ::Xhtml and ::Search.
 I also removed the --header feature of Pod::Html that was needlessly
 distracting me. I plan on adding it, in addition to other features I have
 removed, back, once I get the bare bones of the conversion to ::Xhtml done.
 
 I won't have a lot of time next week to work on this, (vacation :D), but
 when I get back I plan on, in no particular order:
 
 - using Pod::Simple::Search to resolve L directives
 - investigating how Pod::Html resolves other links (RFC links, perl.* links
 in verbatim text, etc)
 - write several test cases for Pod::Html, both to understand how it works
 and to have for when I convert it
 
 Thank you,
 Marc