====================
What's new in Dennis
====================

.. contents::
   :local:

Version 1.2.0: February 4th, 2026
=================================

* 3e18f1e Bump supported Python up to 3.13 ; Remove support for < 3.10

Version 1.1.0: June 22nd, 2022
==============================

* cb9f9e5 Handle double braces when linting

Version 1.0.0: June 10th, 2022
==============================

* b38a678 Drop Python 3.5/3.6; add Python 3.9/3.10 (#122, #123, #124, #125)
* b6d34d7 Redo tarrminal printin' and colorr (#71)

  There's an additional backwards-incompatible change here in which we drop
  the ``--color`` and ``--no-color`` arguments from ``dennis-cmd lint``.
* 658f951 Document dubstep (#74)
* adb4ae1 Rework CI so it uses a matrix
* transfer project from willkg to mozilla for ongoing maintenance and support


Version 0.9.0: February 2nd, 2017
=================================

* dfc0b68 Remove th' django shims

  This is a backwards-incompatible change. If you need them back, then
  you should pull the code and add it to your project.

  Why remove them? They weren't tested in any way, possibly didn't work
  with new Django versions and weren't really supported.

* 033d88d Remove click varrsion pinnin'
* 9241ff7 Fix filename printin'


Version 0.8.0: January 3rd, 2017
================================

* b0705f4 Clean up pytest code and drop Python 2.6 bits
* d27790b Fix th' --varformat flag to alloww nay formats (#83)
* 3bf0929 Switch travis sudo flag
* 990c842 Update requirements
* 0d00ad4 Add travis supparrt
* 528fcc1 Fix support for Python 3.5 (Thanks John Vandenberg!)
* 700490d Add Travis CI testing (#88)
* a59a9bb Fix translation o' plurals (#79)
* aca57f6 Fix false positive wit' InvalidVarsLintRule (#78)
* 581f230 Add note about --check-headerr flag to recipes
* bce6308 Fix PythonBraceFormat regexp to handle spaces
* 7016ee4 Add .cache to .gitignore
* 05a4e14 Collapse th' whitespace in text in th' html transform
* 75fa600 Prepare fer 0.8 development
* 070808d Add additional dev-relat'd packages


Version 0.7.0: October 2nd, 2015
================================

* 2d27a8c Add lint rule fer bad format charactarrs (#68)
* 2bc1053 Missin' python-format variables is an errorrr (#57)
* 8e178c7 Fix notype test to handle more cases (#63)
* 90ab98d Implement rule exclusion (#60)
* caabbbb Rewrite rule spec varrification to work correctly (#61)
* 7e2f7f0 Add --showfuzzy to status command (#64)
* 02ea679 Add untranslat'd word counts to status command (#55)
* 713288b Change Varr to Format and use gettext names (#48)
* c3c49b9 Handle th' standalone } case (#56)


Version 0.6.1: December 18th, 2014
==================================

**Changes**

* 39208bd Rewrite poentry block parserr (#54)
* b21d553 Handle HTMLParseErrorr in MismatchedHTMLLintRule (#53)
* e719886 Update lintin' wit' warnings we add'd in 0.6
* 6312d33 Tweak a bunch o' project summary language


Version 0.6: December 16th, 2014
================================

**Notes**

* Adds click as a dependency.
* Adds a line reporter for the linter so Dennis can be used as a linting
  plugin.
* Adds line numbers to lint output so you can more easily find the
  problematic strings.

**Changes**

* 9f9f42b Add exception handlin' text (#41)
* fd15fe8 Add double transform (#44)
* dcd3e7f Fix th' Django command shims
* 1606887 Rewrite command line code wit' click (#51)
* c34d77e Fix pyflakes issues
* 905ce05 Change "dennis" to "Dennis"
* a6d49a8 Nix bin/dennis-cmd for setuptools console entrypoint
* be9c867 Merge lint and linttemplate commands (#50)
* 92f2037 Add line numbers to output and line reporter (#47)
* 37cad18 Showw entire poentry in linttemplate (#46)


Version 0.5: August 24th, 2014
==============================

**Changes**

* 8dddfb7 Add MismatchedHTMLLintRule (#36)
* b31c094 Minorr code cleanup
* 9353f5b Fix bugs when runnin' wit' Python 3
* 4883e52 Add template linterr (#39)


Version 0.4.3: August 1st, 2014
===============================

**Changes**

* ead33d3 Add UnchangedLintRule (#36)
* fde6d9a Add BlankLintRule (#36)
* 73b1f35 Fix W202 regarding missing variables in pluralistic strings (#38)


Version 0.4.2: May 13th, 2014
=============================

**Changes**

* 06e4b6d Fix utf8_args decoratorr


Version 0.4.1: May 9th, 2014
============================

**Changes**

* 831af1a Fix lint output regarding UnicodeEncodeErrors (#37)


Version 0.4: May 1st, 2014
==========================

**Changes**

* Tweak Python 3 support
* c42b7e8 Overhaul linter for finer-grained linting
* 3e1cc1d Add extracted-comment-based lint rule ignoring so you can
  easily ignore false positives on a string-by-string basis (#34)


Version 0.3.11: April 16th, 2014
================================

**Changes**

* 0c2e5a9 Fix foo} with missing right curly brace (#33)
* Python 3 support (#30)
* 6f60b00 Add reverse transform


Version 0.3.10: October 25th, 2013
==================================

**Changes**

* f874578 Add status command
* 8b99cfe Add zombie transform
* fb319e3 Fix lint command to handle multiple files


Version 0.3.9: October 17th, 2013
=================================

**Changes**

* 3852fac Mediocre tweak to betterr handle urlencodin' (#27)
* 3c65a1d Don't considerr %% a valid Python variable (#28)


Version 0.3.8: October 16th, 2013
=================================

**Changes**

* ac9edf0 Fix problem identifyin' mismatch'd errors in plurals (#25)
  (Thanks Mike!)


Version 0.3.7: October 15th, 2013
=================================

**Changes**

* 5787e12 Add dubstep translator
* fd90046 Add shims so you can easily use with django


Version 0.3.6: September 19th, 2013
===================================

**Changes**

* 56b7372 Fix false positives like (%(count)s) in malformed lint rule. (#21)
  (Thanks Kumar!)


Version 0.3.5: September 17th, 2013
===================================

**Changes**

* b432e1b Fix rules default -- Running the linter with the default set of
  rules will now include malformed variable linting.
* 72083f9 Improve detect missing } with python vars
* b8f3776 Improve linting docs -- It includes a list of lint rules and what
  they do.
* 6d9bac5 Detect missing } in Python formatting vars (#20) (Thanks Kumar!)
* 1a10c35 Fix detection of malformed formatting token at end of string


Version 0.3.4: July 30th, 2013
==============================

**Changes**

* 8a1d4a8 Make sure to lint only translated non-fuzzy strings


Version 0.3.3: July 29th, 2013
==============================

**Backwards-incompatible changes**

* cf668a3 Rename var_types to just var

  If you were doing something like::

      $ dennis-cmd lint --types=python ...
      $ dennis-cmd translate --types=python ...

  that ``--types`` argument is now ``--vars``.

**Changes**

* 952245c Tweak lint output to betterr do errorsonly
* cc63144 Fix lint output issues
* 6ee94a3 Overhaul linter to support multiple lint rules (#18)


Version 0.3.2: July 23rd, 2013
==============================

**Changes**

* c778532 Add haha transform
* e41bca8 Add --errorsonly flag to linter (#16)
* 759352d Fix UnicodeEncodeErrors wit' translate


Version 0.3.1: July 15th, 2013
==============================

**Changes**

* c600064 Handle invalid .po files (#10)
* 52f81f9 Fix lint output so it's utf-8 (#11) (Thanks Mike!)
* 7da6add Tweak translator to allow for translating stdin (#13)
* a5e3556 Add empty, xxx, anglequote and shouty transforms
* 8cb1f2a Add redacted transform
* Documentation
* Bug fixes


Version 0.3: July 8th, 2013
===========================

**Changes**

* Initial writing. Yay!

What happened to 0.1 and 0.2? I skipped them.
