diff -pruN 5.0.1-2/AUTHORS 5.1.0-0ubuntu1/AUTHORS
--- 5.0.1-2/AUTHORS	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/AUTHORS	2021-09-06 08:27:46.000000000 +0000
@@ -0,0 +1,91 @@
+Adam Spiers <aspiers@suse.com>
+Akihiro Motoki <amotoki@gmail.com>
+Akihiro Motoki <motoki@da.jp.nec.com>
+Alessio Ababilov <aababilov@griddynamics.com>
+Anderson Mesquita <andersonvom@gmail.com>
+Andreas Jaeger <aj@suse.com>
+Andreas Jaeger <aj@suse.de>
+Andrey Kurilin <akurilin@mirantis.com>
+Balazs Gibizer <balazs.gibizer@ericsson.com>
+Ben Nemec <bnemec@redhat.com>
+Ben Nemec <openstack@nemebean.com>
+Bo Chi <shcbo@cn.ibm.com>
+Brant Knudson <bknudson@us.ibm.com>
+Chang Bo Guo <guochbo@cn.ibm.com>
+ChangBo Guo(gcb) <eric.guo@easystack.cn>
+Charles Short <chucks@redhat.com>
+Charles Short <zulcss@gmail.com>
+Christian Berendt <berendt@b1-systems.de>
+Chuck Short <chuck.short@canonical.com>
+Chuck Short <chucks@redhat.com>
+Corey Bryant <corey.bryant@canonical.com>
+Dan Prince <dprince@redhat.com>
+Daniel Bengtsson <dbengt@redhat.com>
+Davanum Srinivas <davanum@gmail.com>
+Davanum Srinivas <dims@linux.vnet.ibm.com>
+David Stanek <dstanek@dstanek.com>
+Dina Belova <dbelova@mirantis.com>
+Doug Hellmann <doug.hellmann@dreamhost.com>
+Doug Hellmann <doug@doughellmann.com>
+Flavio Percoco <flaper87@gmail.com>
+Ghanshyam Mann <gmann@ghanshyammann.com>
+Hervé Beraud <hberaud@redhat.com>
+James Carey <jecarey@us.ibm.com>
+Jason Kölker <jason@koelker.net>
+Jay Pipes <jaypipes@gmail.com>
+Jeremy Stanley <fungi@yuggoth.org>
+Joe Gordon <joe.gordon0@gmail.com>
+Joe Heck <heckj@mac.com>
+John Warren <jswarren@us.ibm.com>
+Joshua Harlow <harlowja@gmail.com>
+Joshua Harlow <harlowja@yahoo-inc.com>
+Juan Antonio Osorio <juan.osorio.robles@ericsson.com>
+Julien Danjou <julien@danjou.info>
+Kenneth Giusti <kgiusti@gmail.com>
+Luis A. Garcia <luis@linux.vnet.ibm.com>
+Luong Anh Tuan <tuanla@vn.fujitsu.com>
+Mark McLoughlin <markmc@redhat.com>
+Mathew Odden <mrodden@us.ibm.com>
+Matt Odden <mrodden@us.ibm.com>
+Moisés Guimarães de Medeiros <moguimar@redhat.com>
+Monty Taylor <mordred@inaugust.com>
+Nikhil Manchanda <SlickNik@gmail.com>
+Noorul Islam K M <noorul@noorul.com>
+OpenStack Release Bot <infra-root@openstack.org>
+Peng Wu <alexepico@gmail.com>
+Rajaram Mallya <rajarammallya@gmail.com>
+Ronald Bradford <ronald.bradford@gmail.com>
+Rosario Di Somma <rosario.disomma@dreamhost.com>
+Russell Bryant <rbryant@redhat.com>
+Sean McGinnis <sean.mcginnis@gmail.com>
+Sean McGinnis <sean_mcginnis@dell.com>
+Sergey Kraynev <skraynev@mirantis.com>
+Stephen Finucane <stephenfin@redhat.com>
+Steve Martinelli <stevemar@ca.ibm.com>
+Thomas Herve <therve@redhat.com>
+Tony Breeds <tony@bakeyournoodle.com>
+Victor Sergeyev <vsergeyev@mirantis.com>
+Victor Stinner <victor.stinner@enovance.com>
+Vu Cong Tuan <tuanvc@vn.fujitsu.com>
+WangBinbin <bbwang5827@fiberhome.com>
+ZhiQiang Fan <aji.zqfan@gmail.com>
+ZhijunWei <wzj334965317@outlook.com>
+Zhiteng Huang <zhiteng.huang@intel.com>
+ZhongShengping <chdzsp@163.com>
+Zhongyue Luo <zhongyue.nah@intel.com>
+caoyuan <cao.yuan@99cloud.net>
+haixin <haixin@inspur.com>
+howardlee <lihongweibj@inspur.com>
+jacky06 <zhang.min@99cloud.net>
+kavithahr <kavitha.r@nectechnologies.in>
+lingyongxu <lyxu@fiberhome.com>
+malei <malei@maleideMacBook-Pro.local>
+melissaml <ma.lei@99cloud.net>
+ricolin <rico.lin@easystack.cn>
+tonybrad <zhangyuan1@chinaunicom.cn>
+venkatamahesh <venkatamaheshkotha@gmail.com>
+wangzihao <wangzihao@yovole.com>
+wu.shiming <wushiming@yovole.com>
+yangyawei <yangyawei@inspur.com>
+yanheven <yanheven@qq.com>
+zhoulinhui <df.some@foxmail.com>
diff -pruN 5.0.1-2/ChangeLog 5.1.0-0ubuntu1/ChangeLog
--- 5.0.1-2/ChangeLog	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/ChangeLog	2021-09-06 08:27:46.000000000 +0000
@@ -0,0 +1,555 @@
+CHANGES
+=======
+
+5.1.0
+-----
+
+* Changed minversion in tox to 3.18.0
+* Switch testing to Xena testing runtime
+* Upgrade the pre-commit-hooks version
+* Fix requirements issues
+* Remove all usage of six library
+* Use TOX\_CONSTRAINTS\_FILE
+* Use py3 as the default runtime for tox
+* Fix hacking min version to 3.0.1
+* Remove six.PY3
+* Adding pre-commit
+* Add Python3 wallaby unit tests
+* Update master for stable/victoria
+
+5.0.1
+-----
+
+* Bump bandit version
+
+5.0.0
+-----
+
+* Stop to use the \_\_future\_\_ module
+* Remove a couple more shim tests
+* Imported Translations from Zanata
+* Remove Message.translate
+* Add Babel aliases to get\_available\_languages
+* Switch to newer openstackdocstheme and reno versions
+* Remove the unused coding style modules
+* Remove translation sections from setup.cfg
+* Align contributing doc with oslo's policy
+* Bump default tox env from py37 to py38
+* Add py38 package metadata
+* Drop use of babel
+* Add release notes links to doc index
+* Add Python3 victoria unit tests
+* Update master for stable/ussuri
+
+4.0.1
+-----
+
+* Use unittest.mock instead of third party mock
+* Update hacking for Python3
+
+4.0.0
+-----
+
+* remove outdated header
+* [ussuri][goal] Drop python 2.7 support and testing
+* tox: Trivial cleanup
+
+3.25.1
+------
+
+* Imported Translations from Zanata
+* Integrate sphinxcontrib-apidoc
+
+3.25.0
+------
+
+* tox: Keeping going with docs
+* Update master for stable/train
+* Deprecate Message.translate in favor of Message.translation
+* Allow Message.translate to handle unhashable inputs
+
+3.24.0
+------
+
+* Add Python 3 Train unit tests
+* Move doc related modules to doc/requirements.txt
+* Clarify that translation strings are extracted via source inspection
+* Fix guidelines w.r.t. translation of log messages
+* Move to releases.openstack.org
+* Cap Bandit below 1.6.0 and update Sphinx requirement
+* Replace git.openstack.org URLs with opendev.org URLs
+* OpenDev Migration Patch
+* Dropping the py35 testing
+* Update master for stable/stein
+
+3.23.1
+------
+
+* add python 3.7 unit test job
+* Change python3.5 job to python3.7 job on Stein+
+* Update hacking version
+* Update mailinglist from dev to discuss
+
+3.23.0
+------
+
+* Override getttext.find to cache result
+* Don't quote {posargs} in tox.ini
+* Clean up .gitignore references to personal tools
+* Always build universal wheels
+* Remove references to log translation functions
+* Use templates for cover and lower-constraints
+
+3.22.1
+------
+
+* Remove unused code
+* Imported Translations from Zanata
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+
+3.21.0
+------
+
+* Switch to stestr
+* Add release notes to README.rst
+* fix tox python3 overrides
+* Remove moxstubout usage
+* Remove stale pip-missing-reqs tox test
+* Trivial: Update pypi url to new url
+* set default python to python3
+* add lower-constraints job
+* Updated from global requirements
+
+3.20.0
+------
+
+* Imported Translations from Zanata
+* Update links in README
+* Imported Translations from Zanata
+* Update reno for stable/queens
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+
+3.19.0
+------
+
+* Remove -U from pip install
+* Avoid tox\_install.sh for constraints support
+* add bandit to pep8 job
+* Updated from global requirements
+* Remove setting of version/release from releasenotes
+* Updated from global requirements
+* Imported Translations from Zanata
+* Updated from global requirements
+
+3.18.0
+------
+
+* Updated from global requirements
+* Updated from global requirements
+* Imported Translations from Zanata
+* Update reno for stable/pike
+* Updated from global requirements
+
+3.17.0
+------
+
+* Imported Translations from Zanata
+* Update URLs in documents according to document migration
+
+3.16.0
+------
+
+* switch from oslosphinx to openstackdocstheme
+* turn on warning-is-error in doc build
+* rearrange the documentation to fit into the new standard layout
+* Updated from global requirements
+* Enable some off-by-default checks
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+
+3.15.3
+------
+
+* Revert "Remove Babel as a runtime requirement"
+
+3.15.2
+------
+
+* Updated from global requirements
+* Remove Babel as a runtime requirement
+
+3.15.1
+------
+
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Check reStructuredText documents for common style issues
+
+3.15.0
+------
+
+* add notes about skipping log translation setup
+* Updated from global requirements
+
+3.14.0
+------
+
+* Python 3.5 is added
+
+3.13.0
+------
+
+* Updated from global requirements
+* [Fix gate]Update test requirement
+* Fix wrong response with language zh-TW
+* Updated from global requirements
+* Update reno for stable/ocata
+
+3.12.0
+------
+
+* Add Constraints support
+* Show team and repo badges on README
+* Replace six.iteritems() with .items()
+
+3.11.0
+------
+
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Add reno for release notes management
+* Add missing dependency testscenarios
+* Typo fix in oslo.i18n
+* Changed the home-page link
+* Add docs on how to display translated strings in your app
+
+3.10.0
+------
+
+* Updated from global requirements
+
+3.9.0
+-----
+
+* Updated from global requirements
+* Fix parameters of assertEqual are misplaced
+
+3.8.0
+-----
+
+* Updated from global requirements
+* Don't include openstack/common in flake8 exclude list
+* Updated from global requirements
+
+3.7.0
+-----
+
+* Imported Translations from Zanata
+* Updated from global requirements
+
+3.6.0
+-----
+
+* Updated from global requirements
+* Updated from global requirements
+* Better isolate tests and fixtures from environment
+* Updated from global requirements
+
+3.4.0
+-----
+
+* Imported Translations from Zanata
+
+3.3.0
+-----
+
+* Update translation setup
+* Updated from global requirements
+* Imported Translations from Zanata
+* Updated from global requirements
+
+3.2.0
+-----
+
+* Updated from global requirements
+* add versionadded designations to newer functions
+* doc: contextual/plural translation requires oslo.i18n >=2.1.0
+* Trival: Remove 'MANIFEST.in'
+
+3.1.0
+-----
+
+* [doc] Update \_i18n.py example to pass pep8
+* Add missing blank in usage.rst
+* Remove Python 2.6 workround for logging
+* Drop python 2.6 support
+
+3.0.0
+-----
+
+* Updated from global requirements
+* Remove python 2.6 classifier
+* Remove python 2.6 and cleanup tox.ini
+* Improved integration module documentation
+* Updated from global requirements
+* Imported Translations from Zanata
+
+2.7.0
+-----
+
+* Fix coverage configuration and execution
+* No need for Oslo Incubator Sync
+* Enhance the formatting error robustness patch
+* Imported Translations from Zanata
+* Move 'history' -> release notes section
+* Add shields.io version/downloads links/badges into README.rst
+* Change ignore-errors to ignore\_errors
+* Added the home-page value with Oslo wiki
+* Updated from global requirements
+
+2.6.0
+-----
+
+* Updated from global requirements
+* Updated from global requirements
+
+2.5.0
+-----
+
+* Trap formatting errors
+
+2.4.0
+-----
+
+* Imported Translations from Transifex
+* Updated from global requirements
+* Imported Translations from Transifex
+* Updated from global requirements
+* Clean up \_translate\_msgid logic a bit
+
+2.3.0
+-----
+
+* Imported Translations from Transifex
+* Updated from global requirements
+
+2.2.0
+-----
+
+* Imported Translations from Transifex
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Fix mock use for 1.1.0
+* Add requirements for pre-release test scripts
+* Imported Translations from Transifex
+
+2.1.0
+-----
+
+* Only define CONTEXT\_SEPARATOR once
+* Support contextual and plural form of gettext functions
+* Imported Translations from Transifex
+* clarify translation policy
+* Add tox target to find missing requirements
+* Imported Translations from Transifex
+
+2.0.0
+-----
+
+* Updated from global requirements
+* Updated from global requirements
+* Remove oslo namespace package
+
+1.7.0
+-----
+
+* Advertise support for Python3.4 / Remove support for Python 3.3
+* Updated from global requirements
+* Misplaced parenthesis causing confusion
+* Remove run\_cross\_tests.sh
+* Imported Translations from Transifex
+
+1.6.0
+-----
+
+* Uncap library requirements for liberty
+* Standardize setup.cfg summary for oslo libs
+* Updated from global requirements
+* Move to hacking 0.10
+* Update guideline doc of multiple use msg case
+
+1.5.0
+-----
+
+* Updated from global requirements
+
+1.4.0
+-----
+
+* Add test fixture to prefix lazily translated messages
+
+1.3.1
+-----
+
+* Clear global cache in test\_get\_available\_languages
+* Make setup.cfg packages include oslo.i18n
+* Improve fixture documentation
+
+1.3.0
+-----
+
+* Add a fixture to let tests manage the lazy flag
+* Fix the link to the bug tracker in the README
+
+1.2.0
+-----
+
+* Correct the translation domain for loading messages
+* Move out of the oslo namespace package
+* Workflow documentation is now in infra-manual
+* Force code sample to be treated as python
+
+1.1.0
+-----
+
+* Imported Translations from Transifex
+* Add note for integration modules in libraries
+* Activate pep8 check that \_ is imported
+* Add pbr to installation requirements
+* Updated from global requirements
+* Updated from global requirements
+* Remove extraneous vim editor configuration comments
+* Make clear in docs to use \_LE() when using LOG.exception()
+* Support building wheels (PEP-427)
+* Imported Translations from Transifex
+* Fix coverage testing
+* Imported Translations from Transifex
+* Use same indentation in doc/source/usage
+* Imported Translations from Transifex
+* Imported Translations from Transifex
+* Updated from global requirements
+* Remove unused/mutable default args
+* Fixes a small syntax error in the doc examples
+
+1.0.0
+-----
+
+* Add missing six dependency
+
+0.3.0
+-----
+
+* Imported Translations from Transifex
+* Work toward Python 3.4 support and testing
+* Updated from global requirements
+* Imported Translations from Transifex
+* Document how to add import exceptions
+
+0.2.0
+-----
+
+* Add a test fixture for translatable strings
+* Imported Translations from Transifex
+* Remove mention of Message objects from public docs
+* Add Changelog to the documentation
+
+0.1.0
+-----
+
+* Shift public API to top level package
+* Add links to policy discussions
+* Improve initial documentation
+* Update sphinx and hacking requirements
+* Fix import grouping in tests
+* Build locale dir env var name consistently
+* Updated from global requirements
+* Remove Babel version workaround code
+* Trivial refactors for gettextutils
+* Setup for translation
+* Update the public API of the library
+* Check the lazy flag at runtime
+* Handle . and - in translation domains
+* Split up monolithic test file
+* Updated from global requirements
+* Fix up usage instructions
+* fix docstring for fakes module
+* Update default tox settings
+* update .gitreview
+* update tests for python 3
+* sync cross-test script from incubator
+* pep8 fixes from import
+* update .gitignore with new lib name
+* Make unit tests pass
+* initial export with graduate.sh
+* Add API for creating translation functions
+* Use oslotest instead of common test module
+* Fix test\_gettextutils on Python 3
+* Fix gettextutil.Message handling of deep copy failures
+* Change lazy translation to retain complete dict
+* Remove requirements.txt from .gitignore
+* Add etc/openstack.conf.sample to .gitignore
+* Add support for translating log levels separately
+* Fix E501 in individual openstack projects
+* Fix test method use
+* Make Message keep string interpolation args
+* Add support for locales missing from babel
+* Allow the Message class to have non-English default locales
+* Implementation of translation log handler
+* Use hacking import\_exceptions for gettextutils.\_
+* Translation Message improvements
+* Fix violations of H302:import only modules
+* Fixed misspellings of common words
+* Trivial: Make vertical white space after license header consistent
+* Remove vim header
+* Use six.text\_type instead of unicode function in tests
+* Fix typos in oslo
+* Adjust import order according to PEP8 imports rule
+* Replace assertEquals with assertEqual
+* When translating if no locale is given use default locale
+* Type check for Message param to avoid AttributeError
+* gettextutils: port to Python 3
+* Translate all substitution elements of a Message object
+* python3: Fix UserString import
+* Replace using tests.utils part2
+* Enable multiple translation domains for gettextutils
+* Bump hacking to 0.7.0
+* Allow mapping \_ to lazy gettext path
+* Fix Message format-string parsing
+* Add common methods required to allow translation of REST API responses
+* Add eclipse project files to .gitignore
+* Add more robust gettext interpolation handling
+* Add .testrepository to .gitignore
+* python3: Add basic python3 compatibility
+* Enable hacking H404 test
+* Add basic lazy gettext implementation
+* Ignore backup files in .gitignore
+* Support overriding oslo localedir too
+* Add a gettextutils.install() helper function
+* gettextutils: fix translation domain
+* Fix Copyright Headers - Rename LLC to Foundation
+* Add join\_consumer\_pool() to RPC connections
+* Replace direct use of testtools BaseTestCase
+* Use testtools as test base class
+* Fixes import order errors
+* Add common base weigher/weigher handler for filter scheduler
+* updating sphinx documentation
+* Correcting openstack-common mv to oslo-incubator
+* Update .gitreview for oslo
+* .gitignore updates for generated files
+* Add gettext support
+* Updated tox config for multi-python testing
+* Added .gitreview file
+* ignore cover's html directory
+* Rajaram/Vinkesh|increased tests for Request and Response serializers
+* Rajaram/Vinkesh|Added nova's serializaiton classes into common
+* Initial skeleton project
diff -pruN 5.0.1-2/debian/changelog 5.1.0-0ubuntu1/debian/changelog
--- 5.0.1-2/debian/changelog	2020-10-15 21:02:48.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/changelog	2021-09-07 13:13:15.000000000 +0000
@@ -1,36 +1,56 @@
-python-oslo.i18n (5.0.1-2) unstable; urgency=medium
+python-oslo.i18n (5.1.0-0ubuntu1) impish; urgency=medium
 
