[release-announce] horizon 19.0.0 (wallaby)

no-reply at openstack.org no-reply at openstack.org
Sat Dec 5 17:34:51 UTC 2020


We are overjoyed to announce the release of:

horizon 19.0.0: OpenStack Dashboard

This release is part of the wallaby release series.

The source is available from:

    https://opendev.org/openstack/horizon

Download the package from:

    https://tarballs.openstack.org/horizon/

Please report issues through:

    https://bugs.launchpad.net/horizon/+bugs

For more details, please see below.

19.0.0
^^^^^^


New Features
************

* A new setting "OPENSTACK_USE_SIMPLE_TENANT_USAGE" was introduced
  as a replacement of "SimpleTenantUsage" in the deprecated
  "OPENSTACK_NOVA_EXTENSIONS_BLACKLIST" setting. This new setting
  controls whether "SimpleTenantUsage" nova API is used in the usage
  overview. According to feedbacks to the horizon team, the usage of
  "SimpleTenantUsage" can cause performance issues in the nova API in
  larger deployments. Try to set this to "False" for such cases.


Upgrade Notes
*************

* Deprecated "opensatck_dashboard/wsgi/django.wsgi" is removed. If
  you still use it, please change your configuration to use
  "openstack_dashboard/wsgi.py" now.

* The legacy way to retrive neutron resource usages was dropped and
  horizon now assumes the "quota_details" neutron API extension
  implemented in Pike release (over three years ago), so we expect
  this is available in all Wallaby neutron deployments.

* "OPENSTACK_NOVA_EXTENSIONS_BLACKLIST" setting is now dropped. If
  you specify "SimpleTenantUsage" in this setting, consider setting
  "OPENSTACK_USE_SIMPLE_TENANT_USAGE" to "False" instead. For other
  effective values in this setting, no replacement is provided as nova
  provides all features in recent versions of nova API. Note that you
  can enable/disable table actions via policy rules.

* Password forms in horizon now does not strip leading/trailing
  spaces included in input passwords. Previously horizon stripped
  leading/trailing spaces in input passwords but on the other hand
  keystone accepts leading/trailing spaces and it can be an issue when
  such passwords are set via keystone API. To handle this situation
  horizon no longer strips leading/trailing spaces in passwords. See
  [:bug:`1861224`] and the related mailing thread for more detail.
  (Note that this change is part of horizon 18.5.0 release but we
  forgot to mention it.)

* Considering the deprecation of
  "OPENSTACK_NOVA_EXTENSIONS_BLACKLIST", set a new setting
  "OPENSTACK_USE_SIMPLE_TENANT_USAGE" to "False" if you specify
  "SimpleTenantUsage" in "OPENSTACK_USE_SIMPLE_TENANT_USAGE"

Changes in horizon 18.6.0..19.0.0
---------------------------------

7e682a2d5 Remove depretaced django.wsgi
94707c743 Remove retired searchlight-ui usage
0335f2f37 Remove retired qinling-dashbaord usage
02aa5dd7c Imported Translations from Zanata
0a4fda0c0 Add default index URL to Server Groups module
85d75107c Add integration-test for Volume Group Type
08878b6b0 doc: Drop old Django information
1986bb538 Imported Translations from Zanata
a20a275ef Fix AttributeError in the project instance detail view
f3927ffb3 Fix create/update_port with python3
57999617e Update docs for Ubuntu 20.04
1cf8ddcd8 Imported Translations from Zanata
a8158f6c3 On the create instance from, when the image name is empty, show id
989eeb41d [cleanup] Remove test-data for heat
d73e7022c Imported Translations from Zanata
6b79cdcc1 Non-api filters not working with admin instance tab
672c43c43 Drop OPENSTACK_NOVA_EXTENSIONS_BLACKLIST finally
3c6286a9e Drop the usage of nova extensions in JavaScript code
c45cc6b1c Drop the usage of nova extensions in python code
c9e47d659 Add new setting for SimpleTenantUsage
4046ef661 Recover scenario settings in openstack_auth test_auth
22741aaa3 Drop the legacy way to retrieve neutron quotas and usages
b89c70516 Refactor quota related unit tests
197c304af Imported Translations from Zanata
e5d09edc2 Use python3-style super()
29473d80c Imported Translations from Zanata
8a963626e Added validation for csrf_failure GET argument
ec6fbe3eb Imported Translations from Zanata
3a9439114 Make timezone tests work
1b8bf35b9 doc: Document teams in horizon
91c529bc1 Imported Translations from Zanata
612942bdf users: Correct lock_password status visibility (Yes/No) in user details
8acd5c352 Imported Translations from Zanata
1202faa70 Fix coverage job
40c760437 Imported Translations from Zanata
52ea7d265 doc: Change reference to logos from PNG to SVG
ade7c0fa3 Imported Translations from Zanata
74df97f57 pylint: Fix unnecessary-comprehension warning
692778f8c pylint: Address no-else-return warning
b67ad564c pylint: Address no-else-continue/no-else-raise warnings
de509f991 Follow-up on pylint upgrade
5be1202d7 Fix Jasmine Spec Runner for Django messages patch
106e713ee Add Python3 wallaby unit tests
c58ab9245 Update master for stable/victoria
37ea4159f Relnote on disabling stripping leading/trailing spaces in password
533892f08 Make text download and load groups tests work
370d1739c Make permissions tests work
b79ebc85b Drop remaining glance v1 related code


