.. _changelog:

Changelog
=========

These are the critical changes that have happened in Pootle and may affect
your server. Also be aware of the :ref:`important changes in the
Translate Toolkit <toolkit:changelog>` as many of these also affect Pootle.

If you are upgrading Pootle, you might want to see some tips to ensure your
:ref:`upgrade goes smoothly <upgrading>`


Version 2.5.1
-------------

Not released yet. *Planned release date late November 2013*

- The minimum required Python version is now 2.6.x. While Django 1.4.x supports
  Python 2.5, Python 2.5 is itself no longer supported by the Python Foundation
  neither by several third party apps, and supporting it requires an increasing
  number of ad-hoc patches on Pootle, so support for Python 2.5 on Pootle has
  been dropped.

- The minimum required Django version is 1.4.x.

- The database schema upgrade procedure has been redefined, and the
  :ref:`commands#updatedb` management command has been phased out in favor of
  South's own :ref:`migrate command <south:commands>`.  Post schema upgrade
  actions have been moved to the :ref:`commands#upgrade` command. For detailed
  instructions, read the :doc:`upgrading <server/upgrading>` section of the
  documentation.

- The :ref:`commands#setup` management command was added to hide the
  complexities in the initialization or upgrading of the DB when either
  upgrading or installing Pootle. Please read the :doc:`upgrading
  <server/upgrading>` and :doc:`installation <server/installation>` sections of
  the documentation.

- *css/custom/custom.css* is now served as part of the common bundle.

- The quality check for spell checking has been globally disabled. It wasn't
  properly advertised nor documented, and it didn't perform well enough to be
  considered useful.

- Pootle now supports tags that can be added to translation projects or
  individual files, and supports filtering translation projects by their tags.

- Pootle now supports goals that can be applied to files. It is possible to
  apply goals globally in a given project. Goals allow managers to provide a
  simple way to prioritize work and keep track of the translation progress in a
  group of files.

- Pootle allows custom scripts to be exposed in the Actions menu for a project.


Version 2.5.0
-------------

Major release, released on May 18th 2013.

- The minimum required Django version is 1.3.