-  * Uploading go unstable.
-  * Fixed debian/watch.
-  * Add a debian/salsa-ci.yml.
+  [ Chris MacNaughton ]
+  * d/control: Update VCS paths for move to lp:~ubuntu-openstack-dev.
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 15 Oct 2020 23:02:48 +0200
+  [ Corey Bryant ]
+  * New upstream release for OpenStack Xena.
 
-python-oslo.i18n (5.0.1-1) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 07 Sep 2021 09:13:15 -0400
 
-  * New upstream release.
+python-oslo.i18n (5.0.1-0ubuntu1) groovy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Sun, 13 Sep 2020 11:17:53 +0200
+  * New upstream release for OpenStack Victoria.
 
-python-oslo.i18n (5.0.0-1) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 18 Sep 2020 12:34:21 -0400
 
-  * New upstream release.
-  * Removed python3-babel from (build-)depends.
+python-oslo.i18n (5.0.0-0ubuntu1) groovy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 09 Sep 2020 16:31:39 +0200
+  * New upstream release for OpenStack Victoria.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/control, d/rules: Switch to debhelper compat 12 and pybuild.
+  * d/control: Update Standards-Version to 4.5.0.
 
-python-oslo.i18n (4.0.1-2) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 11 Jun 2020 09:39:16 -0400
 
