The PulsePublisher class was built for extensibility, providing lots of hooks
for customisation. However we only had one subclass in use since its
introduction: TreeherderPublisher. This reduces the concrete class into a
single function which publishes the given message. In doing so all
configurability has been removed, since it was unused.
We don't currently change the push ingestion sources in any of our envs
(prod, staging, prototype, test, dev) from their defaults. This
hardcodes those unchanging values and documents where to change them
should an engineer need to.
Two instances have been left using lodash for now, since `Math.max()`
does not preserve `Date()` objects unlike lodash. These cases have
been converted to use the tree-shaking compatible import form.
To reduce the Renovate PR noise from them, since they only contain
TypeScript definitions, which we don't use.
(We only list them in our dependencies to prevent the missing
`peerDependencies` warnings due to `react2angular` listing them in
its `package.json`. Once we no longer use `react2angular` we can
remove them entirely.)
This reverts commit 1728dd306c (#3884), due to:
```
Pulse warning: queue "queue/treeherder-staging/jobs" is overgrowing
Warning: your queue "queue/treeherder-staging/jobs" on exchange "could not be determined" is
overgrowing (4083 ready messages, 4083 total messages).
...
```
And remove the Renovate exclusion, since unlike some of the other
ESLint dependencies that aren't compatible with Neutrino 4/ESLint 3,
this plugin is still compatible.
By default Django/WhiteNoise outputs not only the hashed version of
static files (eg `app.db8f2edc0c8a.js`) but also the original file
(eg `app.js`), for backwards compatibility in case users hardcode
the original filename in their app.
However Treeherder doesn't do this, so we can skip the original files,
halving the number of files output - and thus halving the time spent
Brotli/gzip compressing them during collectstatic.
* Renames `is_immutable_file` to match changes to the parent class.
* Suppresses the new "missing static files directory" warning when
running the tests (since it's expected in !production).
* Uses the new `extras_require` `[brotli]` entry to make WhiteNoise's
dependency more obvious.
Changelog:
http://whitenoise.evans.io/en/stable/changelog.html#v4-0Closes#3903.
The dates were all off because the toShortDateStr function
expects timestamps in seconds, but we were passing
milliseconds. Just need to divide by 1000.
Change intermittents-commenter task soft and hard time limits to 2 hours
and change the time.sleep to 0.5 in print_or_submit_changes. Switch the
weekly task to submit comments Monday instead of Sunday (to avoid
issues arising from the PI bug closing task running Sunday nights).