- Static files are now handled by the ``django.contrib.staticfiles`` module.
  This means you will need to run the ``pootle collectstatic`` command on
  production and serve the *pootle/assets/* directory from your webserver at
  */assets/*. If you are upgrading from a previous version, you will need to
  replace the occurrences of *static* with *assets* within your web server
  configuration.

- Static files are bundled into assets by using `django-assets
  <http://elsdoerfer.name/docs/django-assets/>`_.

- Several features from translation projects have been merged into the
  *Overview* tab, including quality check failures and directory- and
  file-level actions. As a consequence the *Review* tab has been dropped and
  the *Translate* tab serves solely to display the actual translation
  editor.

- Settings have been migrated from *localsettings.py* into *settings/\*.conf*
  files. Your customizations now go in a :ref:`separate configuration file
  <settings#customizing>` (or in *settings/90-local.conf* if running from a
  repository clone).

- A new setting, :setting:`VCS_DIRECTORY` has been added, and VCS repositories
  are located in that directory, separate from the translation files used for
  editing and upload/download. The files in the VCS directory should never have
  any uncommitted changes in them, except during commit operations themselves.

- The ``PootleServer`` script has been phased out in favor of a ``pootle``
  runner script.

- If you will be using Pootle with Django 1.3, you *have* to keep the timezone
  on ``UTC``, unless you are using PostgreSQL. Users of PostgreSQL or Django
  1.4 or later are free to set the time zone as they prefer.
  Also make sure to use the minimum required South version when performing
  database upgrades.

- The ``update_from_templates`` management command has been renamed to
  :ref:`commands#update_against_templates`.

Version 2.1.6
-------------

Bugfix release, released on April 13th 2011.

- This is the first version that is compatible with Django 1.2.5 and
  Django 1.3.

- You also need Translate Toolkit 1.9.0 to be able to use these newer
  versions of Django.


Version 2.1.1
-------------

Bugfix release, released on September 3rd 2010.

- The default cache backend is now a database backend. Memcached is
  still the preferred cache backend, but consider using the database cache
  if you are using the local memory backend and can't use memcached.

- You can perform a :ref:`database migration away from SQLite
  <database-migration>`.


Version 2.1
-----------

Released on August 17th 2010.

- Pootle no longer depends on statsdb and SQLite.

- Files on disk are only synced with the database on download or commit.
  The old behaviour can be restored at the cost of performance.
  A ``manage.py`` :ref:`command <commands>` can sync to files on the
  command line.

- The database is now much larger. This should have no negative impact
  on performance, but we strongly suggest using MySQL or PostgreSQL
  for the best performance.

- Pootle 2.1 will upgrade the database automatically from Pootle 2.0
  installations. You need to have South installed. Install it from your
  distribution, or http://south.aeracode.org/ or with ``easy_install South``
  (the upgrade could take quite a while, depending on your installation size).

- Pending files are not used for suggestions any more, and will also be
  migrated to the database during upgrade.

- New settings are available in `localsettings.py` -- compare your
  existing one to the new one.

- Pootle 1 installations can easily migrate everything excluding project
  permissions. We encourage administrators to configure permissions with
  the new permission system which is much simpler to use, since permissions
  on the language and project level are now supported.

- Have a look at the optimization guide to ensure your Pootle runs well.


Version 2.0
-----------

Released on December 7th 2009.

- Pootle now uses the Django framework and data that previously was stored
  in flat files (projects, languages, users and permissions) is now stored
  in a database. Migration scripts are provided.

- Review all suggestions before migrating, and note that assignments
  are not yet supported in Pootle 2.0.


Version 1.2.0
-------------

Released on October 8th 2008.

- The name of the directory for indexing databases changed from
  `.poindex-PROJECT-LANGUAGE` to `.translation_index`. Administrators
  may want to remove the old indexing directories manually.

- The enhanced search function needs all indexing databases to be
  regenerated, otherwise it won't find anything. To achieve this, just
  remove all `.translation_index` directories under your projects::

    find /path/to/projects/ -type d -name ".translation_index" -exec rm -rf {} \;

- If you used testing versions of Pootle 1.2, you almost definitely need
  to regenerate your statistics database. Pootle might be able to do it
  automatically, but if not, delete `~/.translate_toolkit/stats.db`.


Version 1.0
-----------

Released on May 25th 2007.

XLIFF support
  Pootle 1.0 is the first version with support for XLIFF based projects.
  In the admin interface the project type can be specified as PO / XLIFF
  (this really just tells Pootle for which type of files it should look -
  it won't convert your project for you). This property is stored in
  `pootle.prefs` in the variable ``localfiletype`` for each project.

Configurable logos
  You are now able to configure the logos to use in `pootle.prefs`. At the
  moment it will probably be easiest to ensure that the same image sizes
  are used as the standard images.

Localized language names
  Users can now feel more at home with language names being localized.
  This functionality is actually provided by the toolkit and your system's
  iso-codes package.

Treestyle: gnu vs nongnu
  Pootle automatically detects the file layout of each project. If you want
  to eliminate the detection process (which can be a bit slow for big
  projects) or want to override the type that Pootle detected, you can
  specify the ``treestyle`` attribute for the project in `pootle.prefs`.
  Currently this can not be specified through the admin interface.


Version 0.11
------------

Released on March 8th 2007.

- If the user has the appropriate privileges (ovewrite right) he/she will
  be able to upload a file and completely overwrite the previous one.
  Obviously this should be done with care, but was a requested feature for
  people that want to entirely replace existing files on a Pootle server.

- The server administrator can now specify the default access rights
  (permissions) for the server. This is the rights that will be used for
  all projects where no other setup has been given. See pootle.prefs for
  some examples.

- The default rights in the default Pootle setup has changed to only
  allow suggesting and to not allow translation. This means that the default
  server setup is not configured to allow translation, and that users must
  be specifically assigned the translate (and optionally review) right, or
  alternatively, the default rights must be configured to allow translation
  (see the paragraph above).

- The baseurl will now be used, except for the `/doc/` directory, that
  currently still is offered at `/doc/`.

- The default installation now uses English language names in preperation
  for future versions that will hopefully have language names translated
  into the user interface language. To this end the language names must be
  in English, and names with country codes must have the country code in
  simple noun form in brackets. For example `Portuguese (Brazil)`; in other
  words, not `Portuguese (Brazilian)`.


Version 0.10
------------

Released on August 29th 2006.

Statistics
  The statistics pages are greatly reworked.  We now have a page that shows
  a nice table, that you can sort, with graphs of the completeness of the
  files.  This is the default view.  What is confusing is that the stats
  page does not work directly with editing.  To get the editing features,
  click on the editing link in the top bar.

  The quick statistics files (`pootle-projectname-zu.stats`) now also
  store the fuzzy stats that are needed to render the statistics tables.
  Your previous files from 0.9 can not supply this information. Pootle 0.10
  will automatically update these files, but if you (for some reason)
  want/need to go back to Pootle 0.9, you will have to delete these files.
  Not all `.stats` files need to be deleted, only the ones starting with
  `pootle-projectname`.

SVN and CVS committing
  You can now commit to SVN or CVS.  A default commit message is added, you
  cannot edit this message.  Your ability to commit depends on the rights
  you have on the checkout and since you cannot supply a password it needs
  to be a non-blocking method.  This feature is probably not useful for a
  very public server unless it is managing multiple translations of your
  own project and you have direct control over it and CVS/SVN accounts.
  It will work well in a standalone situation like a Translate@thon etc,
  where it is a public event but the server is controled by yourself for
  the event and then you can simply commit changes at the end.
  For more information, see version control information.

Terminology
  Pootle can now aid translators with terminology. Terminology can be
  specified to be global per language, and can be overriden per project
  for each language. A project called "terminology" (with any full name)
  can contain any files that will be used for terminology matching.
  Alternatively a file with the name `pootle-terminology.po` can be put
  in the directory of the project, in which case the global one (in the
  terminology project) will not be used. Matching is done in real time.
  Note that this does not work with GNU-style projects (where all the
  files are in one directory and have names according to the language code).

Translation Memory
  Pootle can now aid translators by means of a translation memory. The
  suggestions are not generated realtime -- it is done on the server by
  means of a commandline program (`updatetm`). Files with an appended `.tm`
  will be generated and read by Pootle to supply the suggestions. For more
  information see `updatetm`.