-  * Uploading to unstable.
+python-oslo.i18n (4.0.1-0ubuntu1) focal; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 08 May 2020 22:00:46 +0200
+  * New upstream release for OpenStack Ussuri.
 
-python-oslo.i18n (4.0.1-1) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 09 Apr 2020 14:46:25 -0400
 
-  * New upstream release.
-  * Fixed (build-)depends for this release.
+python-oslo.i18n (4.0.0-0ubuntu1) focal; urgency=medium
+
+  * New upstream release for OpenStack Ussuri.
+  * d/control: Align (Build-)Depends with upstream.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 11 Mar 2020 15:52:07 -0400
+
+python-oslo.i18n (3.25.1-0ubuntu1) focal; urgency=medium
+
+  * New uptream release for OpenStack Ussuri.
+
+ -- Sahid Orentino Ferdjaoui <sahid.ferdjaoui@canonical.com>  Mon, 03 Feb 2020 10:38:55 +0000
+
+python-oslo.i18n (3.25.0-0ubuntu1) focal; urgency=low
+
+  * Merge from Debian unstable.  Remaining changes:
+    - d/gbp.conf: Retain for gbp and pristine-tar config.
+    - d/watch: Use upstream release tarballs.
+  * New upstream release for OpenStack Ussuri.
+  * d/control: Align (Build-)Depends with upstream.
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 07 Apr 2020 14:49:46 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 06 Dec 2019 09:58:08 -0500
 
 python-oslo.i18n (3.24.0-2) unstable; urgency=medium
 
@@ -54,6 +74,13 @@ python-oslo.i18n (3.24.0-1) experimental
 
  -- Thomas Goirand <zigo@debian.org>  Wed, 11 Sep 2019 17:20:59 +0200
 
+python-oslo.i18n (3.24.0-0ubuntu1) eoan; urgency=medium
+
+  * New upstream release for OpenStack Train.
+  * d/control: Align (Build-)Depends with upstream.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 25 Sep 2019 16:32:42 -0400
+
 python-oslo.i18n (3.23.1-2) unstable; urgency=medium
 
   * Uploading to unstable.
@@ -68,6 +95,31 @@ python-oslo.i18n (3.23.1-1) experimental
 
  -- Thomas Goirand <zigo@debian.org>  Wed, 20 Mar 2019 15:22:07 +0100
 
+python-oslo.i18n (3.23.1-0ubuntu2) eoan; urgency=medium
+
+  * d/control, d/rules: Drop Python 2 support.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 09 Sep 2019 14:53:55 -0400
+
+python-oslo.i18n (3.23.1-0ubuntu1) disco; urgency=medium
+
+  * New upstream release for OpenStack Stein.
+
+ -- James Page <james.page@ubuntu.com>  Mon, 11 Mar 2019 16:03:20 +0000
+
+python-oslo.i18n (3.23.0-0ubuntu1) disco; urgency=medium
+
+  * New upstream release for OpenStack Stein.
+  * d/control: Switch to using python3-sphinx.
+
+ -- James Page <james.page@ubuntu.com>  Wed, 30 Jan 2019 14:21:52 +0000
+
+python-oslo.i18n (3.22.1-0ubuntu1) disco; urgency=medium
+
+  * New upstream release for OpenStack Stein.
+
+ -- James Page <james.page@ubuntu.com>  Wed, 14 Nov 2018 15:19:55 +0000
+
 python-oslo.i18n (3.21.0-2) unstable; urgency=medium
 
   * Uploading to unstable.
@@ -87,6 +139,23 @@ python-oslo.i18n (3.21.0-1) experimental
 
  -- Thomas Goirand <zigo@debian.org>  Sun, 19 Aug 2018 19:11:59 +0200
 
+python-oslo.i18n (3.21.0-0ubuntu1) cosmic; urgency=medium
+
+  * New upstream release for OpenStack Rocky.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/do-not-run-topleve-tests.patch: Dropped. No longer needed.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 25 Jul 2018 15:27:13 -0400
+
+python-oslo.i18n (3.20.0-0ubuntu1) cosmic; urgency=low
+
+  * Merge from Debian unstable.  Remaining changes:
+    - d/watch: Use upstream release tarballs.
+  * New upstream release for OpenStack Rocky.
+  * Align (Build-)Depends with upstream.
+
+ -- James Page <james.page@ubuntu.com>  Tue, 12 Jun 2018 11:41:19 +0100
+
 python-oslo.i18n (3.19.0-2) unstable; urgency=medium
 
   * Uploading to unstable.
@@ -102,6 +171,22 @@ python-oslo.i18n (3.19.0-1) experimental
 
  -- Thomas Goirand <zigo@debian.org>  Sat, 10 Feb 2018 20:17:53 +0100
 
+python-oslo.i18n (3.19.0-0ubuntu1) bionic; urgency=medium
+
+  * New upstream release for OpenStack Queens.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/control: Bumped Standards-Version to 4.1.2.
+  * d/p/drop-openstackdoctheme.patch: Drop, no longer required.
+
+ -- James Page <james.page@ubuntu.com>  Fri, 08 Dec 2017 11:22:34 +0000
+
+python-oslo.i18n (3.18.0-0ubuntu1) bionic; urgency=medium
+
+  * New upstream release for OpenStack Queens.
+  * d/control: Align (build-)depends with upstream.
+
+ -- James Page <james.page@ubuntu.com>  Mon, 13 Nov 2017 14:30:30 +0000
+
 python-oslo.i18n (3.17.0-2) unstable; urgency=medium
 
   * Uploading to unstable.
@@ -137,6 +222,104 @@ python-oslo.i18n (3.17.0-1) experimental
 
  -- Thomas Goirand <zigo@debian.org>  Fri, 04 Aug 2017 03:24:26 +0200
 
