Upcoming Version

  Nothing so far…

Version 1.6.6 (2024-04-25)

  - Replace much of dynamic CustomBuildHook code by static
    `tool.hatch.build.targets.wheel.shared-data` and
    `tool.hatch.build.targets.sdist` (!36 by Sebastian Pipping)

Version 1.6.5 (2024-04-11)

  - Add missing runner-pipe man pages to both sdist and wheel
    (#12, !32 by Sebastian Pipping)
  - Make `NEWS` and `*.in` files be included with sdist archive again
    (#11, !34 by Sebastian Pipping)
  - Make `tests/` folder be included with sdist archive
    (#13, !33 by Sebastian Pipping)
  - Use locations `/usr/share/doc/rubber` and `/usr/share/man/{,fr/}man1` for
    documentation in wheel archive (!32 by Sebastian Pipping)

Version 1.6.4 (2024-04-09)

  - Bring back missing ZSH completion file (!31 by Sebastian Pipping)
  - Fix empty project description on PyPI (!31 by Sebastian Pipping)
  - Fix support for gpep517 (!31 by Sebastian Pipping)
  - Add command "clean" to hatch_build.py (!31 by Sebastian Pipping)
  - Other misc improvements to hatch_build.py (!31 by Sebastian Pipping)
  - Migrate README to Markdown (!31 by Sebastian Pipping)

Version 1.6.3 (2024-04-06)

  - Migrate from Setuptools to PEP 517 pyproject.toml and Hatchling
    (!30 by Sebastian Pipping)

Version 1.6.2 (2024-03-30)

  - Require Python >=3.8 (!29 by Sebastian Pipping)
  - Fix crash with source path that uses special characters
    (#10, !25 by Pietro Battiston)
  - Announce "--into DIR" at runtime more consistently (!27 by Florian Fischer)
  - setup.py: Fix version going into call setup(..) and file rubber/version.py
    (!29 by Sebastian Pipping)
  - setup.py: Migrate off of distutils (!29 by Sebastian Pipping)
  - setup.py: Hide virtualenvs from command "clean" (!29 by Sebastian Pipping)

Version 1.6.1 (2022-06-08)

  - Available on PyPI as `latex-rubber`

Version 1.6.0 (2021-06-16)

  - Add support for LuaTeX via the lualatex module
  - Introduce rubbercache for faster compilations

Version 1.5.1 (2018-09-12)

  Fix two severe regressions in the python3 port.

  Bugfixes:
  - Restore support for 8-bits encoded .tex sources (Debian: #907937, #907988).
  - Fix many crashing log/warning/error messages.

Version 1.5 (2018-08-06)

  This version requires Python3.

  It assumes that all files are encoded in utf-8. This should not
  cause new problems, previous versions were silently assuming ASCII.

  Features:
  - Remove support for selection of paper size and orientation.
  - Prohibit onchange directive unless --unsafe mode.

  Bugfixes:
  - Fix stacktrace when parsing BibTeX errors (LP: #1533723).
  - Use open mode r+ for /dev/null instead of rw (LP: #1543622)
  - Always give a relative source path to fig2dev (Debian: #345954).
  - Detect "Missing character" messages in log files (Debian: #384155).
  - Update hooks for all parsers (Debian: #813855, LP: #1470988).
  - Accept uppercase image extensions (LP: #1583475).
    Patch from Matthias Goldhoorn <matthias@goldhoorn.eu>.

Version 1.4 (2015-12-11)

  This version of Rubber officially requires Python 2.6 and up.
  Note that the code has not been tested with Python 3, so if you
  run it under Python 3, you're on your own.  Bug reports are welcome!

  Starting with 1.4, the primary repository at Launchpad is a
  Git tree.

  Features:
  - New distutils-based build & install scripts by Nicolas.
  - Report BibTeX / Biber errors more reliably.
  - We have support for embedding R code via knitr.
    http://yihui.name/knitr/
    Closes: https://bugs.launchpad.net/rubber/+bug/1422759
    Note that since R can run arbitrary external code, --unsafe
    must be given at the command line:
      rubber -d --unsafe paper.Rtex
    creates beautifully typeset PDF from your R script.
  - Support for PythonTeX package.  Also requires --unsafe if
    you want Rubber to invoke pythontex.
  - Rubber will no longer attempt to use jpeg2ps on its own, which has
    been superseded by sam2p.  (You can add it back by providing your
    own rules.ini.)

  Bugfixes:
  - Refuse to read logfiles which exceed 1 MB.
    This avoids out-of-memory situations.  The limit may be raised with
      % rubber: set logfile_limit 1000000
    https://bugs.launchpad.net/rubber/+bug/628150
  - The command-line parsing of rubber and rubber-info has been merged.
    Thus, the --inplace and --into options are not only accepted by
    Rubber (as they were previously), they also take effect.
    Closes: https://bugs.launchpad.net/rubber/+bug/975376
  - Rubber complains properly now for nonexisting directives, and
    doesn't just print a stacktrace.
    Closes: https://bugs.launchpad.net/rubber/+bug/1090115
  - More refactoring, reducing the number of code paths to test and
    maintain.

Version 1.3 (2015-10-11)

  This version of rubber has changes in the dependency management.
  As a result, it may call LaTeX more often than it used to.
  On the other hand, there are less corner cases when LaTeX or
  BibTeX should have been called, but wasn't.

  Thanks to Nicolas Boulenguez for helping with lots of patches.

  Features:
    - Rewriting dependency management code with the aims of
      simplicity, correctness and reduced lines of code.
    - Support for SyncTeX.
      You can enable SyncTeX support by calling rubber --synctex,
      or by having a magic line
        % rubber: synctex
      in your document's preamble.
      https://bugs.launchpad.net/rubber/+bug/414431
    - Support for ltxtable, glossaries and biblatex, contributed
      by Sebastian Reichel.  Please test and report any problems!
      https://bugs.launchpad.net/rubber/+bug/860661
    - Support for asymptote, contributed by Nicolas Boulenguez.
    - Support for bibtopic, contributed by Nicolas Boulenguez.
      https://bugs.debian.org/460670
    - The BibTeX support can now use a different version of BibTeX.
      The external command for Rubber to run goes into the .tool variable:
      For example:
        % rubber: bibtex.tool bibtex8
      tells Rubber to use BibTeX8.
      https://bugs.debian.org/471185
    - New directive: "produce" which implies that a file is being
      generated during LaTeXing and must be cleaned up afterwards.
      Example:
        % rubber: produce doc.toc
      Indicates that during LaTeXing, .toc will be written (produce).
      Example 2:
        % rubber: produce doc.toc
        % rubber: watch doc.toc
      Indicates that doc.toc will be read (watch) and updated (produce).
      This also tells rubber to recompile the LaTeX document until
      doc.toc no longer changes.  "produce" implies "clean", i.e. the
      file will be disposed of when rubber is invoked with --clean.
    - Beginnings of a test suite.
      The current code does not pass all the tests (neither
      did previous Rubbers).

  Bugfixes:
    - Fix handling of absolute pathnames by not having absolute pathnames
      for the most part.
      https://bugs.debian.org/682892
      https://bugs.debian.org/798829
      https://bugs.debian.org/798991
    - Fix bibtex.path directive.
      https://bugs.launchpad.net/rubber/+bug/686187
      https://bugs.debian.org/694265
    - Fix ntheorem support.
      https://bugs.debian.org/328107
    - Fix TeX parser to handle spaces and comments between the macro
      and its arguments.
      More radical fix than Debian (https://bugs.debian.org/725355)
      https://bugs.launchpad.net/rubber/+bug/1049883
    - Fix read directive.  Patch by Lionel Vaux.
      https://bugs.debian.org/701898
    - Fix dvipdfm, backref and hyperref support.
    - Fix \includegraphics*
      https://bugs.launchpad.net/rubber/+bug/1478034
    - Fix elatex being called when etex.sty is use'd.
      https://bugs.launchpad.net/rubber/+bug/856449
    - Typos and clarifications in the docs, lots of cleanup and minor
      fixes in the code.

Version 1.2 (2015-06-25)

  Features:
    - shell_escape feature to enable -shell-escape in LaTeX.
      BEWARE: granting shell-escape (write18) to a document permits it
      to run arbitrary external commands.  Use only on trusted (your own)
      documents!
      Usage:  to mark a document as requiring shell-escape, add the line
            % rubber: shell_escape
      near the header.  To grant shell-escape to a document, run rubber as
            rubber --unsafe document.tex
      There are several older hacks documented on the internet which continue
      to work, but are deprecated from now on.  The 'arguments' variable
      will be removed in the future.
      https://bugs.launchpad.net/rubber/+bug/878629
    - XeLaTeX support.
      https://bugs.launchpad.net/rubber/+bug/660426
      https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=579757
    - Support for gnuplottex (requires --unsafe)
    - Experimental PythonTeX support contributed by Ferdinand Schwenk
      (requires --unsafe).

  Bugfixes:
    - Fix handling of set{,list} arguments.
    - Fix BibTeX called with absolute path and refusing to write.
      https://bugs.launchpad.net/rubber/+bug/1287593
    - Fix LaTeX parsing with optional whitespace
      https://bugs.launchpad.net/rubber/+bug/195258
    - Fix behavior when .aux is not generated
      https://bugs.launchpad.net/rubber/+bug/1208464
      https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=402150
    - Catch broken working directory and print error
      https://bugs.launchpad.net/rubber/+bug/529198
    - Fix LoadClassWithOptions
      https://bugs.launchpad.net/rubber/+bug/1266912
      https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718932
    - Fix \pdfoutput=1
      https://bugs.launchpad.net/rubber/+bug/921444
      https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=691305
    - Update homepage
      https://bugs.launchpad.net/rubber/+bug/1169485
    - Fix crash on nonexisting directory
      https://bugs.launchpad.net/rubber/+bug/529198
    - Fix CWEB and lhs2tex support which was broken.
    - Fix stdin being leaked to subprocesses, including LaTeX
      https://bugs.launchpad.net/rubber/+bug/802169

  And many others...

Version 1.1 (2006-03-17)

  Features:
    - Support for user-defined conversion rules.
    - Support for xindy and sam2p.
    - Improved fig2dev support.
    - Experimental cache system.

  Bugfixes:
    - Better parsing of log files.
    - Improved error reporting (including for BibTeX and Metapost).
    - Better handling of verbatim environments.
    - Many other fixes.

Version 1.0 (2005-07-11)

  Features:
    - More intelligent graphics conversion rules.
    - New command-line options "--inplace" and "--into".
    - New command-line option "-W" to report warnings.
    - New command-line option "--only" for partial compilation.
    - A completion function for Zsh.

  Bugfixes:
    - Modules "index" and "verbatim" fixed.
    - Fixed path searching in Metapost.
    - Fixed paper size handling (in dvips, dvipdfm, ps2pdf).
    - Better handling of aux files from \include'd sources.

Version 0.99.8 (2004-08-27)

  Features:
    - Support for e-TeX and Omega.
    - Support for package "index".
    - New directive "onchange".
    - Support for \includeonly.
    - Option --maxerr to display only the first errors.

  Bugfixes:
    - Portability improvement (for Cygwin and hopefully others).
    - Improved the semantics of directives.

Version 0.99.7 (2004-02-20)

  Features:
    - Support for VTeX.
    - Directives "watch" and "clean" for tables of contents and such.
    - Support for graphics conversion using ImageMagick (lots of new formats).
    - Support for packages "moreverb", "verbatim", "hyperref", "beamer".
    - Support for post-processing through dvipdfm.
    - New frontend "rubber-pipe" with the behaviour of a filter.
    - New module "expand" to expand inputs and bibliographies.
    - Support for Literate Haskell code (with lhs2TeX).
    - Error messages are now issued in the style of GNU compilers.
    - Compilation by pdfTeX into DVI.
    - Gzipping of the final document, command-line option "-z".

  Bugfixes:
    - Error-like messages from pdfTeX are now correctly handled.
    - Modules are handled correctly when compiling several documents at once.
    - Better dependency analysis for MetaPost.
    - Macro arguments can now contain line breaks.

  Packaging:
    - Introduced Texinfo documentation.

Version 0.99.6 (2003-04-09)

  Features:
    - Handling of \graphicspath.
    - Conversion of XFig figures to combined EPS/LaTeX.
    - Parsing of MetaPost log files for errors.
    - Automatic JPEG to EPS conversion (with jpeg2ps).
    - Support for packages "epsfig" and "natbib".
    - Rubber directives in source comments.
    - Directives for specifying paths for LaTeX and BibTeX.
    - Directives to control the operation of Makeindex.
    - Paper size specification (for dvips).

  Bugfixes:
    - The action "--deps" in rubber-info now lists each dependency only once.
    - Kpathsea messages are now reported also during compilation.
    - Avoided some crashes due to file name tracking in rubber-info.
    - Fixed and improved CWEB support.

Version 0.99.5 (2002-12-04)

  Features:
    - New format in error and information display.
    - The command line now provides a meaningful return code.
    - New "--short" command-line switch for compact error reports.
    - New (default) action "--check" in rubber-info.
    - Parsing of BibTeX log files for errors.

  Bugfixes:
    - Made the calls to LaTeX and others more portable.
    - Better date computations (this caused useless compilations).
    - Avoid crash whith documents with cyclic file inclusion.
    - The action "--deps" now lists all files the document depends on.

Version 0.99.4 (2002-11-06)

  Features:
    - Handle correctly multiple .aux files produced by \include.
    - Support for package "minitoc".
    - Extraction of bounding boxes from gzipped figures (eps.bb from eps.gz).
    - Watch for changes in .aux files to avoid useless recompilations.

  Bugfixes:
    - Behaves better when the execution of external programs fails.
    - Made the call to epstopdf(1) more portable.

  Miscellaneous:
    - Introduction of the RPM package.
    - External program execution now requires Unix-specific features.

Version 0.99.3 (2002-10-12)

  Features:
    - New actions "--refs" and "--warnings" in rubber-info.
    - Support for XFig figures (with conversion to EPS, PDF and PNG).

  Bugfixes:
    - Display problem fixed in Metapost support.
    - Better parsing of \includegraphics (now handles keyval options).

Version 0.99.2 (2002-09-06)

  Features:
    - Dependency analysis for Metapost.
    - New command-line switch "--force" to force recompiling.

  Bugfixes:
    - Parsing of starred macros.
    - Support for compilation of a document from a different directory.
    - Improved source file name tracking in log files.

  Packaging:
    - Included the man page for rubber-info.
    - Better dependencies for Debian.
    - Introduction of TODO and ChangeLog.

Version 0.99.1 (2002-06-21)

  Features:
    - Initial support for "graphics" and "graphicx" (dependency analysis).
    - Allowed the processing of several documents with one command line.
    - Handling of the keyboard interrupt (control-C).
    - Source file name tracking for error reports.
    - Page number tracking in rubber-info.
    - Introduction of the modular support for graphics.

  Bugfixes:
    - Better error extraction from log files.
    - Allowed empty suffix for all graphics file names.
    - Better source searching algorithm.

  Packaging:
    - Introduced the Debian package.
    - Added the description of the modules in the man pages.

Version 0.99 (2002-05-31)

This was actually the first version of Rubber. It was a rewrite in Python of
the now-deceased Eel (that was written in shell script).
