TBR
    Django 4.0 support

2021-10-22 3.9.0
    Removed Tracis CI
    Fix SubRegionSerializer URL #257
    Support for django 3.2 and python 3.9, 3.10
    Upaded the version of all the libraries
    Fix/import error #255
    Python 2 tidy ups and removed mock dependency #249
    Feature Allow to use natural primary/foreing keys for geoname objects #217

2020-10-22 3.8.1
    Drop support of Django 2.0 and 2.1
    Small improvements on documentation, codebase and CI

2020-08-28 3.8.0
    Fix for subregion #229
    Documentation improvement #221 #189
    General improvements on warnings and pylint recomendations
    Dropped support of Django 1.11

2020-08-06 3.7.0
    Fix for subregion
    Drop support for python 2
    Changes dependency from django-autoslug-iplweb to django-autoslug, that
    works with Django 3.1

2019-04-14 3.6.0

    Add Subregion support by @adamb70 and @Guts

2019-04-14 3.5.1

    Fix Django 3.0 and DRF 3.11+ support

2018-05-27 3.5.0

    Fix lack of support of Django 2.0 by django_autoslug #174 by @wswld
    Changes dependency from django-autoslug to django-autoslug-iplweb, that
    works with Django 2.0, and which is maintained by @mpasternak

2018-02-15 3.4.0

    - Drop support for django<1.8 and django-rest-framework<3.4
    - Fix memory widget units on OS X
    - Remove support for django-autocomplete-light v1 (#157)
    - Update django-rest-framework and django-ajax-selects
    - Use custom Django>=1.7 lookup to remove spaces from search query string
    - Update model customization docs for Django 1.9
    - Add timezone support
    - Compatibility with Django 2.0
    - Compatibility with Django 1.11
    - Move name field to Base model, make not unique
    - #136: Creating a ModelSerializer
    - #127: Adds the possibility to customize the alternate_names separator
    - Fix unidecode warning and add unit test for to_ascii
    - Switch Country/Region/City lists to sets (speedup)
	- Call connection.close() only for MySQL (speedup)
	- Disable progressbar by default (speedup)
    - Call reset_queries only in DEBUG mode (speedup)
    - Make dump_fixture APP_NAME aware
    - Adds migration step in README.rst
	- improve help text formatting for management commands
    - fix positional argument handling on django 1.10 for cities_light_fixtures command

2016-05-29 3.3.0

    - #118: Add Django 1.10 support, drop Django 1.7 support by @jpic
    - #113: Fix DeprecationWarning by @mbaragiola
    - #106: New management command to work with fixtures by @max-arnold
    - #108: translation_items_pre_import_signal by @FaBay89
    - #106: New management command feature by @greeday2

2016-01-10 3.2.0

    - #105: Drop LazyProgressBar, patch was accepted upstream by @max-arnold,
    - #104: Better feature code filtering by @max-arnold,
    - #100, #96: The mistery about migrations appearing in some
      environments but not others has been solved: it was due to the
      presence of b'' in migration files. A new test was added to fail if
      django wants to create new migrations in any environment.
    - Phone number was required to create a country, it's not anymore.
    - Support Django 1.7 to 1.9, thanks @suquant for helping,
    - Support for 1.7 will drop when 1.10 is released, unless someone
      contributes compatibility in cities_light options declaration,
    - Bugfix in import: some search names would not be generated in some
      cases due to unpredictability of the iteration order on
      translation_data.items()
    - Test with django-dbdiff are much faster than importing the whole data
    - Tox for testing, coverage

2015-04-02 3.1.2

    Django 1.8 compatibility by @suquant

2015-03-23 3.1.1

    Use named indexes for geonames data contributed by Alexey Evseev.

2015-03-04 3.1.0

    Pluggable models feature contributed by Alexey Evseev.

2015-02-19 3.0.5

    Added CITIES_LIGHT_INCLUDE_COUNTRIES setting.

2015-01-28 3.0.4

    Windows support by forcing utf8 by Mikael Österberg.

2015-01-21 3.0.3

    Django-restframework support updated by @moimael.

2014-11-24 3.0.2

    Make db_index optional on City table. It generates the missing migration
    files that was added in your current project.

2014-11-06 3.0.1

    Fixed MySQL Django 1.7 migrations support.

2014-10-31 3.0.0

    - #63: Django 1.7 support,
    - Require Django >= 1.6 for django.db.transaction.atomic,
    - Apparently stable MySQL support.

MySQL users should use 3.0.0.

PostgreSQL and SQLite users are free to keep on using 2.x.x which supports
Django >= 1.4.

2014-04-30 2.4.2

    - #55: Warn users about SOUTH_MIGRATION_MODULES in migrations/__init__.py
    - Django 1.7 on Python3 support.

2014-04-27 2.4.1

    - setup.py was rm'ing cities_light/migrations.

2014-04-27 2.4.0

    - Use django migrations by default (support django 1.7). To upgrade adjust
      SOUTH_MIGRATIONS_MODULES.
    - PEP0396 cities_light.__version__.

2014-04-06 2.3.1

    - #42 added FAQ: Some data fail to import or don't import like I want, how
      to skip them ?
    - #45 django-rest-framework support update by @almalki.
    - #49 Added country_items_pre_import and region_items_pre_import by
      @mauricioabreu
    - #51 Slug should be used in unique_together along with name.
    - #51 Skip duplicate cities with no regions
    - #52 Added FAQ on MySQL and UTF-8
    - #53 Country phone prefix support by @csarcom
    - Forms update.

2014-03-06 2.3.0

    - Fix #50: added country_items_pre_import singal by @mauricioabreu

    Apparently I've slightly messed up version numbers so we're starting over
    at 2.3.0.

2014-02-24 2.2.13

    - Fix #46: south migrations were not installed with django 1.6.

2014-02-24 2.2.12

    - Fixed #43: load cities with the same name from different
      regions, by @dpoirier

2014-02-02 2.1.11

    - Django 1.7 support: remove migrations in pre-install.

2014-01-28 2.1.10

    - Removed dependency_links

2014-01-27 2.1.9

    - Changed a requirement version, let's hope that it works on weird
      Python setups.

2013-12-12 2.1.8

    - Bugfix: a django 1.7 migration from my WC made it in 2.1.7.

2013-12-12 2.1.7

    - #37: Richard Barran fixed translation import progress bar.

2013-11-23 2.1.6

    - #34: Greg Gaughan fixed model ordering.

2013-10-03 2.1.5

    - Removed dead decorator.

2013-10-02 2.1.4

    - Restored Python3 support broken by 2.1.2
    - PostgreSQL support for feature introduced in 2.1.2.

2013-10-02 2.1.3

    - Automatically force import unless cities_light command has completed
      once.

2013-10-02 2.1.2

    - Expect IntegrityErrors as they seem to be caused only by duplicates. A
      non-blocking warning is logged instead.

2013-09-30 2.1.1

    - Do not decorate Base subclasses with @python_2_unicode_compatible. See
      https://code.djangoproject.com/ticket/21198

2013-09-27 2.1.0

    - Added Python 3 support using
      https://docs.djangoproject.com/en/dev/topics/python3/
    - Added featurecode and population, contributed by Chris Vigelius (@chrisv2)
    - Fixed ascii slug generation based on advice by Max Arnolds
    - Import of cities1000.zip now tested automatically on sqlite, postgres and
      mysql (python2 only) by travis.

Upgrade instructions:

    pip install -U django-cities-light
    ./manage.py migrate cities_light

2013-07-30 2.0.9

Awesome contributions were merged:

    - Fixed bug in city migration where if there were two cities in the same
      country with the same name only the first would be imported. This was due
      to not taking into account the region checking for the records existence
      before creating a new one.
    - Increase performance by caching region_id and country_id in migration
      function variables.
    - Added debugging flag '--verify-city-import' which cerifies city import
      and print out missing cities. For debug purposes only.
    - Fixed bug in city migration where if the name_ascii field is null it
      would set the slug name as 'city.' It now sets it to the geoname_id.
    - Added to AUTHORS: Mike Mepham, Jeff Rudokas

2013-06-26 2.0.8

    - Merge #22: ugettext_lazy instead of ugettext.
    - Added Aaron VanDerlip to AUTHORS.
    - Promoted dev status to 5 Stable.

2012-10-26 2.0.7

    - Bugfix: zips were not imported anymore because of a bug introduced in 2.0.6

2012-10-26 2.0.6

    - Don't re-extract downloaded files over and over again,
    - Bugfix: removed import of pympler
    - Setup travis to test that database installation works on both postgres
      and mysql. It was working indeed but we just have it continuously tested
      now.
    - Made --force less picky on arguments

2012-10-26 2.0.5

    - Optimized cities_light command, from 400M of RAM used to 30M on
      django-autocomplete-light's test project. Thanks sandino for reporting.
    - Made --force-import less picky on arguments

2012-08-22 2.0.4

    - Avoid indexing of search_names on MySQL

2012-08-22 2.0.3

    - Hint the user about MySQL's issue with migration 0003

2012-07-12 2.0.2

    - Wrap management command in a transaction. (contributed by Pi Delport)

2012-07-10 2.0.1

    - Added support for q GET argument to contrib.restframework

2012-07-09 2.0.0

    - Added support for django-autocomplete-light 1.0.0 in
      contrib.autocompletes

2012-06-25 1.9.4

    - Fixed south migration and PEP8.
    - Some code for 2.0 accidently was in the previous release.

2012-06-12 1.9.3

    Fixed contrib stuff.

2012-06-12 1.9.2

    Fixed region import for malta.

2012-06-10 1.9.1

    - Fixed chinese city name_ascii support
    - Fixed support for regions without names
    - to_search() now automatically called when filtering on
      search_names

    In 1.9.0, you had to query like::

        City.objects.filter(search_names__icontains=to_search('Paris, Fra'))

    In 1.9.1, passing the value through to_search() is automatic::

        City.objects.filter(search_names__icontains='Paris, Fra')

    Keep in mind that 'Paris, Fra' will be converted in 'parisfra',
    which is useable against search_names column.

2012-06-07 1.9.0 Added Regions/states

    - Run migrations: added Region, for USA state support because for example
      there is a city called "Greenville" in almost every state.
    - Remove CityAutocompleteWidget, in favor of a google-maps-like
      autocomplete channel, which you can use with the normal widget.
    - Update your querysets using search_names__icontains=some_value to do
      search_names__icontains=cities_light.models.to_ascii(some_value).
    - Run: ./manage.py cities_light --noinsert to update data, set
      search_names, alternate_names, region ...
    - If filtering cities to import with city_items_pre_import, make a matching
      signal reciever for region_items_pre_import new signal. For example::

            COUNTRIES = ('FR', 'US', 'BE', 'GB', 'ES', 'PT', 'DE', 'NL')

            def filter_city_import(sender, items, **kwargs):
                if items[8] not in COUNTRIES:
                    raise cities_light.InvalidItems()
            cities_light.signals.city_items_pre_import.connect(filter_city_import)

            def filter_region_import(sender, items, **kwargs):
                if items[0].split('.')[0] not in COUNTRIES:
                    raise cities_light.InvalidItems()
            cities_light.signals.region_items_pre_import.connect(filter_region_import)

    Also there is now a progress bar in the cities_light command.

    Note that the cities_light command now has very performant implementation
    of alternateNames parser, which opens possibilities:

    - it parses postal codes, but doesn't do anything with them yet
    - it parses the name of every country/region/city in any language, used
      only for search_names in this version

    For 2.0, we aim at:

    - including cities_light.contrib.postal_codes,
    - including po files with the translation for every country/region/city
      name

    Contributions are really welcome so please if you need any of these
    features don't hesitate to implement and do pull requests !

2012-05-24 1.3+ to 1.5.1

    We had to fix migration 0003 for mysql. So to upgrade from 1.3, 1.4, or 1.5
    to 1.5.1, do::

        ./manage.py migrate cities_light 0002
        pip install -U django-cities-light
        ./manage.py migrate cities_light


2012-05-19 1.0 to 1.1

    Backward compatibility breaks:
        - cities_light.widgets moved to
          cities_light.contrib.autocomplete_light_widgets,

        - cities_light.lookups moved to
          cities_light.contrib.ajax_selects_lookups,

        - cities_light.autocomplete_light_registry moved to
          cities_light.contrib.autocomplete_light_channels,

        - cities_light does not auto-register channels anymore (because you now
          have the choice between a basic channel and the remote channel.

    New features:

        - latitude and longitude fields,
        - search_names,
        - djangorestframework integration,
        - autocomplete_light+djangorestframework integration.

    New author:

        - Riccardo Magliocchetti