+python-oslo.i18n (3.17.0-0ubuntu1) artful; urgency=medium
+
+  * New upstream release.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/drop-openstackdoctheme.patch: Temporarily drop openstackdocstheme
+    sphinx extension until sphinx>=1.6.2 is available.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 11 Aug 2017 17:53:44 -0400
+
+python-oslo.i18n (3.15.3-0ubuntu1) artful; urgency=medium
+
+  * New upstream release.
+  * d/control: Align (build-)depends with upstream.
+
+ -- James Page <james.page@ubuntu.com>  Fri, 02 Jun 2017 09:23:46 +0100
+
+python-oslo.i18n (3.15.0-0ubuntu1) artful; urgency=medium
+
+  [ Chuck Short ]
+  * New upstream release.
+  * d/control: Align (build-)depends with upstream.
+
+  [ James Page ]
+  * d/watch: Use tarballs.openstack.org.
+  * New upstream release.
+  * d/control: Align (build-)depends with upstream.
+
+ -- James Page <james.page@ubuntu.com>  Fri, 21 Apr 2017 10:03:12 +0100
+
+python-oslo.i18n (3.12.0-0ubuntu1) zesty; urgency=medium
+
+  * New upstream release.
+
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 19 Jan 2017 13:34:58 -0500
+
+python-oslo.i18n (3.11.0-0ubuntu1) zesty; urgency=medium
+
+  * New upstream release.
+  * d/control: Align (build-)depends with upstream.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 05 Dec 2016 09:49:34 -0500
+
+python-oslo.i18n (3.10.0-1ubuntu1) zesty; urgency=medium
+
+  [ Corey Bryant ]
+  * d/gbp.conf: Update gbp configuration file.
+  * d/control: Update Vcs-* links and maintainers.
+
+  [ Chuck Short ]
+  * New upstream version.
+   
+
+ -- Chuck Short <zulcss@ubuntu.com>  Tue, 25 Oct 2016 09:52:33 -0400
+
+python-oslo.i18n (3.9.0-1) experimental; urgency=medium
+
+  [ Corey Bryant ]
+  * New upstream release.
+  * d/control: Align (build-)depends with upstream.
+
+  [ James Page ]
+  * New upstream release.
+  * Align Build-Depends with upstream.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 25 Aug 2016 08:46:47 +0100
+
+python-oslo.i18n (3.7.0-1) experimental; urgency=medium
+
+  [ David Della Vecchia ]
+  * New upstream release.
+  * d/control: Align (build-)depends with upstream.
+
+  [ Corey Bryant ]
+  * d/control: Align python-oslo.config BD with upstream.
+
+  [ Thomas Goirand ]
+  * Drop python-oslo-* transition packages not needed since Xenial.
+  * Switch to pkgos-dh_auto_{test,install}.
+
+ -- Thomas Goirand <zigo@debian.org>  Fri, 01 Jul 2016 14:48:09 +0000
+
+python-oslo.i18n (3.6.0-1) experimental; urgency=medium
+
+  [ Ondřej Nový ]
+  * Standards-Version is 3.9.8 now (no change)
+  * d/rules: Changed UPSTREAM_GIT protocol to https
+  * d/copyright: Changed source URL to https protocol
+
+  [ Corey Bryant ]
+  * New upstream release.
+  * d/gbp.conf: Update branch for Newton.
+  * d/control: Align (Build-)Depends with upstream.
+
+  [ Thomas Goirand ]
+  * Added Corey Bryant as uploader.
+
+ -- Thomas Goirand <zigo@debian.org>  Fri, 03 Jun 2016 07:24:08 +0000
+
 python-oslo.i18n (3.5.0-2) unstable; urgency=medium
 
   * Uploading to Unstable.
