[Django] #34952: manage.py compilemessages may skip locale folders if ignore is used.

20 views
Skip to first unread message

Django

unread,
Nov 7, 2023, 6:23:16 AM11/7/23
to django-...@googlegroups.com
#34952: manage.py compilemessages may skip locale folders if ignore is used.
------------------------------------------+------------------------
Reporter: Andrew Cordery | Owner: nobody
Type: Bug | Status: new
Component: Uncategorized | Version: 4.2
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 1
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
------------------------------------------+------------------------
manage.py compilemessages uses os.walk and iterates through the same
dirnames instance that it removes members from when the ignore option is
used.

This will cause compilemessages to accidentally ignore a locale directory
that directly follows a skipped directory in the list. Unfortunately it
is not easy to predict when this will occur or which directories may be
affected as os.walk provides the list of dirnames in 'arbitrary' order
according to the python docs.

I've provided the miniscule patch to fix this as well as a much lengthier
regression test, however I'm not positive that the test is capable of
recreating the correct conditions on all operating systems. I've tested
on OSX only. Regardless, the issue at hand is a basic language error
(modifying a value that you are iterating through) and the fix is
extremely simple (i.e. copy dirnames before iterating, in my patch I just
wrap it in list()), so this should not be a controversial patch.


Note: this was originally mentioned as a comment on my other ticket
https://code.djangoproject.com/ticket/34925, I'm separating it for clarity
and I will attach the PR here.

--
Ticket URL: <https://code.djangoproject.com/ticket/34952>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Nov 7, 2023, 6:35:36 AM11/7/23
to django-...@googlegroups.com
#34952: manage.py compilemessages may skip locale folders if ignore is used.
--------------------------------+--------------------------------------

Reporter: Andrew Cordery | Owner: nobody
Type: Bug | Status: new
Component: Uncategorized | Version: 4.2
Severity: Normal | Resolution:

Keywords: | Triage Stage: Unreviewed
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------+--------------------------------------

Comment (by Andrew Cordery):

Here is the PR: https://github.com/django/django/pull/17452

--
Ticket URL: <https://code.djangoproject.com/ticket/34952#comment:1>

Django

unread,
Nov 7, 2023, 6:53:59 AM11/7/23
to django-...@googlegroups.com
#34952: manage.py compilemessages may skip locale folders if ignore is used.
--------------------------------------+------------------------------------

Reporter: Andrew Cordery | Owner: nobody
Type: Bug | Status: new
Component: Internationalization | Version: 4.2
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted

Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by Natalia Bidart):

* component: Uncategorized => Internationalization
* stage: Unreviewed => Accepted


Comment:

Thank you! Accepting.

--
Ticket URL: <https://code.djangoproject.com/ticket/34952#comment:2>

Django

unread,
Nov 8, 2023, 1:40:01 PM11/8/23
to django-...@googlegroups.com
#34952: manage.py compilemessages may skip locale folders if ignore is used.
-------------------------------------+-------------------------------------
Reporter: Andrew Cordery | Owner: Andrew
| Cordery
Type: Bug | Status: assigned
Component: | Version: 4.2
Internationalization |

Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 1

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Natalia Bidart):

* owner: nobody => Andrew Cordery
* needs_better_patch: 0 => 1
* status: new => assigned


--
Ticket URL: <https://code.djangoproject.com/ticket/34952#comment:3>

Django

unread,
Nov 13, 2023, 1:08:08 PM11/13/23
to django-...@googlegroups.com
#34952: manage.py compilemessages may skip locale folders if ignore is used.
-------------------------------------+-------------------------------------
Reporter: Andrew Cordery | Owner: Andrew
| Cordery
Type: Bug | Status: assigned
Component: | Version: 4.2
Internationalization |
Severity: Normal | Resolution:
Keywords: | Triage Stage: Ready for
| checkin

Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 1
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Natalia Bidart):

* stage: Accepted => Ready for checkin


--
Ticket URL: <https://code.djangoproject.com/ticket/34952#comment:4>

Django

unread,
Nov 13, 2023, 11:14:49 PM11/13/23
to django-...@googlegroups.com
#34952: manage.py compilemessages may skip locale folders if ignore is used.
-------------------------------------+-------------------------------------
Reporter: Andrew Cordery | Owner: Andrew
| Cordery
Type: Bug | Status: closed
Component: | Version: 4.2
Internationalization |
Severity: Normal | Resolution: fixed

Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

* status: assigned => closed
* needs_better_patch: 1 => 0
* resolution: => fixed


Comment:

Fixed by ad41f1c53aa9f2c938df32e4386d8a80138923fc.

--
Ticket URL: <https://code.djangoproject.com/ticket/34952#comment:5>

Reply all
Reply to author
Forward
0 new messages