[Django] #24384: compilemessages shouldn't return with exit code 0 when it fails

9 views
Skip to first unread message

Django

unread,
Feb 21, 2015, 3:39:33 PM2/21/15
to django-...@googlegroups.com
#24384: compilemessages shouldn't return with exit code 0 when it fails
------------------------------------------------+------------------------
Reporter: aaugustin | Owner: nobody
Type: Bug | Status: new
Component: Internationalization | Version: master
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
------------------------------------------------+------------------------
When compilemessages is run on a read-only location, it displays a
messages to standard error and terminates with exit code 0. It should have
exit code 1.

Patch:

{{{
diff --git a/django/core/management/commands/compilemessages.py
b/django/core/management/commands/compilemessages.py
index dbadac0..75f3c57 100644
--- a/django/core/management/commands/compilemessages.py
+++ b/django/core/management/commands/compilemessages.py
@@ -108,9 +108,9 @@ class Command(BaseCommand):

# Check writability on first location
if i == 0 and not is_writable(npath(base_path + '.mo')):
- self.stderr.write("The po files under %s are in a
seemingly not writable location. "
- "mo files will not be updated/created."
% dirpath)
- return
+ raise CommandError("The po files under %s are in a
seemingly "
+ "not writable location. mo files will
not "
+ "be updated/created." % dirpath)

args = [self.program] + self.program_options + ['-o',
npath(base_path + '.mo'), npath(base_path + '.po')]
}}}

With this change, the output is exactly the same, but the exit code
reflects the failure and the --traceback option works.

I don't quite have the motivation to write tests for this change :-/

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

Django

unread,
Feb 21, 2015, 3:46:08 PM2/21/15
to django-...@googlegroups.com
#24384: compilemessages shouldn't return with exit code 0 when it fails
-------------------------------------+-------------------------------------

Reporter: aaugustin | Owner: nobody
Type: Bug | Status: new
Component: | Version: master
Internationalization |
Severity: Normal | Resolution:

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

Comment (by claudep):

The reason of the current behaviour is that `compilemessages` run
`compile_messages` for all paths of `settings.LOCALE_PATHS`. The idea was
to not stop running the command if only one path is read-only but not the
others. When #24159 will be fixed, it's probable that `compile_messages`
will be launched for all apps in `INSTALLED_APPS`. Then we don't want to
fail when some app is read-only (maybe a third-party app in a non-readable
location).

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

Django

unread,
Feb 21, 2015, 4:03:38 PM2/21/15
to django-...@googlegroups.com
#24384: compilemessages shouldn't return with exit code 0 when it fails
-------------------------------------+-------------------------------------

Reporter: aaugustin | Owner: nobody
Type: Bug | Status: new
Component: | Version: master
Internationalization |
Severity: Normal | Resolution:
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by aaugustin):

We have a problem akin to test discovery here. I think the right solution
is to ignore anything outside the current working directory and error if a
non-writable location is encountered.

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

Django

unread,
Feb 21, 2015, 4:12:08 PM2/21/15
to django-...@googlegroups.com
#24384: compilemessages shouldn't return with exit code 0 when it fails
-------------------------------------+-------------------------------------

Reporter: aaugustin | Owner: nobody
Type: Bug | Status: new
Component: | Version: master
Internationalization |
Severity: Normal | Resolution:
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by claudep):

See #21732 for the initial use case about non-writable paths.

Ignoring paths outside current directory could be a solution, but might be
backwards incompatible.

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

Django

unread,
Mar 3, 2015, 10:58:06 AM3/3/15
to django-...@googlegroups.com
#24384: compilemessages shouldn't return with exit code 0 when it fails
--------------------------------------+------------------------------------

Reporter: aaugustin | Owner: nobody
Type: Bug | Status: new
Component: Internationalization | Version: master
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted

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

* stage: Unreviewed => Accepted


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

Django

unread,
Jun 6, 2018, 5:17:52 AM6/6/18
to django-...@googlegroups.com
#24384: compilemessages shouldn't return with exit code 0 when it fails
-------------------------------------+-------------------------------------
Reporter: Aymeric Augustin | Owner: Claude
| Paroz
Type: Bug | Status: assigned
Component: | Version: master
Internationalization |

Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Claude Paroz):

* owner: nobody => Claude Paroz
* status: new => assigned


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

Django

unread,
Jun 6, 2018, 5:35:48 AM6/6/18
to django-...@googlegroups.com
#24384: compilemessages shouldn't return with exit code 0 when it fails
-------------------------------------+-------------------------------------
Reporter: Aymeric Augustin | Owner: Claude
| Paroz
Type: Bug | Status: assigned
Component: | Version: master
Internationalization |
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 Claude Paroz):

* has_patch: 0 => 1


Comment:

[https://github.com/django/django/pull/10027 PR]

--
Ticket URL: <https://code.djangoproject.com/ticket/24384#comment:6>

Django

unread,
Jun 13, 2018, 5:26:29 AM6/13/18
to django-...@googlegroups.com
#24384: compilemessages shouldn't return with exit code 0 when it fails
-------------------------------------+-------------------------------------
Reporter: Aymeric Augustin | Owner: Claude
| Paroz
Type: Bug | Status: assigned
Component: | Version: master
Internationalization |
Severity: Normal | Resolution:
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 Carlton Gibson):

* stage: Accepted => Ready for checkin


--
Ticket URL: <https://code.djangoproject.com/ticket/24384#comment:7>

Django

unread,
Jun 13, 2018, 3:27:10 PM6/13/18
to django-...@googlegroups.com
#24384: compilemessages shouldn't return with exit code 0 when it fails
-------------------------------------+-------------------------------------
Reporter: Aymeric Augustin | Owner: Claude
| Paroz
Type: Bug | Status: closed
Component: | Version: master
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 Claude Paroz <claude@…>):

* status: assigned => closed
* resolution: => fixed


Comment:

In [changeset:"a77f21880dfb0631ea0adb22d47909915cbfc3a9" a77f2188]:
{{{
#!CommitTicketReference repository=""
revision="a77f21880dfb0631ea0adb22d47909915cbfc3a9"
Fixed #24384 -- Allowed compilemessages to continue running after nonfatal
errors.

Thanks Aymeric Augustin for the report and Carlton Gibson and Tim Graham
for
the reviews.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/24384#comment:8>

Reply all
Reply to author
Forward
0 new messages