@@ -271,3 +454,4 @@ python-oslo.i18n (0.1.0-1) unstable; urg
   * Initial release. (Closes: #754547)
 
  -- Thomas Goirand <zigo@debian.org>  Sat, 12 Jul 2014 17:09:25 +0800
+
diff -pruN 5.0.1-2/debian/control 5.1.0-0ubuntu1/debian/control
--- 5.0.1-2/debian/control	2020-10-15 21:02:48.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/control	2021-09-07 13:13:15.000000000 +0000
@@ -1,32 +1,35 @@
 Source: python-oslo.i18n
 Section: python
 Priority: optional
-Maintainer: Debian OpenStack <team+openstack@tracker.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: PKG OpenStack <openstack-devel@lists.alioth.debian.org>
 Uploaders:
  Thomas Goirand <zigo@debian.org>,
 Build-Depends:
- debhelper-compat (= 10),
+ debhelper-compat (= 12),
  dh-python,
  openstack-pkg-tools,
  python3-all,
- python3-pbr,
+ python3-pbr (>= 2.0.0),
  python3-setuptools,
- python3-sphinx,
+ python3-sphinx (>= 2.0.0),
 Build-Depends-Indep:
- python3-coverage,
- python3-hacking,
- python3-openstackdocstheme,
- python3-oslo.config,
- python3-oslotest,
- python3-six,
- python3-sphinxcontrib.apidoc,
- python3-stestr,
- python3-testscenarios,
+ python3-babel (>= 2.3.4),
+ python3-coverage (>= 4.0),
+ python3-hacking (>= 1.1.0),
+ python3-mock (>= 2.0.0),
+ python3-openstackdocstheme (>= 2.2.1),
+ python3-oslo.config (>= 1:5.2.0),
+ python3-oslotest (>= 1:3.2.0),
+ python3-six (>= 1.10.0),
+ python3-sphinxcontrib.apidoc (>= 0.2.0),
+ python3-stestr (>= 2.0.0),
+ python3-testscenarios (>= 0.4),
  subunit,
  testrepository,
-Standards-Version: 4.4.1
-Vcs-Browser: https://salsa.debian.org/openstack-team/oslo/python-oslo.i18n
-Vcs-Git: https://salsa.debian.org/openstack-team/oslo/python-oslo.i18n.git
+Standards-Version: 4.5.0
+Vcs-Browser: https://git.launchpad.net/~ubuntu-openstack-dev/ubuntu/+source/python-oslo.i18n
+Vcs-Git: https://git.launchpad.net/~ubuntu-openstack-dev/ubuntu/+source/python-oslo.i18n
 Homepage: https://github.com/openstack/oslo.i18n
 
 Package: python-oslo.i18n-doc
@@ -45,8 +48,9 @@ Description: Oslo Internationalization U
 Package: python3-oslo.i18n
 Architecture: all
 Depends:
- python3-pbr,
- python3-six,
+ python3-babel (>= 2.3.4),
+ python3-pbr (>= 2.0.0),
+ python3-six (>= 1.10.0),
  ${misc:Depends},
  ${python3:Depends},
 Description: Oslo Internationalization Utilities - Python 3.x
diff -pruN 5.0.1-2/debian/gbp.conf 5.1.0-0ubuntu1/debian/gbp.conf
--- 5.0.1-2/debian/gbp.conf	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/gbp.conf	2021-09-07 13:13:15.000000000 +0000
@@ -0,0 +1,7 @@
+[DEFAULT]
+debian-branch = master
+upstream-tag = %(version)s
+pristine-tar = True
+
+[buildpackage]
+export-dir = ../build-area
diff -pruN 5.0.1-2/debian/rules 5.1.0-0ubuntu1/debian/rules
--- 5.0.1-2/debian/rules	2020-10-15 21:02:48.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/rules	2021-09-07 13:13:15.000000000 +0000
@@ -1,10 +1,12 @@
 #!/usr/bin/make -f
 
+export PYBUILD_NAME=oslo_i18n
+
 UPSTREAM_GIT := https://github.com/openstack/oslo.i18n.git
 include /usr/share/openstack-pkg-tools/pkgos.make
 
 %:
-	dh $@ --buildsystem=python_distutils --with python3,sphinxdoc
+	dh $@ --buildsystem=pybuild --with python3,sphinxdoc
 
 override_dh_auto_clean:
 	rm -rf build
@@ -26,5 +28,5 @@ ifeq (,$(findstring nodocs, $(DEB_BUILD_
 		cat /tmp/sphinx-err-* ; \
 		exit 1 ; \
 	fi
-	dh_sphinxdoc -O--buildsystem=python_distutils
+	dh_sphinxdoc -O--buildsystem=pybuild
 endif
diff -pruN 5.0.1-2/debian/salsa-ci.yml 5.1.0-0ubuntu1/debian/salsa-ci.yml
--- 5.0.1-2/debian/salsa-ci.yml	2020-10-15 21:02:48.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/salsa-ci.yml	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-include:
-  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
-  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
diff -pruN 5.0.1-2/debian/watch 5.1.0-0ubuntu1/debian/watch
--- 5.0.1-2/debian/watch	2020-10-15 21:02:48.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/watch	2021-09-07 13:13:15.000000000 +0000
@@ -1,3 +1,3 @@
 version=3
-opts="uversionmangle=s/\.0rc/~rc/;s/\.0b1/~b1/;s/\.0b2/~b2/;s/\.0b3/~b3/" \
-https://github.com/openstack/oslo.i18n/tags .*/(\d[brc\d\.]+)\.tar\.gz
+opts="uversionmangle=s/\.(b|rc)/~$1/" \
+    http://tarballs.openstack.org/oslo.i18n/ oslo.i18n-(\d.*)\.tar\.gz
diff -pruN 5.0.1-2/doc/source/conf.py 5.1.0-0ubuntu1/doc/source/conf.py
--- 5.0.1-2/doc/source/conf.py	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/doc/source/conf.py	2021-09-06 08:27:12.000000000 +0000
@@ -1,4 +1,6 @@
 # -*- coding: utf-8 -*-
+# Copyright (C) 2020 Red Hat, Inc.
+#
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
diff -pruN 5.0.1-2/.gitignore 5.1.0-0ubuntu1/.gitignore
--- 5.0.1-2/.gitignore	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/.gitignore	1970-01-01 00:00:00.000000000 +0000
@@ -1,37 +0,0 @@
-# Add patterns in here to exclude files created by tools integrated with this
-# repository, such as test frameworks from the project's recommended workflow,
-# rendered documentation and package builds.
-#
-# Don't add patterns to exclude files created by preferred personal tools
-# (editors, IDEs, your operating system itself even). These should instead be
-# maintained outside the repository, for example in a ~/.gitignore file added
-# with:
-#
-# git config --global core.excludesfile '~/.gitignore'
-
-*.pyc
-.eggs/
-*.log
-.coverage
-.venv
-.tox
-cover/
-oslo.i18n.egg-info/
-.openstack-common-venv/
-skeleton.egg-info/
-build/
-dist/
-doc/source/reference/api
-AUTHORS
-.update-venv/
-ChangeLog
-openstack/versioninfo
-*.egg
-openstack/common/db/*.sqlite
-.stestr/
-etc/openstack.conf.sample
-
-# reno build
-releasenotes/build
-releasenotes/notes/reno.cache
-RELEASENOTES.rst
diff -pruN 5.0.1-2/.gitreview 5.1.0-0ubuntu1/.gitreview
--- 5.0.1-2/.gitreview	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/.gitreview	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-[gerrit]
-host=review.opendev.org
-port=29418
-project=openstack/oslo.i18n.git
diff -pruN 5.0.1-2/lower-constraints.txt 5.1.0-0ubuntu1/lower-constraints.txt
--- 5.0.1-2/lower-constraints.txt	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/lower-constraints.txt	1970-01-01 00:00:00.000000000 +0000
@@ -1,45 +0,0 @@
-alabaster==0.7.10
-appdirs==1.3.0
-bandit==1.4.0
-coverage==4.0
-debtcollector==1.2.0
-docutils==0.11
-dulwich==0.15.0
-extras==1.0.0
-fixtures==3.0.0
-gitdb==0.6.4
-GitPython==1.0.1
-imagesize==0.7.1
-iso8601==0.1.11
-Jinja2==2.10
-keystoneauth1==3.4.0
-linecache2==1.0.0
-MarkupSafe==1.0
-mox3==0.20.0
-netaddr==0.7.18
-openstackdocstheme==2.2.1
-os-client-config==1.28.0
-oslo.config==5.2.0
-oslotest==3.2.0
-pbr==2.0.0
-Pygments==2.2.0
-python-mimeparse==1.6.0
-python-subunit==1.0.0
-pytz==2013.6
-PyYAML==3.12
-reno==3.1.0
-requests==2.14.2
-requestsexceptions==1.2.0
-rfc3986==0.3.1
-six==1.10.0
-smmap==0.9.0
-snowballstemmer==1.2.1
-Sphinx==2.0.0
-sphinxcontrib-websupport==1.0.1
-stestr==2.0.0
-stevedore==1.20.0
-testscenarios==0.4
-testtools==2.2.0
-traceback2==1.4.0
-unittest2==1.1.0
-wrapt==1.7.0
diff -pruN 5.0.1-2/oslo_i18n/_factory.py 5.1.0-0ubuntu1/oslo_i18n/_factory.py
--- 5.0.1-2/oslo_i18n/_factory.py	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo_i18n/_factory.py	2021-09-06 08:27:12.000000000 +0000
@@ -19,8 +19,6 @@
 import gettext
 import os
 
-import six
-
 from oslo_i18n import _lazy
 from oslo_i18n import _locale
 from oslo_i18n import _message
@@ -75,7 +73,7 @@ class TranslatorFactory(object):
                                 fallback=True)
         # Use the appropriate method of the translation object based
         # on the python version.
-        m = t.gettext if six.PY3 else t.ugettext
+        m = t.gettext
 
         def f(msg):
             """oslo_i18n.gettextutils translation function."""
@@ -103,7 +101,7 @@ class TranslatorFactory(object):
                                 fallback=True)
         # Use the appropriate method of the translation object based
         # on the python version.
-        m = t.gettext if six.PY3 else t.ugettext
+        m = t.gettext
 
         def f(ctx, msg):
             """oslo.i18n.gettextutils translation with context function."""
@@ -140,7 +138,7 @@ class TranslatorFactory(object):
                                 fallback=True)
         # Use the appropriate method of the translation object based
         # on the python version.
-        m = t.ngettext if six.PY3 else t.ungettext
+        m = t.ngettext
 
         def f(msgsingle, msgplural, msgcount):
             """oslo.i18n.gettextutils plural translation function."""
diff -pruN 5.0.1-2/oslo_i18n/fixture.py 5.1.0-0ubuntu1/oslo_i18n/fixture.py
--- 5.0.1-2/oslo_i18n/fixture.py	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo_i18n/fixture.py	2021-09-06 08:27:12.000000000 +0000
@@ -16,7 +16,6 @@
 import gettext
 
 import fixtures
-import six
 
 from oslo_i18n import _lazy
 from oslo_i18n import _message
@@ -65,7 +64,7 @@ class Translation(fixtures.Fixture):
         :type msg: str or unicode
 
         """
-        return six.text_type(msg)
+        return str(msg)
 
 
 class ToggleLazy(fixtures.Fixture):
diff -pruN 5.0.1-2/oslo_i18n/_gettextutils.py 5.1.0-0ubuntu1/oslo_i18n/_gettextutils.py
--- 5.0.1-2/oslo_i18n/_gettextutils.py	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo_i18n/_gettextutils.py	2021-09-06 08:27:12.000000000 +0000
@@ -44,9 +44,9 @@ def install(domain):
 
     :param domain: the translation domain
     """
-    from six import moves
+    import builtins
     tf = _factory.TranslatorFactory(domain)
-    moves.builtins.__dict__['_'] = tf.primary
+    builtins.__dict__['_'] = tf.primary
 
 
 _AVAILABLE_LANGUAGES = {}
diff -pruN 5.0.1-2/oslo_i18n/_message.py 5.1.0-0ubuntu1/oslo_i18n/_message.py
--- 5.0.1-2/oslo_i18n/_message.py	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo_i18n/_message.py	2021-09-06 08:27:12.000000000 +0000
@@ -23,8 +23,6 @@ import logging
 import os
 import warnings
 
-import six
-
 from oslo_i18n import _locale
 from oslo_i18n import _translate
 
@@ -35,7 +33,7 @@ CONTEXT_SEPARATOR = "\x04"
 LOG = logging.getLogger(__name__)
 
 
-class Message(six.text_type):
+class Message(str):
     """A Message object is a unicode object that can be translated.
 
     Translation of Message is done explicitly using the translate() method.
@@ -117,7 +115,7 @@ class Message(six.text_type):
 
         if not has_contextual_form and not has_plural_form:
             # This is the most common case, so check it first.
-            translator = lang.gettext if six.PY3 else lang.ugettext
+            translator = lang.gettext
             translated_message = translator(msgid)
 
         elif has_contextual_form and has_plural_form:
@@ -127,7 +125,7 @@ class Message(six.text_type):
 
         elif has_contextual_form:
             (msgctx, msgtxt) = msgid
-            translator = lang.gettext if six.PY3 else lang.ugettext
+            translator = lang.gettext
 
             msg_with_ctx = "%s%s%s" % (msgctx, CONTEXT_SEPARATOR, msgtxt)
             translated_message = translator(msg_with_ctx)
@@ -138,7 +136,7 @@ class Message(six.text_type):
 
         elif has_plural_form:
             (msgsingle, msgplural, msgcount) = msgid
-            translator = lang.ngettext if six.PY3 else lang.ungettext
+            translator = lang.ngettext
             translated_message = translator(msgsingle, msgplural, msgcount)
 
         return translated_message
@@ -184,7 +182,7 @@ class Message(six.text_type):
         # by the base class (i.e. unicode()), the only thing  we do here is
         # save the original msgid and the parameters in case of a translation
         params = self._sanitize_mod_params(other)
-        unicode_mod = self._safe_translate(six.text_type(self), params)
+        unicode_mod = self._safe_translate(str(self), params)
         modded = Message(self.msgid,
                          msgtext=unicode_mod,
                          params=params,
@@ -221,7 +219,7 @@ class Message(six.text_type):
         except Exception:
             # Fallback to casting to unicode this will handle the
             # python code-like objects that can't be deep-copied
-            return six.text_type(param)
+            return str(param)
 
     def __add__(self, other):
         from oslo_i18n._i18n import _
diff -pruN 5.0.1-2/oslo_i18n/tests/test_factory.py 5.1.0-0ubuntu1/oslo_i18n/tests/test_factory.py
--- 5.0.1-2/oslo_i18n/tests/test_factory.py	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo_i18n/tests/test_factory.py	2021-09-06 08:27:12.000000000 +0000
@@ -17,7 +17,6 @@
 from unittest import mock
 
 from oslotest import base as test_base
-import six
 
 from oslo_i18n import _factory
 from oslo_i18n import _lazy
@@ -62,48 +61,9 @@ class TranslatorFactoryTest(test_base.Ba
         r = tf.primary('some text')
         self.assertNotIsInstance(r, _message.Message)
 
-    def test_py3(self):
-        _lazy.enable_lazy(False)
-        with mock.patch.object(six, 'PY3', True):
-            with mock.patch('gettext.translation') as translation:
-                trans = mock.Mock()
-                translation.return_value = trans
-                trans.ugettext.side_effect = AssertionError(
-                    'should have called gettext')
-                tf = _factory.TranslatorFactory('domain')
-                tf.primary('some text')
-                trans.gettext.assert_called_with('some text')
-
     def test_log_level_domain_name(self):
         with mock.patch.object(_factory.TranslatorFactory,
                                '_make_translation_func') as mtf:
             tf = _factory.TranslatorFactory('domain')
             tf._make_log_translation_func('mylevel')
             mtf.assert_called_with('domain-log-mylevel')
-
-    def test_contextual_form_py3(self):
-        _lazy.enable_lazy(False)
-        with mock.patch.object(six, 'PY3', True):
-            with mock.patch('gettext.translation') as translation:
-                trans = mock.Mock()
-                translation.return_value = trans
-                trans.ugettext.side_effect = AssertionError(
-                    'should have called gettext')
-                trans.gettext.return_value = "some text"
-                tf = _factory.TranslatorFactory('domain')
-                tf.contextual_form('context', 'some text')
-                trans.gettext.assert_called_with(
-                    "%s%s%s" % ('context', CONTEXT_SEPARATOR, 'some text'))
-
-    def test_plural_form_py3(self):
-        _lazy.enable_lazy(False)
-        with mock.patch.object(six, 'PY3', True):
-            with mock.patch('gettext.translation') as translation:
-                trans = mock.Mock()
-                translation.return_value = trans
-                trans.ungettext.side_effect = AssertionError(
-                    'should have called ngettext')
-                tf = _factory.TranslatorFactory('domain')
-                tf.plural_form('single', 'plural', 1)
-                trans.ngettext.assert_called_with(
-                    'single', 'plural', 1)
diff -pruN 5.0.1-2/oslo_i18n/tests/test_fixture.py 5.1.0-0ubuntu1/oslo_i18n/tests/test_fixture.py
--- 5.0.1-2/oslo_i18n/tests/test_fixture.py	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo_i18n/tests/test_fixture.py	2021-09-06 08:27:12.000000000 +0000
@@ -13,7 +13,6 @@
 #    under the License.
 
 from oslotest import base as test_base
-import six
 
 import oslo_i18n
 from oslo_i18n import _gettextutils
@@ -38,7 +37,7 @@ class TranslationFixtureTest(test_base.B
     def test_immediate(self):
         msg = self.trans_fixture.immediate('this is a lazy message')
         self.assertNotIsInstance(msg, _message.Message)
-        self.assertIsInstance(msg, six.text_type)
+        self.assertIsInstance(msg, str)
         self.assertEqual(u'this is a lazy message', msg)
 
 
diff -pruN 5.0.1-2/oslo_i18n/tests/test_gettextutils.py 5.1.0-0ubuntu1/oslo_i18n/tests/test_gettextutils.py
--- 5.0.1-2/oslo_i18n/tests/test_gettextutils.py	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo_i18n/tests/test_gettextutils.py	2021-09-06 08:27:12.000000000 +0000
@@ -14,12 +14,12 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+import builtins
 import gettext
 import logging
 from unittest import mock
 
 from oslotest import base as test_base
-import six
 
 from oslo_i18n import _factory
 from oslo_i18n import _gettextutils
@@ -49,8 +49,7 @@ class GettextTest(test_base.BaseTestCase
     def test__gettextutils_install(self):
         _gettextutils.install('blaa')
         _lazy.enable_lazy(False)
-        self.assertTrue(isinstance(self.t.primary('A String'),
-                                   six.text_type))
+        self.assertTrue(isinstance(self.t.primary('A String'), str))
 
         _gettextutils.install('blaa')
         _lazy.enable_lazy(True)
@@ -68,10 +67,10 @@ class GettextTest(test_base.BaseTestCase
         with mock.patch('os.environ.get') as environ_get:
             with mock.patch('gettext.install'):
                 environ_get.return_value = '/foo/bar'
-                if '_' in six.moves.builtins.__dict__:
-                    del six.moves.builtins.__dict__['_']
+                if '_' in builtins.__dict__:
+                    del builtins.__dict__['_']
                 _gettextutils.install('blaa')
-                self.assertIn('_', six.moves.builtins.__dict__)
+                self.assertIn('_', builtins.__dict__)
 
     def test_get_available_languages(self):
         # Only the languages available for a specific translation domain
diff -pruN 5.0.1-2/oslo_i18n/tests/test_handler.py 5.1.0-0ubuntu1/oslo_i18n/tests/test_handler.py
--- 5.0.1-2/oslo_i18n/tests/test_handler.py	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo_i18n/tests/test_handler.py	2021-09-06 08:27:12.000000000 +0000
@@ -14,11 +14,11 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+import io
 import logging
 from unittest import mock
 
 from oslotest import base as test_base
-import six
 
 from oslo_i18n import _message
 from oslo_i18n import log as i18n_log
@@ -32,7 +32,7 @@ class TranslationHandlerTestCase(test_ba
     def setUp(self):
         super(TranslationHandlerTestCase, self).setUp()
 
-        self.stream = six.StringIO()
+        self.stream = io.StringIO()
         self.destination_handler = logging.StreamHandler(self.stream)
         self.translation_handler = i18n_log.TranslationHandler('zh_CN')
         self.translation_handler.setTarget(self.destination_handler)
diff -pruN 5.0.1-2/oslo_i18n/tests/test_message.py 5.1.0-0ubuntu1/oslo_i18n/tests/test_message.py
--- 5.0.1-2/oslo_i18n/tests/test_message.py	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo_i18n/tests/test_message.py	2021-09-06 08:27:12.000000000 +0000
@@ -19,7 +19,6 @@ from unittest import mock
 import warnings
 
 from oslotest import base as test_base
-import six
 import testtools
 
 from oslo_i18n import _message
@@ -42,7 +41,7 @@ class MessageTestCase(test_base.BaseTest
 
     def test_message_is_unicode(self):
         message = _message.Message('some %s') % 'message'
-        self.assertIsInstance(message, six.text_type)
+        self.assertIsInstance(message, str)
 
     @mock.patch('locale.getdefaultlocale')
     @mock.patch('gettext.translation')
@@ -67,7 +66,7 @@ class MessageTestCase(test_base.BaseTest
 
     def test_translation_returns_unicode(self):
         message = _message.Message('some %s') % 'message'
-        self.assertIsInstance(message.translation(), six.text_type)
+        self.assertIsInstance(message.translation(), str)
 
     def test_mod_with_named_parameters(self):
         msgid = ("%(description)s\nCommand: %(cmd)s\n"
@@ -168,10 +167,7 @@ class MessageTestCase(test_base.BaseTest
             # Now set up ugettext to return the translated version of
             # the original message, with a bad format string.
             wrong_type = u'Wrong type %(arg1)d'
-            if six.PY3:
-                trans.return_value.gettext.return_value = wrong_type
-            else:
-                trans.return_value.ugettext.return_value = wrong_type
+            trans.return_value.gettext.return_value = wrong_type
             trans_result = result.translation()
             expected = msgid % params
             self.assertEqual(expected, trans_result)
@@ -327,7 +323,7 @@ class MessageTestCase(test_base.BaseTest
         # Here we are not testing the Message object directly but the result
         # of unicoding() an object whose unicode representation is a Message
         obj = utils.SomeObject(message)
-        unicoded_obj = six.text_type(obj)
+        unicoded_obj = str(obj)
 
         self.assertEqual(es_translation, unicoded_obj.translation('es'))
 
@@ -494,7 +490,7 @@ class MessageTestCase(test_base.BaseTest
         expected_translation = es_translation % param
 
         obj = utils.SomeObject(msg)
-        unicoded_obj = six.text_type(obj)
+        unicoded_obj = str(obj)
 
         self.assertEqual(expected_translation, unicoded_obj.translation('es'))
         self.assertEqual(default_translation, unicoded_obj.translation('XX'))
diff -pruN 5.0.1-2/oslo_i18n/tests/test_public_api.py 5.1.0-0ubuntu1/oslo_i18n/tests/test_public_api.py
--- 5.0.1-2/oslo_i18n/tests/test_public_api.py	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo_i18n/tests/test_public_api.py	2021-09-06 08:27:12.000000000 +0000
@@ -12,7 +12,6 @@
 """A few tests that use the public API to ensure the imports work."""
 
 import unittest
-from unittest import mock
 
 import oslo_i18n
 from oslo_i18n import _lazy
@@ -24,8 +23,7 @@ class PublicAPITest(unittest.TestCase):
         oslo_i18n.TranslatorFactory('domain')
 
     def test_install(self):
-        with mock.patch('six.moves.builtins'):
-            oslo_i18n.install('domain')
+        oslo_i18n.install('domain')
 
     def test_get_available_languages(self):
         oslo_i18n.get_available_languages('domains')
diff -pruN 5.0.1-2/oslo_i18n/tests/utils.py 5.1.0-0ubuntu1/oslo_i18n/tests/utils.py
--- 5.0.1-2/oslo_i18n/tests/utils.py	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo_i18n/tests/utils.py	2021-09-06 08:27:12.000000000 +0000
@@ -12,18 +12,14 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-import six
-
 
 class SomeObject(object):
 
     def __init__(self, message):
         self.message = message
 
-    def __unicode__(self):
+    def __str__(self):
         return self.message
-    # alias for Python 3
-    __str__ = __unicode__
 
 
 class NoDeepCopyObject(object):
@@ -31,12 +27,8 @@ class NoDeepCopyObject(object):
     def __init__(self, value):
         self.value = value
 
-    if six.PY3:
-        def __str__(self):
-            return str(self.value)
-    else:
-        def __unicode__(self):
-            return six.text_type(self.value)
+    def __str__(self):
+        return str(self.value)
 
     def __deepcopy__(self, memo):
         raise TypeError('Deep Copy not supported')
diff -pruN 5.0.1-2/oslo_i18n/_translate.py 5.1.0-0ubuntu1/oslo_i18n/_translate.py
--- 5.0.1-2/oslo_i18n/_translate.py	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo_i18n/_translate.py	2021-09-06 08:27:12.000000000 +0000
@@ -14,8 +14,6 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-import six
-
 __all__ = [
     'translate',
 ]
@@ -41,7 +39,7 @@ def translate(obj, desired_locale=None):
     if not isinstance(message, _message.Message):
         # If the object to translate is not already translatable,
         # let's first get its unicode representation
-        message = six.text_type(obj)
+        message = str(obj)
     if isinstance(message, _message.Message):
         # Even after unicoding() we still need to check if we are
         # running with translatable unicode before translating
diff -pruN 5.0.1-2/oslo.i18n.egg-info/dependency_links.txt 5.1.0-0ubuntu1/oslo.i18n.egg-info/dependency_links.txt
--- 5.0.1-2/oslo.i18n.egg-info/dependency_links.txt	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo.i18n.egg-info/dependency_links.txt	2021-09-06 08:27:46.000000000 +0000
@@ -0,0 +1 @@
+
diff -pruN 5.0.1-2/oslo.i18n.egg-info/not-zip-safe 5.1.0-0ubuntu1/oslo.i18n.egg-info/not-zip-safe
--- 5.0.1-2/oslo.i18n.egg-info/not-zip-safe	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo.i18n.egg-info/not-zip-safe	2021-09-06 08:27:46.000000000 +0000
@@ -0,0 +1 @@
+
diff -pruN 5.0.1-2/oslo.i18n.egg-info/pbr.json 5.1.0-0ubuntu1/oslo.i18n.egg-info/pbr.json
--- 5.0.1-2/oslo.i18n.egg-info/pbr.json	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo.i18n.egg-info/pbr.json	2021-09-06 08:27:46.000000000 +0000
@@ -0,0 +1 @@
+{"git_version": "b031d17", "is_release": true}
\ No newline at end of file
diff -pruN 5.0.1-2/oslo.i18n.egg-info/PKG-INFO 5.1.0-0ubuntu1/oslo.i18n.egg-info/PKG-INFO
--- 5.0.1-2/oslo.i18n.egg-info/PKG-INFO	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo.i18n.egg-info/PKG-INFO	2021-09-06 08:27:46.000000000 +0000
@@ -0,0 +1,54 @@
+Metadata-Version: 1.2
+Name: oslo.i18n
+Version: 5.1.0
+Summary: Oslo i18n library
+Home-page: https://docs.openstack.org/oslo.i18n/latest
+Author: OpenStack
+Author-email: openstack-discuss@lists.openstack.org
+License: UNKNOWN
+Description: ========================
+        Team and repository tags
+        ========================
+        
+        .. image:: https://governance.openstack.org/tc/badges/oslo.i18n.svg
+            :target: https://governance.openstack.org/tc/reference/tags/index.html
+        
+        .. Change things from this point on
+        
+        ==================================================
+         oslo.i18n -- Oslo Internationalization Utilities
+        ==================================================
+        
+        .. image:: https://img.shields.io/pypi/v/oslo.i18n.svg
+            :target: https://pypi.org/project/oslo.i18n/
+            :alt: Latest Version
+        
+        .. image:: https://img.shields.io/pypi/dm/oslo.i18n.svg
+            :target: https://pypi.org/project/oslo.i18n/
+            :alt: Downloads
+        
+        The oslo.i18n library contain utilities for working with
+        internationalization (i18n) features, especially translation for text
+        strings in an application or library.
+        
+        * Free software: Apache license
+        * Documentation: https://docs.openstack.org/oslo.i18n/latest
+        * Source: https://opendev.org/openstack/oslo.i18n
+        * Bugs: https://bugs.launchpad.net/oslo.i18n
+        * Release notes:  https://docs.openstack.org/releasenotes/oslo.i18n/
+        
+        
+Platform: UNKNOWN
+Classifier: Environment :: OpenStack
+Classifier: Intended Audience :: Information Technology
+Classifier: Intended Audience :: System Administrators
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Requires-Python: >=3.6
diff -pruN 5.0.1-2/oslo.i18n.egg-info/requires.txt 5.1.0-0ubuntu1/oslo.i18n.egg-info/requires.txt
--- 5.0.1-2/oslo.i18n.egg-info/requires.txt	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo.i18n.egg-info/requires.txt	2021-09-06 08:27:46.000000000 +0000
@@ -0,0 +1 @@
+pbr!=2.1.0,>=2.0.0
diff -pruN 5.0.1-2/oslo.i18n.egg-info/SOURCES.txt 5.1.0-0ubuntu1/oslo.i18n.egg-info/SOURCES.txt
--- 5.0.1-2/oslo.i18n.egg-info/SOURCES.txt	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo.i18n.egg-info/SOURCES.txt	2021-09-06 08:27:47.000000000 +0000
@@ -0,0 +1,84 @@
+.coveragerc
+.mailmap
+.pre-commit-config.yaml
+.stestr.conf
+.zuul.yaml
+AUTHORS
+CONTRIBUTING.rst
+ChangeLog
+HACKING.rst
+LICENSE
+README.rst
+requirements.txt
+setup.cfg
+setup.py
+test-requirements.txt
+tox.ini
+doc/requirements.txt
+doc/source/conf.py
+doc/source/index.rst
+doc/source/contributor/contributing.rst
+doc/source/contributor/index.rst
+doc/source/contributor/policy.rst
+doc/source/reference/index.rst
+doc/source/user/guidelines.rst
+doc/source/user/history.rst
+doc/source/user/index.rst
+doc/source/user/usage.rst
+oslo.i18n.egg-info/PKG-INFO
+oslo.i18n.egg-info/SOURCES.txt
+oslo.i18n.egg-info/dependency_links.txt
+oslo.i18n.egg-info/not-zip-safe
+oslo.i18n.egg-info/pbr.json
+oslo.i18n.egg-info/requires.txt
+oslo.i18n.egg-info/top_level.txt
+oslo_i18n/__init__.py
+oslo_i18n/_factory.py
+oslo_i18n/_gettextutils.py
+oslo_i18n/_i18n.py
+oslo_i18n/_lazy.py
+oslo_i18n/_locale.py
+oslo_i18n/_message.py
+oslo_i18n/_translate.py
+oslo_i18n/fixture.py
+oslo_i18n/log.py
+oslo_i18n/locale/de/LC_MESSAGES/oslo_i18n.po
+oslo_i18n/locale/en_GB/LC_MESSAGES/oslo_i18n.po
+oslo_i18n/locale/es/LC_MESSAGES/oslo_i18n.po
+oslo_i18n/locale/fr/LC_MESSAGES/oslo_i18n.po
+oslo_i18n/locale/it/LC_MESSAGES/oslo_i18n.po
+oslo_i18n/locale/ja/LC_MESSAGES/oslo_i18n.po
+oslo_i18n/locale/ko_KR/LC_MESSAGES/oslo_i18n.po
+oslo_i18n/locale/pl_PL/LC_MESSAGES/oslo_i18n.po
+oslo_i18n/locale/pt/LC_MESSAGES/oslo_i18n.po
+oslo_i18n/locale/zh_CN/LC_MESSAGES/oslo_i18n.po
+oslo_i18n/tests/__init__.py
+oslo_i18n/tests/fakes.py
+oslo_i18n/tests/test_factory.py
+oslo_i18n/tests/test_fixture.py
+oslo_i18n/tests/test_gettextutils.py
+oslo_i18n/tests/test_handler.py
+oslo_i18n/tests/test_lazy.py
+oslo_i18n/tests/test_locale_dir_variable.py
+oslo_i18n/tests/test_logging.py
+oslo_i18n/tests/test_message.py
+oslo_i18n/tests/test_public_api.py
+oslo_i18n/tests/test_translate.py
+oslo_i18n/tests/utils.py
+releasenotes/notes/add-reno-996dd44974d53238.yaml
+releasenotes/notes/drop-python27-support-eb9c2ad3268f0c1f.yaml
+releasenotes/source/conf.py
+releasenotes/source/index.rst
+releasenotes/source/ocata.rst
+releasenotes/source/pike.rst
+releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
+releasenotes/source/stein.rst
+releasenotes/source/train.rst
+releasenotes/source/unreleased.rst
+releasenotes/source/ussuri.rst
+releasenotes/source/victoria.rst
+releasenotes/source/_static/.placeholder
+releasenotes/source/_templates/.placeholder
+releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
+releasenotes/source/locale/ko_KR/LC_MESSAGES/releasenotes.po
\ No newline at end of file
diff -pruN 5.0.1-2/oslo.i18n.egg-info/top_level.txt 5.1.0-0ubuntu1/oslo.i18n.egg-info/top_level.txt
--- 5.0.1-2/oslo.i18n.egg-info/top_level.txt	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/oslo.i18n.egg-info/top_level.txt	2021-09-06 08:27:46.000000000 +0000
@@ -0,0 +1 @@
+oslo_i18n
diff -pruN 5.0.1-2/PKG-INFO 5.1.0-0ubuntu1/PKG-INFO
--- 5.0.1-2/PKG-INFO	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/PKG-INFO	2021-09-06 08:27:47.058373700 +0000
@@ -0,0 +1,54 @@
+Metadata-Version: 1.2
+Name: oslo.i18n
+Version: 5.1.0
+Summary: Oslo i18n library
+Home-page: https://docs.openstack.org/oslo.i18n/latest
+Author: OpenStack
+Author-email: openstack-discuss@lists.openstack.org
+License: UNKNOWN
+Description: ========================
+        Team and repository tags
+        ========================
+        
+        .. image:: https://governance.openstack.org/tc/badges/oslo.i18n.svg
+            :target: https://governance.openstack.org/tc/reference/tags/index.html
+        
+        .. Change things from this point on
+        
+        ==================================================
+         oslo.i18n -- Oslo Internationalization Utilities
+        ==================================================
+        
+        .. image:: https://img.shields.io/pypi/v/oslo.i18n.svg
+            :target: https://pypi.org/project/oslo.i18n/
+            :alt: Latest Version
+        
+        .. image:: https://img.shields.io/pypi/dm/oslo.i18n.svg
+            :target: https://pypi.org/project/oslo.i18n/
+            :alt: Downloads
+        
+        The oslo.i18n library contain utilities for working with
+        internationalization (i18n) features, especially translation for text
+        strings in an application or library.
+        
+        * Free software: Apache license
+        * Documentation: https://docs.openstack.org/oslo.i18n/latest
+        * Source: https://opendev.org/openstack/oslo.i18n
+        * Bugs: https://bugs.launchpad.net/oslo.i18n
+        * Release notes:  https://docs.openstack.org/releasenotes/oslo.i18n/
+        
+        
+Platform: UNKNOWN
+Classifier: Environment :: OpenStack
+Classifier: Intended Audience :: Information Technology
+Classifier: Intended Audience :: System Administrators
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Requires-Python: >=3.6
diff -pruN 5.0.1-2/.pre-commit-config.yaml 5.1.0-0ubuntu1/.pre-commit-config.yaml
--- 5.0.1-2/.pre-commit-config.yaml	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/.pre-commit-config.yaml	2021-09-06 08:27:12.000000000 +0000
@@ -0,0 +1,39 @@
+# We from the Oslo project decided to pin repos based on the
+# commit hash instead of the version tag to prevend arbitrary
+# code from running in developer's machines.  To update to a
+# newer version, run `pre-commit autoupdate` and then replace
+# the newer versions with their commit hash.
+
+default_language_version:
+  python: python3
+
+repos:
+  - repo: https://github.com/pre-commit/pre-commit-hooks
+    rev: 9136088a246768144165fcc3ecc3d31bb686920a # v3.3.0
+    hooks:
+      - id: trailing-whitespace
+      # Replaces or checks mixed line ending
+      - id: mixed-line-ending
+        args: ['--fix', 'lf']
+        exclude: '.*\.(svg)$'
+      # Forbid files which have a UTF-8 byte-order marker
+      - id: check-byte-order-marker
+      # Checks that non-binary executables have a proper shebang
+      - id: check-executables-have-shebangs
+      # Check for files that contain merge conflict strings.
+      - id: check-merge-conflict
+      # Check for debugger imports and py37+ breakpoint()
+      # calls in python source
+      - id: debug-statements
+      - id: check-yaml
+        files: .*\.(yaml|yml)$
+  - repo: local
+    hooks:
+      - id: flake8
+        name: flake8
+        additional_dependencies:
+          - hacking>=3.0.1,<3.1.0
+        language: python
+        entry: flake8
+        files: '^.*\.py$'
+        exclude: '^(doc|releasenotes|tools)/.*$'
diff -pruN 5.0.1-2/releasenotes/source/index.rst 5.1.0-0ubuntu1/releasenotes/source/index.rst
--- 5.0.1-2/releasenotes/source/index.rst	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/releasenotes/source/index.rst	2021-09-06 08:27:12.000000000 +0000
@@ -6,6 +6,7 @@
     :maxdepth: 1
 
     unreleased
+    victoria
     ussuri
     train
     stein
diff -pruN 5.0.1-2/releasenotes/source/victoria.rst 5.1.0-0ubuntu1/releasenotes/source/victoria.rst
--- 5.0.1-2/releasenotes/source/victoria.rst	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/releasenotes/source/victoria.rst	2021-09-06 08:27:12.000000000 +0000
@@ -0,0 +1,6 @@
+=============================
+Victoria Series Release Notes
+=============================
+
+.. release-notes::
+   :branch: stable/victoria
diff -pruN 5.0.1-2/requirements.txt 5.1.0-0ubuntu1/requirements.txt
--- 5.0.1-2/requirements.txt	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/requirements.txt	2021-09-06 08:27:12.000000000 +0000
@@ -3,4 +3,3 @@
 # process, which may cause wedges in the gate later.
 
 pbr!=2.1.0,>=2.0.0 # Apache-2.0
-six>=1.10.0 # MIT
diff -pruN 5.0.1-2/setup.cfg 5.1.0-0ubuntu1/setup.cfg
--- 5.0.1-2/setup.cfg	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/setup.cfg	2021-09-06 08:27:47.058373700 +0000
@@ -1,27 +1,31 @@
 [metadata]
 name = oslo.i18n
 summary = Oslo i18n library
-description-file =
-    README.rst
+description-file = 
+	README.rst
 author = OpenStack
 author-email = openstack-discuss@lists.openstack.org
 home-page = https://docs.openstack.org/oslo.i18n/latest
 python-requires = >=3.6
-classifier =
-    Environment :: OpenStack
-    Intended Audience :: Information Technology
-    Intended Audience :: System Administrators
-    License :: OSI Approved :: Apache Software License
-    Operating System :: POSIX :: Linux
-    Programming Language :: Python
-    Programming Language :: Python :: 3
-    Programming Language :: Python :: 3.6
-    Programming Language :: Python :: 3.7
-    Programming Language :: Python :: 3.8
-    Programming Language :: Python :: 3 :: Only
-    Programming Language :: Python :: Implementation :: CPython
-
+classifier = 
+	Environment :: OpenStack
+	Intended Audience :: Information Technology
+	Intended Audience :: System Administrators
+	License :: OSI Approved :: Apache Software License
+	Operating System :: POSIX :: Linux
+	Programming Language :: Python
+	Programming Language :: Python :: 3
+	Programming Language :: Python :: 3.6
+	Programming Language :: Python :: 3.7
+	Programming Language :: Python :: 3.8
+	Programming Language :: Python :: 3 :: Only
+	Programming Language :: Python :: Implementation :: CPython
 
 [files]
-packages =
-    oslo_i18n
+packages = 
+	oslo_i18n
+
+[egg_info]
+tag_build = 
+tag_date = 0
+
diff -pruN 5.0.1-2/test-requirements.txt 5.1.0-0ubuntu1/test-requirements.txt
--- 5.0.1-2/test-requirements.txt	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/test-requirements.txt	2021-09-06 08:27:12.000000000 +0000
@@ -1,7 +1,7 @@
 # The order of packages is significant, because pip processes them in the order
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
-hacking>=3.0,<3.1.0 # Apache-2.0
+hacking>=3.0.1,<3.1.0 # Apache-2.0
 stestr>=2.0.0 # Apache-2.0
 
 oslotest>=3.2.0 # Apache-2.0
@@ -13,3 +13,5 @@ oslo.config>=5.2.0 # Apache-2.0
 
 # Bandit security code scanner
 bandit>=1.6.0,<1.7.0 # Apache-2.0
+
+pre-commit>=2.6.0 # MIT
diff -pruN 5.0.1-2/tox.ini 5.1.0-0ubuntu1/tox.ini
--- 5.0.1-2/tox.ini	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/tox.ini	2021-09-06 08:27:12.000000000 +0000
@@ -1,12 +1,12 @@
 [tox]
-minversion = 3.1.1
-envlist = py38,pep8
+minversion = 3.18.0
+envlist = py3,pep8
 ignore_basepython_conflict = true
 
 [testenv]
 basepython = python3
 deps =
-  -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+  -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
   -r{toxinidir}/test-requirements.txt
   -r{toxinidir}/requirements.txt
 commands = stestr run --slowest {posargs}
@@ -15,7 +15,7 @@ commands = stestr run --slowest {posargs
 deps =
   -r{toxinidir}/test-requirements.txt
 commands =
-  flake8
+  pre-commit run -a
   # Run security linter
   bandit -r oslo_i18n -x tests -n5
 
@@ -23,7 +23,7 @@ commands =
 commands = {posargs}
 
 [testenv:docs]
-whitelist_externals =
+allowlist_externals =
   rm
 deps =
   {[testenv]deps}
@@ -62,14 +62,8 @@ import_exceptions =
 whitelist_externals =
   rm
 deps =
-  -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+  -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
   -r{toxinidir}/doc/requirements.txt
 commands =
   rm -rf releasenotes/build
   sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html
-
-[testenv:lower-constraints]
-deps =
-  -c{toxinidir}/lower-constraints.txt
-  -r{toxinidir}/test-requirements.txt
-  -r{toxinidir}/requirements.txt
diff -pruN 5.0.1-2/.zuul.yaml 5.1.0-0ubuntu1/.zuul.yaml
--- 5.0.1-2/.zuul.yaml	2020-07-24 15:33:21.000000000 +0000
+++ 5.1.0-0ubuntu1/.zuul.yaml	2021-09-06 08:27:12.000000000 +0000
@@ -3,8 +3,7 @@
       - check-requirements
       - lib-forward-testing-python3
       - openstack-cover-jobs
-      - openstack-lower-constraints-jobs
-      - openstack-python3-victoria-jobs
+      - openstack-python3-xena-jobs
       - periodic-stable-jobs
       - publish-openstack-docs-pti
       - release-notes-jobs-python3
