unable to build docs on default

Yuya Nishihara yuya at tcha.org
Thu Jun 9 11:38:47 CDT 2011


Steve Borho wrote:
> On Thu, Jun 9, 2011 at 5:29 AM, Adrian Buehlmann <adrian at cadifra.com> wrote:
> > On 2011-06-09 11:36, Adrian Buehlmann wrote:
> >> On 2011-06-09 09:29, Adrian Buehlmann wrote:
> >>> (adding Yuya to cc)
> >>>
> >>> On 2011-06-09 06:35, Steve Borho wrote:
> >>>>>  C:\Python26x64\python.exe gendoc.py > build-hg/doc/hg.1.gendoc.txt
> >>>> Traceback (most recent call last):
> >>>>   File "gendoc.py", line 167, in <module>
> >>>>     show_doc(sys.stdout)
> >>>>   File "gendoc.py", line 114, in show_doc
> >>>>     mod = extensions.load(None, extensionname, None)
> >>>>   File "..\mercurial\extensions.py", line 73, in load
> >>>>     mod = importh(name)
> >>>>   File "..\mercurial\extensions.py", line 65, in importh
> >>>>     mod = __import__(name)
> >>>>   File "..\mercurial\demandimport.py", line 85, in _demandimport
> >>>>     return _origimport(name, globals, locals, fromlist)
> >>>> ImportError: Import by filename is not supported.
> >>>>
> >>>> build-hg/doc> C:\Python26x64\python.exe runrst html --link-stylesheet
> >>>> --stylesheet-path style.css hg.1.txt hg.1.html
> >>>> hg.1.gendoc.txt:2088: (SEVERE/4) Title level inconsistent:
> >>>>
> >>>> Branch-based Access Control
> >>>> ...........................
> >>>> Exiting due to level-4 (SEVERE) system message.
> >>>>
> >>>>
> >>>> It looks like gendoc.py assumes Mercurial default (pre 1.9) is
> >>>> installed?  That's a nice chicken-egg loop.
> >>>>
> >>>
> >>> I ran into this as well when trying to build TortoiseHg with
> >>>
> >>>   https://bitbucket.org/tortoisehg/thg-winbuild
> >>
> >> Another quick and dirty/temporary "fix" for thg-winbuild which makes the
> >> build run to completion is:
> >>
> >> (patch for https://bitbucket.org/tortoisehg/thg-winbuild/src/tip/setup.py )
> >>
> >> diff --git a/setup.py b/setup.py
> >> --- a/setup.py
> >> +++ b/setup.py
> >> @@ -301,7 +301,7 @@
> >>      run_python(r'setup.py build_py -c -d . build_mo', 'build-hg')
> >>      run_python(r'setup.py build_ext -i', 'build-hg', env=get_sdkenv(arch))
> >>
> >> -    generate_hgext_index()
> >> +    #generate_hgext_index()
> >>
> >>      # Build man pages
> >>      pipetofile((sys.executable, 'gendoc.py'),
> >> @@ -400,7 +400,7 @@
> >>          if ext == 'hgcr-gui':
> >>              shutil.copy('hgcr-gui/hgcr.ui', 'build-thg/tortoisehg/hgqt')
> >>
> >> -    generate_hgext_index()
> >> +    #generate_hgext_index()
> >>
> >>      # Build docs
> >>      run(r'build chm', 'build-thg/doc')
> >>
> >>
> >> Looks like thg-winbuild needs to be adapted to Yuya's change in mercurial
> >> default branch anyway. The index in hgext is now supposed to be generated
> >> by mercurial's setup.py (see mercurial's 3818c67a501e).
> >
> > Maybe something like (still quite hackish, but seems to work here):
> >
> > diff --git a/setup.py b/setup.py
> > --- a/setup.py
> > +++ b/setup.py
> > @@ -300,8 +300,7 @@
> >     run_python(r'setup.py --version', 'build-hg')
> >     run_python(r'setup.py build_py -c -d . build_mo', 'build-hg')
> >     run_python(r'setup.py build_ext -i', 'build-hg', env=get_sdkenv(arch))
> > -
> > -    generate_hgext_index()
> > +    run_python(r'setup.py build_hgextindex', 'build-hg', env=get_sdkenv(arch))
> >
> >     # Build man pages
> >     pipetofile((sys.executable, 'gendoc.py'),
> > @@ -400,7 +399,8 @@
> >         if ext == 'hgcr-gui':
> >             shutil.copy('hgcr-gui/hgcr.ui', 'build-thg/tortoisehg/hgqt')
> >
> > -    generate_hgext_index()
> > +    run(r'del build-hg\hgext\__index__.*')
> > +    run_python(r'setup.py build_hgextindex', 'build-hg', env=get_sdkenv(arch))
> >
> >     # Build docs
> >     run(r'build chm', 'build-thg/doc')
> >
> 
> Yeah, that looks promising.  Thanks for investigating.  Until the code
> freeze we'll need to support both paths.

Thanks for fixing the problem.
generate_hgext_index() creates slightly different __index__.py from
setup.py build_hgextindex. And older index breaks the current implementation.

Also we'll need to disable fixfrozenexts on default branch:

diff --git a/win32/mercurial.rc b/win32/mercurial.rc
--- a/win32/mercurial.rc
+++ b/win32/mercurial.rc
@@ -32,9 +32,6 @@ ssh = "TortoisePlink.exe" -ssh -2
 ;
 
 [extensions]
-; fixfrozenexts is enabled by default.  It allows extension help
-; to work "out of the box" from binary installers.
-fixfrozenexts =
 
 ;
 ; Define external diff commands, for hg command line use only

Yuya,


More information about the Mercurial-devel mailing list