old_contents: import os
  import subprocess
  try:
      from hash import md5
  except ImportError:
      import md5
  
  import sphinx
  
  import distutils
  import numpy.distutils
  
  try:
      from paver.tasks import VERSION as _PVER
      if not _PVER >= '1.0':
          raise RuntimeError("paver version >= 1.0 required (was %s)" % _PVER)
  except ImportError, e:
      raise RuntimeError("paver version >= 1.0 required")
  
  import paver
  import paver.doctools
  import paver.path
  from paver.easy import options, Bunch, task, needs, dry, sh, call_task
  from paver.setuputils import setup
  
  # NOTES/Changelog stuff
  RELEASE = 'doc/release/1.3.0-notes.rst'
  LOG_START = 'tags/1.2.0'
  LOG_END = 'master'
  
  def compute_md5():
      released = paver.path.path('installers').listdir()
      checksums = []
      for f in released:
          m = md5.md5(open(f, 'r').read())
          checksums.append('%s  %s' % (m.hexdigest(), f))
  
      return checksums
  
  def write_release_task(filename='NOTES.txt'):
      source = paver.path.path(RELEASE)
      target = paver.path.path(filename)
      if target.exists():
          target.remove()
      source.copy(target)
      ftarget = open(str(target), 'a')
      ftarget.writelines("""
  Checksums
  =========
  
  """)
      ftarget.writelines(['%s\n' % c for c in compute_md5()])
  
  def write_log_task(filename='Changelog'):
      st = subprocess.Popen(
              ['git', 'svn', 'log',  '%s..%s' % (LOG_START, LOG_END)],
              stdout=subprocess.PIPE)
  
      out = st.communicate()[0]
      a = open(filename, 'w')
      a.writelines(out)
      a.close()
  
  @task
  def write_release():
      write_release_task()
  
  @task
  def write_log():
      write_log_task()
  
new_contents: import os
  import subprocess
  try:
      from hash import md5
  except ImportError:
      import md5
  
  import sphinx
  
  import distutils
  import numpy.distutils
  
  try:
      from paver.tasks import VERSION as _PVER
      if not _PVER >= '1.0':
          raise RuntimeError("paver version >= 1.0 required (was %s)" % _PVER)
  except ImportError, e:
      raise RuntimeError("paver version >= 1.0 required")
  
  import paver
  import paver.doctools
  import paver.path
  from paver.easy import options, Bunch, task, needs, dry, sh, call_task
  from paver.setuputils import setup
  
  PDF_DESTDIR = paver.path.path('build') / 'pdf'
  HTML_DESTDIR = paver.path.path('build') / 'html'
  
  RELEASE = 'doc/release/1.3.0-notes.rst'
  LOG_START = 'tags/1.2.0'
  LOG_END = 'master'
  
  options(sphinx=Bunch(builddir="build", sourcedir="source", docroot='doc'))
  
  # NOTES/Changelog stuff
  def compute_md5():
      released = paver.path.path('installers').listdir()
      checksums = []
      for f in released:
          m = md5.md5(open(f, 'r').read())
          checksums.append('%s  %s' % (m.hexdigest(), f))
  
      return checksums
  
  def write_release_task(filename='NOTES.txt'):
      source = paver.path.path(RELEASE)
      target = paver.path.path(filename)
      if target.exists():
          target.remove()
      source.copy(target)
      ftarget = open(str(target), 'a')
      ftarget.writelines("""
  Checksums
  =========
  
  """)
      ftarget.writelines(['%s\n' % c for c in compute_md5()])
  
  def write_log_task(filename='Changelog'):
      st = subprocess.Popen(
              ['git', 'svn', 'log',  '%s..%s' % (LOG_START, LOG_END)],
              stdout=subprocess.PIPE)
  
      out = st.communicate()[0]
      a = open(filename, 'w')
      a.writelines(out)
      a.close()
  
  @task
  def write_release():
      write_release_task()
  
  @task
  def write_log():
      write_log_task()
  
  # Doc build stuff
  @task
  @needs('paver.doctools.html')
  def html(options):
      """Build numpy documentation and put it into build/docs"""
      builtdocs = paver.path.path("docs") / options.sphinx.builddir / "html"
      HTML_DESTDIR.rmtree()
      builtdocs.copytree(HTML_DESTDIR)
  
subject: Add task to build html doc.