Diffstat (except docs and test files)
-------------------------------------

.gitignore                                         |   2 +-
.pylintrc                                          |  15 +-
.zuul.d/django-jobs.yaml                           |   2 +-
.zuul.d/project.yaml                               |   2 +-
.../locale/en_GB/LC_MESSAGES/doc-configuration.po  |  38 +-
.../locale/en_GB/LC_MESSAGES/doc-contributor.po    | 119 +++-
.../locale/id/LC_MESSAGES/doc-configuration.po     |  32 +-
.../locale/id/LC_MESSAGES/doc-contributor.po       |   7 +-
horizon/base.py                                    |  36 +-
horizon/browsers/base.py                           |   2 +-
horizon/browsers/breadcrumb.py                     |   2 +-
horizon/browsers/views.py                          |  10 +-
horizon/contrib/staticfiles/finders.py             |   2 +-
horizon/decorators.py                              |   3 +-
horizon/exceptions.py                              |   5 +-
horizon/forms/base.py                              |   4 +-
horizon/forms/fields.py                            |  34 +-
horizon/forms/views.py                             |  18 +-
horizon/management/commands/startdash.py           |   2 +-
horizon/management/commands/startpanel.py          |   2 +-
.../framework/conf/permissions.service.spec.js     |  54 +-
.../util/file/text-download.service.spec.js        |  10 +-
.../util/timezones/timezone.service.spec.js        |  29 +-
horizon/tables/actions.py                          |  26 +-
horizon/tables/base.py                             |  36 +-
horizon/tables/formset.py                          |   8 +-
horizon/tables/views.py                            |  26 +-
horizon/tabs/base.py                               |  12 +-
horizon/tabs/views.py                              |   7 +-
horizon/templates/horizon/jasmine/jasmine.html     |   1 +
horizon/templatetags/angular.py                    |   2 +-
horizon/templatetags/horizon.py                    |  15 +-
horizon/templatetags/truncate_filter.py            |   3 +-
horizon/test/firefox_binary.py                     |   2 +-
horizon/test/helpers.py                            |  18 +-
horizon/test/unit/forms/test_fields.py             |   8 +-
horizon/test/unit/forms/test_forms.py              |   2 +-
horizon/test/unit/middleware/test_base.py          |   4 +-
horizon/test/unit/middleware/test_operation_log.py |   2 +-
horizon/test/unit/tabs/test_tabs.py                |   4 +-
horizon/test/unit/test_base.py                     |  21 +-
horizon/test/unit/test_views.py                    |   4 +-
horizon/test/unit/workflows/test_workflows.py      |   4 +-
horizon/test/utils.py                              |   2 +-
horizon/test/webdriver.py                          |  10 +-
horizon/utils/babel_extract_angular.py             |   2 +-
horizon/utils/csvbase.py                           |   6 +-
horizon/utils/filters.py                           |   3 +-
horizon/utils/lazy_encoder.py                      |   2 +-
horizon/utils/scss_filter.py                       |   2 +-
horizon/views.py                                   |   7 +-
horizon/workflows/base.py                          |  33 +-
horizon/workflows/views.py                         |   4 +-
openstack_auth/backend.py                          |   6 +-
openstack_auth/forms.py                            |   4 +-
openstack_auth/locale/en_GB/LC_MESSAGES/django.po  |   9 +-
openstack_auth/plugin/base.py                      |   3 +-
openstack_auth/utils.py                            |   9 +-
openstack_auth/views.py                            |  30 +-
openstack_dashboard/api/_nova.py                   |  25 +-
openstack_dashboard/api/base.py                    |   2 +-
openstack_dashboard/api/glance.py                  |  15 +-
openstack_dashboard/api/keystone.py                |   5 +-
openstack_dashboard/api/neutron.py                 |  79 ++-
openstack_dashboard/api/nova.py                    | 133 +---
openstack_dashboard/api/rest/cinder.py             |  59 +-
openstack_dashboard/api/rest/glance.py             |   3 +-
openstack_dashboard/api/rest/json_encoder.py       |   2 +-
openstack_dashboard/api/rest/neutron.py            |  40 +-
openstack_dashboard/api/rest/nova.py               |  66 +-
openstack_dashboard/api/rest/utils.py              |  10 +-
openstack_dashboard/api/swift.py                   |  22 +-
openstack_dashboard/contrib/developer/dashboard.py |   2 +-
.../contrib/developer/profiler/middleware.py       |   2 +-
.../contrib/developer/profiler/views.py            |   2 +-
.../dashboards/admin/aggregates/forms.py           |   2 +-
.../dashboards/admin/aggregates/panel.py           |  16 -
.../dashboards/admin/aggregates/tables.py          |   4 +-
.../dashboards/admin/aggregates/views.py           |   4 +-
.../dashboards/admin/aggregates/workflows.py       |  10 +-
.../dashboards/admin/defaults/views.py             |   2 +-
.../dashboards/admin/defaults/workflows.py         |   6 +-
.../dashboards/admin/flavors/tables.py             |   2 +-
.../dashboards/admin/flavors/workflows.py          |   4 +-
.../dashboards/admin/floating_ips/forms.py         |   2 +-
.../dashboards/admin/floating_ips/views.py         |   2 +-
.../dashboards/admin/group_types/specs/views.py    |   8 +-
.../dashboards/admin/group_types/views.py          |   2 +-
.../dashboards/admin/hypervisors/compute/forms.py  |   2 +-
.../dashboards/admin/hypervisors/compute/tables.py |  14 +-
.../dashboards/admin/hypervisors/compute/views.py  |  12 +-
.../dashboards/admin/hypervisors/views.py          |   4 +-
.../dashboards/admin/images/tables.py              |   5 +-
.../dashboards/admin/images/views.py               |   2 +-
.../dashboards/admin/info/tables.py                |   8 +-
openstack_dashboard/dashboards/admin/info/views.py |   2 +-
.../dashboards/admin/instances/forms.py            |   2 +-
.../dashboards/admin/instances/tables.py           |   2 +-
.../dashboards/admin/instances/views.py            |  32 +-
.../dashboards/admin/metadata_defs/forms.py        |   2 +-
.../dashboards/admin/metadata_defs/views.py        |   6 +-
.../dashboards/admin/networks/agents/forms.py      |   2 +-
.../dashboards/admin/networks/agents/views.py      |   4 +-
.../dashboards/admin/networks/forms.py             |   4 +-
.../dashboards/admin/networks/ports/tables.py      |   2 +-
.../dashboards/admin/networks/ports/views.py       |   4 +-
.../dashboards/admin/networks/ports/workflows.py   |   4 +-
.../dashboards/admin/networks/subnets/tables.py    |  23 +-
.../dashboards/admin/networks/subnets/views.py     |   2 +-
.../dashboards/admin/networks/tables.py            |  12 +-
.../dashboards/admin/networks/views.py             |   4 +-
.../dashboards/admin/networks/workflows.py         |  18 +-
.../dashboards/admin/overview/views.py             |   4 +-
.../dashboards/admin/rbac_policies/forms.py        |   6 +-
.../dashboards/admin/rbac_policies/tabs.py         |   2 +-
.../dashboards/admin/rbac_policies/views.py        |   2 +-
.../dashboards/admin/routers/forms.py              |   2 +-
.../dashboards/admin/routers/views.py              |   4 +-
.../dashboards/admin/snapshots/forms.py            |   2 +-
.../dashboards/admin/snapshots/tables.py           |   2 +-
.../dashboards/admin/snapshots/views.py            |   4 +-
.../dashboards/admin/trunks/panel.py               |   2 +-
.../dashboards/admin/vg_snapshots/views.py         |   2 +-
.../dashboards/admin/volume_groups/tables.py       |   2 +-
.../dashboards/admin/volume_groups/views.py        |   2 +-
.../dashboards/admin/volume_types/extras/forms.py  |   2 +-
.../dashboards/admin/volume_types/extras/views.py  |   8 +-
.../dashboards/admin/volume_types/forms.py         |   8 +-
.../admin/volume_types/qos_specs/views.py          |   7 +-
.../dashboards/admin/volume_types/tables.py        |   2 +-
.../dashboards/admin/volume_types/views.py         |  19 +-
.../dashboards/admin/volumes/forms.py              |   6 +-
.../dashboards/admin/volumes/views.py              |  15 +-
.../identity/application_credentials/forms.py      |   5 +-
.../identity/application_credentials/views.py      |   8 +-
.../dashboards/identity/domains/panel.py           |   2 +-
.../dashboards/identity/domains/tables.py          |   6 +-
.../dashboards/identity/domains/views.py           |   2 +-
.../dashboards/identity/domains/workflows.py       |  12 +-
.../dashboards/identity/groups/panel.py            |   2 +-
.../dashboards/identity/groups/views.py            |   6 +-
.../identity/identity_providers/protocols/forms.py |   2 +-
.../identity/identity_providers/protocols/views.py |   2 +-
.../identity/identity_providers/views.py           |   4 +-
.../dashboards/identity/mappings/views.py          |   2 +-
.../dashboards/identity/projects/tables.py         |  21 +-
.../dashboards/identity/projects/views.py          |  12 +-
.../dashboards/identity/projects/workflows.py      |  48 +-
.../dashboards/identity/roles/panel.py             |   2 +-
.../dashboards/identity/roles/views.py             |   2 +-
.../identity/groups/groups.module.spec.js          |  10 +-
.../dashboards/identity/users/forms.py             |  18 +-
.../dashboards/identity/users/panel.py             |   2 +-
.../dashboards/identity/users/tabs.py              |   2 +
.../dashboards/identity/users/views.py             |  14 +-
.../dashboards/project/api_access/views.py         |   2 +-
.../dashboards/project/backups/forms.py            |   4 +-
.../dashboards/project/backups/views.py            |   6 +-
.../dashboards/project/dashboard.py                |   2 +-
.../dashboards/project/floating_ips/forms.py       |   2 +-
.../dashboards/project/floating_ips/tables.py      |  18 +-
.../dashboards/project/floating_ips/views.py       |   2 +-
.../dashboards/project/floating_ips/workflows.py   |   7 +-
.../dashboards/project/images/images/forms.py      |  15 +-
.../dashboards/project/images/images/tables.py     |   6 +-
.../dashboards/project/images/images/views.py      |   6 +-
.../dashboards/project/images/snapshots/views.py   |   2 +-
.../dashboards/project/instances/forms.py          |  39 +-
.../dashboards/project/instances/tables.py         |  36 +-
.../dashboards/project/instances/views.py          |  32 +-
.../project/instances/workflows/create_instance.py | 172 ++---
.../project/instances/workflows/resize_instance.py |   5 +-
.../project/instances/workflows/update_instance.py |   4 +-
.../dashboards/project/key_pairs/tables.py         |  15 +-
.../dashboards/project/key_pairs/views.py          |   2 +-
.../dashboards/project/network_qos/panel.py        |   2 +-
.../dashboards/project/network_topology/views.py   |   4 +-
.../dashboards/project/networks/forms.py           |   2 +-
.../extensions/allowed_address_pairs/forms.py      |   2 +-
.../extensions/allowed_address_pairs/tables.py     |   9 +-
.../extensions/allowed_address_pairs/views.py      |   2 +-
.../dashboards/project/networks/ports/sg_base.py   |   4 +-
.../dashboards/project/networks/ports/tables.py    |  13 +-
.../dashboards/project/networks/ports/views.py     |   2 +-
.../dashboards/project/networks/ports/workflows.py |   5 +-
.../dashboards/project/networks/subnets/tables.py  |   5 +-
.../dashboards/project/networks/subnets/views.py   |   4 +-
.../project/networks/subnets/workflows.py          |   3 +-
.../dashboards/project/networks/tables.py          |  14 +-
.../dashboards/project/networks/tabs.py            |   2 +-
.../dashboards/project/networks/views.py           |   6 +-
.../dashboards/project/networks/workflows.py       |  19 +-
.../dashboards/project/overview/views.py           |   2 +-
.../routers/extensions/extraroutes/tables.py       |   2 +-
.../routers/extensions/extraroutes/views.py        |   2 +-
.../dashboards/project/routers/forms.py            |   4 +-
.../dashboards/project/routers/ports/forms.py      |   4 +-
.../dashboards/project/routers/ports/tables.py     |   5 +-
.../dashboards/project/routers/ports/views.py      |   4 +-
.../dashboards/project/routers/tables.py           |  15 +-
.../dashboards/project/routers/views.py            |   8 +-
.../dashboards/project/security_groups/forms.py    |   4 +-
.../dashboards/project/security_groups/tables.py   |  17 +-
.../dashboards/project/security_groups/views.py    |   8 +-
.../dashboards/project/server_groups/panel.py      |   2 +-
.../dashboards/project/snapshots/tables.py         |   4 +-
.../dashboards/project/snapshots/views.py          |   4 +-
.../configuration/configuration.html               |  38 +-
.../launch-instance-model.service.js               |  11 +-
.../launch-instance-model.service.spec.js          |  40 +-
.../launch-instance-workflow.service.js            |   9 +-
.../launch-instance-workflow.service.spec.js       |  12 -
.../launch-instance/source/source.controller.js    |   2 +-
.../dashboards/project/trunks/panel.py             |   2 +-
.../dashboards/project/vg_snapshots/forms.py       |   2 +-
.../dashboards/project/vg_snapshots/panel.py       |   2 +-
.../dashboards/project/vg_snapshots/views.py       |   9 +-
.../dashboards/project/volume_groups/forms.py      |   2 +-
.../dashboards/project/volume_groups/panel.py      |   2 +-
.../dashboards/project/volume_groups/tables.py     |   9 +-
.../dashboards/project/volume_groups/views.py      |  24 +-
.../dashboards/project/volume_groups/workflows.py  |  14 +-
.../dashboards/project/volumes/forms.py            |  18 +-
.../dashboards/project/volumes/tables.py           |  17 +-
.../dashboards/project/volumes/views.py            |  31 +-
.../dashboards/settings/password/forms.py          |   2 +-
.../dashboards/settings/user/forms.py              |   2 +-
openstack_dashboard/defaults.py                    |   7 +-
.../locale/cs/LC_MESSAGES/django.po                |   5 +-
.../locale/de/LC_MESSAGES/django.po                |  74 ++-
.../locale/en_AU/LC_MESSAGES/django.po             |   5 +-
.../locale/en_GB/LC_MESSAGES/django.po             |  28 +-
.../locale/eo/LC_MESSAGES/django.po                |  10 +-
.../locale/es/LC_MESSAGES/django.po                |  10 +-
.../locale/fr/LC_MESSAGES/django.po                |  10 +-
.../locale/id/LC_MESSAGES/django.po                |  45 +-
.../locale/it/LC_MESSAGES/django.po                |   5 +-
.../locale/ja/LC_MESSAGES/django.po                |  18 +-
.../locale/ko_KR/LC_MESSAGES/django.po             |  10 +-
.../locale/pl_PL/LC_MESSAGES/django.po             |   5 +-
.../locale/pt_BR/LC_MESSAGES/django.po             |  10 +-
.../locale/ru/LC_MESSAGES/django.po                |  10 +-
.../locale/tr_TR/LC_MESSAGES/django.po             |   5 +-
.../locale/zh_CN/LC_MESSAGES/django.po             |   8 +-
.../locale/zh_TW/LC_MESSAGES/django.po             |   8 +-
.../management/commands/make_web_conf.py           |   7 +-
.../management/commands/migrate_settings.py        |   2 +-
.../hz-if-nova-extensions.directive.js             |  76 ---
.../hz-if-nova-extensions.directive.spec.js        |  89 ---
.../extensions.service.spec.js                     |   2 +-
.../nova-extensions.service.js                     |  55 --
.../nova-extensions.service.spec.js                |  91 ---
.../app/core/openstack-service-api/nova.service.js |  28 -
.../openstack-service-api/nova.service.spec.js     |  10 -
.../app/core/server_groups/server-groups.module.js |   1 +
.../static/app/core/workflow/decorator.service.js  |   8 +-
.../app/core/workflow/decorator.service.spec.js    |  11 +-
openstack_dashboard/test/helpers.py                |  30 +-
.../pages/admin/compute/flavorspage.py             |   2 +-
.../pages/admin/compute/hostaggregatespage.py      |   2 +-
.../pages/admin/compute/hypervisorspage.py         |   2 +-
.../pages/admin/system/defaultspage.py             |   2 +-
.../pages/admin/system/metadatadefinitionspage.py  |   2 +-
.../pages/admin/volume/grouptypespage.py           |  70 ++
.../pages/admin/volume/volumetypespage.py          |   2 +-
.../pages/identity/projectspage.py                 |   6 +-
.../pages/project/apiaccesspage.py                 |   2 +-
.../pages/project/compute/imagespage.py            |   2 +-
.../pages/project/compute/instancespage.py         |   2 +-
.../pages/project/compute/keypairspage.py          |   2 +-
.../pages/project/compute/overviewpage.py          |   2 +-
.../pages/project/compute/servergroupspage.py      |   2 +-
.../pages/project/network/floatingipspage.py       |   2 +-
.../pages/project/network/networkoverviewpage.py   |   2 +-
.../pages/project/network/networkspage.py          |   2 +-
.../pages/project/network/networktopologypage.py   |   2 +-
.../pages/project/network/routerinterfacespage.py  |   2 +-
.../pages/project/network/routeroverviewpage.py    |   2 +-
.../pages/project/network/routerspage.py           |   2 +-
.../network/security_groups/managerulespage.py     |   2 +-
.../pages/project/network/securitygroupspage.py    |   2 +-
.../pages/project/volumes/snapshotspage.py         |   2 +-
.../pages/project/volumes/volumespage.py           |   2 +-
.../pages/settings/usersettingspage.py             |   2 +-
openstack_dashboard/test/test_data/glance_data.py  |   2 +-
openstack_dashboard/test/test_data/nova_data.py    |   2 +-
.../test/test_panels/plugin_panel/views.py         |   2 +-
.../test/test_plugins/test_panel.py                |   2 +-
.../test/test_plugins/test_panel_group.py          |   2 +-
.../test/unit/api/rest/test_glance.py              |   2 +-
.../test/unit/api/rest/test_nova.py                |  19 +-
openstack_dashboard/test/unit/api/test_base.py     |   2 +-
openstack_dashboard/test/unit/api/test_cinder.py   |   2 +-
openstack_dashboard/test/unit/api/test_glance.py   |   2 +-
openstack_dashboard/test/unit/api/test_keystone.py |   2 +-
openstack_dashboard/test/unit/api/test_network.py  |   2 +-
openstack_dashboard/test/unit/api/test_neutron.py  |  28 +-
openstack_dashboard/test/unit/api/test_nova.py     |   9 -
openstack_dashboard/test/unit/usage/test_quotas.py | 161 +----
openstack_dashboard/usage/base.py                  |   7 +-
openstack_dashboard/usage/quotas.py                |  81 +--
openstack_dashboard/usage/tables.py                |   3 +-
openstack_dashboard/usage/views.py                 |  14 +-
openstack_dashboard/utils/config_types.py          |  12 +-
openstack_dashboard/views.py                       |   8 +-
openstack_dashboard/wsgi/django.wsgi               |  40 --
plugin-registry.csv                                |   2 -
.../notes/drop-django-wsgi-a6a1ae2df4e05118.yaml   |   6 +
...drop-neutron-quota-legacy-1efd1f1924ae3489.yaml |   7 +
...nova-extensions-blacklist-7718f0ef622e3af8.yaml |   9 +
...p-trailing-space-password-856bd5595938a094.yaml |  14 +
.../use-simple-tenant-usage-f713a2eff9357458.yaml  |  17 +
releasenotes/source/index.rst                      |   1 +
.../source/locale/de/LC_MESSAGES/releasenotes.po   |  22 +-
.../locale/en_GB/LC_MESSAGES/releasenotes.po       | 121 +++-
.../source/locale/id/LC_MESSAGES/releasenotes.po   |  69 +-
.../source/locale/ja/LC_MESSAGES/releasenotes.po   |  34 +-
releasenotes/source/victoria.rst                   |   6 +
tox.ini                                            |   9 +-
376 files changed, 2262 insertions(+), 3298 deletions(-)







More information about the Release-announce mailing list