Bug#932584: Epydoc and Pydoctor

2019-08-07 Thread Ian Jackson
Kenneth Pronovici writes ("Re: Epydoc and Pydoctor"):
> I decided to NMU and uploaded a few days ago, so things are in good
> shape now, I think.  You can integrate my changes whenever you have
> time.  Thanks for confirming that your ok with the NMU.  I was
> hoping you would be.

Thank you for this.  However, you did an upload with binaries and it
therefore isn't migrating.  I will do a source-only upload right away.

Regards,
Ian.

-- 
Ian JacksonThese opinions are my own.

If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
a private address which bypasses my fierce spamfilter.



Bug#932584: Epydoc and Pydoctor

2019-08-04 Thread Jelmer Vernooij
Hi Kenneth, Ian,

On Wed, Jul 31, 2019 at 08:45:54PM -0500, Kenneth Pronovici wrote:
> On Wed, Jul 31, 2019 at 10:46 AM Ian Jackson
>  wrote:
> > > Otherwise, I will see if I can determine how well the package works
> > > without epydoc installed.  If it works (i.e. doesn't blow up) and I
> > > don't hear back with other instructions, I will eventually NMU my
> > > changes to remove the epydoc dependency.   Given that I haven't gotten
> > > any replies for more than 18 months now, I won't wait that long before
> > > doing this NMU.
> >
> > That sounds really good to me for now.  I think you can do this NMU
> > whenever you like.
> 
> I tested pydoctor against my own cedar-backup2 code, which I never converted
> away from Epydoc since it's Python 2-only.   It seems to work fine:
> 
> mars:~/projects/dev/software/cedar-backup2> pydoctor CedarBackup2/
> adding directory 
> /home/pronovic/projects/dev/software/cedar-backup2/CedarBackup2
> 41/41 modules processed 0 warnings
> WARNING: guessing CedarBackup2 for project name
> writing html to apidocs using pydoctor.templatewriter.writer.TemplateWriter
> starting ModuleIndexPage ...
> Error trying to import 'epytext' parser:
> 
> ImportError: No module named epydoc.markup.epytext
> 
> Using plain text formatting only.
> took 0.006452s
> starting ClassIndexPage ... took 0.011512s
> starting IndexPage ... took 0.002281s
> starting NameIndexPage ... took 0.079562s
> starting UndocumentedSummaryPage ... took 0.004314s
> 125/125 pages written
> Generating objects inventory at apidocs/objects.inv
> 
> The generated HTML documentation is legible, if not as pretty as it
> would have been before.  Given that it works, I am going to NMU the
> version of the package that doesn't depend on epydoc.  I'll also
> create a PR on salsa.  On salsa, master has diverged from the released
> package, but I am *not* going to integrate those changes, because I
> don't want to take responsibility for them.

Sorry for the delayed reply and thanks for working on Pydoctor without epydoc.
I'm happy for you to NMU a new version, but can also merge a patch and do an
upload - as you prefer.

As far as I know pydoctor upstream is pretty dormant, but not completely
inactive. Pull requests do get looked at and there is the occasional fix to
keep it running, but that's about it.

Cheers,

Jelmer



Bug#932584: Epydoc and Pydoctor

2019-08-04 Thread Kenneth Pronovici
I decided to NMU and uploaded a few days ago, so things are in good shape
now, I think.  You can integrate my changes whenever you have time.  Thanks
for confirming that your ok with the NMU.  I was hoping you would be.

KEN


Bug#932584: Epydoc and Pydoctor

2019-07-31 Thread Kenneth Pronovici
On Wed, Jul 31, 2019 at 10:46 AM Ian Jackson
 wrote:
> > Otherwise, I will see if I can determine how well the package works
> > without epydoc installed.  If it works (i.e. doesn't blow up) and I
> > don't hear back with other instructions, I will eventually NMU my
> > changes to remove the epydoc dependency.   Given that I haven't gotten
> > any replies for more than 18 months now, I won't wait that long before
> > doing this NMU.
>
> That sounds really good to me for now.  I think you can do this NMU
> whenever you like.

I tested pydoctor against my own cedar-backup2 code, which I never converted
away from Epydoc since it's Python 2-only.   It seems to work fine:

mars:~/projects/dev/software/cedar-backup2> pydoctor CedarBackup2/
adding directory /home/pronovic/projects/dev/software/cedar-backup2/CedarBackup2
41/41 modules processed 0 warnings
WARNING: guessing CedarBackup2 for project name
writing html to apidocs using pydoctor.templatewriter.writer.TemplateWriter
starting ModuleIndexPage ...
Error trying to import 'epytext' parser:

ImportError: No module named epydoc.markup.epytext

Using plain text formatting only.
took 0.006452s
starting ClassIndexPage ... took 0.011512s
starting IndexPage ... took 0.002281s
starting NameIndexPage ... took 0.079562s
starting UndocumentedSummaryPage ... took 0.004314s
125/125 pages written
Generating objects inventory at apidocs/objects.inv

The generated HTML documentation is legible, if not as pretty as it
would have been before.  Given that it works, I am going to NMU the
version of the package that doesn't depend on epydoc.  I'll also
create a PR on salsa.  On salsa, master has diverged from the released
package, but I am *not* going to integrate those changes, because I
don't want to take responsibility for them.

KEN

-- 
Kenneth J. Pronovici 



Bug#932584: Epydoc and Pydoctor

2019-07-31 Thread Ian Jackson
Kenneth Pronovici writes ("Epydoc and Pydoctor"):
> (I'm the maintainer for epydoc.)

Hi.

Thanks for the analysis which seems to make sense to me.

> Given that epydoc does not work properly in Python 3, and it's beyond
> my capabilities to fix it, there aren't too many options here.  Either
> we remove pydoctor's dependency on epydoc, or we remove pydoctor from
> the archive.
> 
> I don't see any evidence that upstream is developing a Python 3
> version of this code.  This means that python-pydoctor will have to be
> removed from the archive eventually.   Maybe now is the time to do it?

I had a quick look at Sources in some random sid chroot and the
following Build-Depend on it:
  git-buildpackage
  kiwi
  libcloud
  subvertpy
(and there are no rdepends).

AFAICT pydoctor was written for Twisted but Twisted no longer seems to
use it ?  But here
  https://wiki.python.org/moin/DocumentationTools
it is still listed and not in the dead section.  The Python 3 issue
  https://github.com/twisted/pydoctor/issues/96
is not encouraging.

IDK if anyone here is in close enough contact with the upstream Python
world to know whether pydoctor is dead or not.

> Otherwise, I will see if I can determine how well the package works
> without epydoc installed.  If it works (i.e. doesn't blow up) and I
> don't hear back with other instructions, I will eventually NMU my
> changes to remove the epydoc dependency.   Given that I haven't gotten
> any replies for more than 18 months now, I won't wait that long before
> doing this NMU.

That sounds really good to me for now.  I think you can do this NMU
whenever you like.

Ian.

-- 
Ian JacksonThese opinions are my own.

If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
a private address which bypasses my fierce spamfilter.



Bug#932584: Epydoc and Pydoctor

2019-07-30 Thread Kenneth Pronovici
(I'm the maintainer for epydoc.)

I took a pass through the pydoctor code.  The epydoc module is
imported in pydoctor/html.py, where it's an optional import:

try:
from epydoc.markup import epytext
EPYTEXT = True
except:
print "no epytext found"
EPYTEXT = False

Later on, in the doc2html() method, the code checks EPYTEXT and falls
back on a boring docstring implementation ("Generate an HTML
representation of a docstring in a really boring way") if the module
isn't available.   This file has a docstring which says "The old HTML
generator.  Deprecated, do not use", so it may not be relevant.

The epydoc module is also imported in pydoctor/epydoc2stan.py:

def get_parser(formatname):
try:
mod = __import__('epydoc.markup.' + formatname,
 globals(), locals(), ['parse_docstring'])
except ImportError, e:
return None, e
else:
return mod.parse_docstring, None

Like html.py, epydoc2stan.py falls back on a boring docstring method
if get_parser() returns None.

Based on this analysis, it seems to me that epydoc isn't a strict
dependency for pydoctor.  I think that pydoctor should still continue
to work even without the epydoc module available, albeit with somewhat
different output.

Given that epydoc does not work properly in Python 3, and it's beyond
my capabilities to fix it, there aren't too many options here.  Either
we remove pydoctor's dependency on epydoc, or we remove pydoctor from
the archive.

I don't see any evidence that upstream is developing a Python 3
version of this code.  This means that python-pydoctor will have to be
removed from the archive eventually.   Maybe now is the time to do it?

Otherwise, I will see if I can determine how well the package works
without epydoc installed.  If it works (i.e. doesn't blow up) and I
don't hear back with other instructions, I will eventually NMU my
changes to remove the epydoc dependency.   Given that I haven't gotten
any replies for more than 18 months now, I won't wait that long before
doing this NMU.

KEN

-- 
Kenneth J. Pronovici