Is there a way to tell runserver's autoreload mechanism to ignore locale
files, or file extensions ?
Running runserver with the --noreload flag is not really an option.
--
Ticket URL: <https://code.djangoproject.com/ticket/22857>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* needs_docs: => 0
* severity: Normal => Release blocker
* needs_tests: => 0
* stage: Unreviewed => Accepted
Comment:
I guess this is #9523. One user's feature is another user's bug... I guess
it's likely possible to add a flag to control the behavior although I'm
not sure it's ideal to be adding more flags like that to `runserver`.
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:1>
Comment (by artscoop):
In my opinion, the request in #9523 was a very valid one and still is...
but yes, some django apps help with editing translations. This is one
category of apps that defeats the purpose of autoreloading on .mo changes.
:(
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:2>
Comment (by andrewgodwin):
Not entirely sure this is a release blocker, though - it'd be nice to fix,
but at the same time I don't think it's a regression from previously
documented behaviour, just a pattern that happened to work.
Said app could, for example, use an ajax request to kick off the rebuild
and then poll the server to see when it reappears before reloading.
(Not saying we shouldn't land a fix for this in 1.7, just saying that I'm
not really prepared to hold the entire release up for it...)
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:3>
Comment (by CollinAnderson):
would #18855 solve the problem?
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:4>
Comment (by timo):
I am not sure if it will, but it currently has some issues and even if we
resolve them, I'm not sure backporting to 1.7 this late in the release
cycle is acceptable. Currently the "best" solution I am thinking of is
adding a `--noreload-translations` flag to `runserver`. Open to other
opinions and ideas!
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:5>
Comment (by claudep):
Another idea (completely untested) would be to gather mo files in another
set of files in runserver and only reset translations when one of these
files changes instead of restarting the server.
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:6>
Comment (by artscoop):
@claudep I didn't know it was possible to reset/reload translations
separately (even though it makes perfect sense), but I think it's better
than the --noreload-translations, because the command option would have to
be officially documented, and maybe deprecated very quickly.
The suggestion about AJAXing a view until the server comes back is good
but a bit hacky.
I do think resetting translation cache on .mo change is the best idea, and
would be more immediate than reloading the whole dev server (which ideally
should be reloaded on code changes only). It seems that resetting the
translation is a simple as in this example:
https://djangosnippets.org/snippets/1704/
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:7>
Comment (by andrewgodwin):
If we can reset the translation cache then let's try that, but I'm really
pushed to define this as a release blocker (it is not breaking any part of
Django directly, and the behaviour it produces can be worked around with
``--noreload`` if you need to file translations), so if we get down to the
release time and this is what's left... it might not make it.
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:8>
* severity: Release blocker => Normal
Comment:
I agree that this change of behaviour is annoying for rosetta but I don't
think we should delay 1.7 for this edge case.
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:9>
* has_patch: 0 => 1
Comment:
PR: https://github.com/django/django/pull/2837
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:10>
* stage: Accepted => Ready for checkin
Comment:
Patch seems okay to me, although I'm not really familiar with this stuff
so a second pair of eyes wouldn't hurt.
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:11>
Comment (by claudep):
I'd like at least the reporter to review and check the patch.
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:12>
Comment (by artscoop):
To be done in the next 8 hours, I'll keep you informed.
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:13>
Comment (by artscoop):
@claudep Works flawlessly. Could not test on the master branch since it
breaks many third party apps, but copied the autoreload.py file into the
working 1.7b4. the server did not restart on .mo file changes, yet the new
translation was properly taken into account.
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:14>
* status: new => closed
* resolution: => fixed
Comment:
In [changeset:"0d363b25b82b0a86b7243512470f364bef92bc3d"]:
{{{
#!CommitTicketReference repository=""
revision="0d363b25b82b0a86b7243512470f364bef92bc3d"
Fixed #22857 -- Reset translations when only .mo file changed
No need to restart the server when a translation file changes.
Refs #9523. Thanks artscoop for the report and Tim Graham for
the review.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:15>
Comment (by claudep):
@artscoop Thanks for the feedback!
I won't make alone the decision to backport to 1.7. If other core devs
think it's a good idea, just speak.
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:16>
Comment (by timo):
I would backport this or revert #9523 from 1.7 so we don't ship a buggy
change.
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:17>
Comment (by Tim Graham <timograham@…>):
In [changeset:"cbcb7c010bdc015c79b4b8a0ba2955abb23aee82"]:
{{{
#!CommitTicketReference repository=""
revision="cbcb7c010bdc015c79b4b8a0ba2955abb23aee82"
[1.7.x] Fixed #22857 -- Reset translations when only .mo file changed
No need to restart the server when a translation file changes.
Refs #9523. Thanks artscoop for the report and Tim Graham for
the review.
Backport of 0d363b25b8 from master
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/22857#comment:18>