Commit Graph

647 Commits

Author SHA1 Message Date
Chris Hill-Scott
61660134ff Bump utils to 53.0.0
Changes:

53.0.0
---

* `notifications_utils.columns.Columns` has moved to
  `notifications_utils.insensitive_dict.InsensitiveDict`
* `notifications_utils.columns.Rows` has moved to
  `notifications_utils.recipients.Rows`
* `notifications_utils.columns.Cell` has moved to
  `notifications_utils.recipients.Cell`

52.0.0
---

* Deprecate the following unused `redis_client` functions:
  - `redis_client.increment_hash_value`
  - `redis_client.decrement_hash_value`
  - `redis_client.get_all_from_hash`
  - `redis_client.set_hash_and_expire`
  - `redis_client.expire`

51.3.1
---

* Bump govuk-bank-holidays to cache holidays for next year.

51.3.0
---

* Log exception and stacktrace when Celery tasks fail.
2022-02-04 10:43:36 +00:00
Leo Hemsted
00f63d02fc remove cryptography pin
we previously pinned cryptography to versions less than 3.4 since after
that point, cryptography started using rust as a dependency. This isn't
an issue if you install from wheel, but we found that the version of pip
bundled with the python buildpack was too old to support this. However,
since upgrading from python 3.6 to python 3.9, the pip version has been
bumped and we now no longer need to pin cryptography as it installs
correctly.
2022-01-19 18:27:41 +00:00
Ben Thorner
3c3bc71cc0 Revert "Trial running Sentry in Admin"
This reverts commit 5ae8acb8aa.
2022-01-05 14:35:49 +00:00
Ben Thorner
5818c9b4a3 Merge pull request #4114 from alphagov/trial-sentry-180766893
Trial running Sentry in a Flask app
2021-12-31 11:31:53 +00:00
Ben Thorner
5ae8acb8aa Trial running Sentry in Admin
This will capture and send various events to Sentry:

- Any unhandled exceptions.
- Any logger.error calls.
- Some request traces.

The latter are severely limited to avoid going over the free tier
limits for Sentry, and to avoid excess effort on our end.
2021-12-31 10:57:05 +00:00
Chris Hill-Scott
6464ffb8ed Force lxml to latest version
Lower versions have a security vulnerability, see
https://github.com/lxml/lxml/security/advisories/GHSA-55x5-fj6c-h6m8

The `pyexcel-*` packages which require `lxml` don’t pin a version.

`pip-compile` will respect what’s in `requirements.txt` as long as the
dependencies are fulfilled[1] so we don’t need to add it to
`requirements.in`

---

1. https://github.com/jazzband/pip-tools#updating-requirements
2021-12-30 12:40:32 +00:00
Ben Thorner
69fbce50ed Bump govuk-bank-holidays to latest version
While the package can always fetch new holidays via the GOV.UK API,
the latest version of the packages also caches ones for next year,
which means we can avoid unnecessary web requests.
2021-12-30 09:29:18 +00:00
Ben Thorner
7ebf60845f Bump utils to 51.2.1
This brings a few performance improvements for RecipientCSV, which
we use to preview and process CSVs. One change also renames one of
the attributes for the class to "guestlist".
2021-12-10 16:35:40 +00:00
Tom Byers
aca3af4dbe Bring in notifications-utils 50.0.0
Makes the mock up of an alert we show use an
inline SVG instead of it as a background image.
This means it can use the colour of the heading
text next to it in a way that adapts when high
contrast mode is on.

https://github.com/alphagov/notifications-utils/pull/922
2021-12-09 12:03:02 +00:00
David McDonald
a9617d4df6 Bump utils to 49.1.0 2021-12-07 12:44:18 +00:00
Chris Hill-Scott
6cb326f153 Update utils to do linear transformation of polygons
Brings in https://github.com/alphagov/notifications-utils/pull/889/files

At the moment, we are not doing any transformation of features before
applying geometric algorithms to them. This is, in effect, assuming that
the earth is flat.

This new version of utils implements the transformation of our polygons
to a Cartesian plane. In other words, it converts them from being
defined in spherical degrees to metres.

For the admin app this means we need to convert places where the code
expects things to be measured in degrees to work in metres instead.
2021-12-01 14:10:54 +00:00
Chris Hill-Scott
b74fcf2570 Bump WTForms and Flask-WTF to latest versions
WTForms versions less than 3.0.0 have a security vulnerability where
arbitrary HTML can be inserted into the label of a form, allowing the
possibility of a cross-site scripting attack.

I don’t know if there’s anywhere we put user-generated content into form
labels but it’s possible we are vulnerable somewhere.

This require moving some imports because as of
https://github.com/wtforms/wtforms/pull/614/files
there is no longer a separate module for HTML 5 fields, they are now
considered core fields.

As of https://github.com/wtforms/wtforms/issues/445/files custom
implementations of `pre_validate` or `post_validate` must raise
`ValidationError` to trigger a validation message, where we were raising
`ValueError` this was no longer being caught.

As of https://github.com/wtforms/wtforms/pull/355/files `StringField`
returns `None` for empty data, not `''` but our `validate_email_address`
function only accepts strings.
2021-11-30 17:33:13 +00:00
Chris Hill-Scott
89de57c521 Check that PyProj can be installed on PaaS
Previously when trying to bring in
https://github.com/alphagov/notifications-utils/pull/889 we had trouble
because there were no wheels available for the version of Pip that we
were using. Now that we have upgraded to Python 3.9 we are using a
newer buildpack which should have the necessary wheels available.

This commit is just installing the package and nothing else, to give us
more confidence that we can merge
https://github.com/alphagov/notifications-utils/pull/915/files without
having to subsequently revert it.
2021-11-17 09:54:04 +00:00
David McDonald
56d6b3e533 Merge pull request #4059 from alphagov/bump-utils-to-fix-non-break-space
Upgrade utils to 48.0.0
2021-11-05 15:13:48 +00:00
Chris Hill-Scott
95be3bd199 Merge pull request #4043 from alphagov/jinja2-version3
Require the newest version of Jinja2
2021-11-04 16:45:51 +00:00
Katie Smith
2ad5712467 Freeze requirements
This is the results of running `make freeze-requirements` with the
Python version set to 3.9.
2021-11-02 15:58:52 +00:00
David McDonald
c6b884dcef Upgrade utils to 48.0.0
Fixes a bug with non breaking spaces being removed from templates
2021-11-01 10:22:58 +00:00
Chris Hill-Scott
873cfaf7a0 Bump utils to 47.0.1
Changes:
https://github.com/alphagov/notifications-utils/compare/46.1.0...47.0.1

The breaking change is due to the removal of ZendeskClient.create_ticket
which this app is no longer using.

> Although this is a breaking change to the ZendeskClient, nothing is
> using the code that was deleted.

— https://github.com/alphagov/notifications-utils/pull/902#discussion_r720095133
2021-10-28 09:33:03 +01:00
Chris Hill-Scott
a583999725 Freeze requirements 2021-10-20 15:02:53 +01:00
Ben Thorner
66e5022198 Merge pull request #4039 from alphagov/bump-python-client-6-3-0
Bump python-client to 6.3.0
2021-10-18 11:25:20 +01:00
Chris Hill-Scott
ee3fb2f175 Pin importlib-metadata
We can’t use the latest version of importlib-metadata because it’s
pinned to <4.3 by the newest version of flake8.

The conflict is caused by:
    The user requested importlib-metadata==4.8.1
    click 8.0.1 depends on importlib-metadata; python_version < "3.8"
    pytest 6.2.5 depends on importlib-metadata>=0.12; python_version < "3.8"
    flake8 4.0.1 depends on importlib-metadata<4.3; python_version < "3.8"

Our `make freeze-requirements` task doesn’t catch this because it
doesn’t look at dependencies in `requirements-for-test.txt`. Therefore
it only freezes the version that `click` is specifying, which is the
latest version.

Pinning the version in `requirements.in` gets around this.
2021-10-13 15:59:35 +01:00
Ben Thorner
c54c9e54ed Bump python-client to 6.3.0 2021-10-13 15:46:32 +01:00
Chris Hill-Scott
5aa8805573 Require the newest version of Jinja2
Flask version 2 requires Jinja2 version 3. However rather than bumping
both at once it feels safer to do this incrementally, so we can isolate
anything which breaks.
2021-10-13 12:11:45 +01:00
Chris Hill-Scott
c2d9a56ff4 Bump Werkzeug to version 2.0.2
This is the newest version.

Pyup is complaining about vulnerabilities in version 1.0.1, specifically
> Werkzeug version 2.0.2 improves the security of the debugger cookies.
> "SameSite" attribute is set to "Strict" instead of "None", and the
> secure flag is added when on HTTPS.

Previously we were using whatever version of Werkzeug that Flask
specified this pins it to get rid of the vulnerability without having to
upgrade everything at once.

This requires a few changes to tests which were relying on importing
`session` and `current_user` from Flask. Previously it seemed that
importing these in the tests referred to the same object that was being
used in the app. This appears to no longer be the case. This commit
works around that by:
- using a context manager to get the contents of the session, like we
  already do in most tests
- asserting that the mock which logs the user in is being called with
  the right values, rather than looking at the state of the
  `current_user` object (which was probably giving false certainty
  anyway)
2021-10-12 10:39:19 +01:00
Katie Smith
a8deec1b9f Bump utils to 46.1.0 2021-09-22 12:00:05 +01:00
Ben Thorner
8e99f9d0d3 Bump utils to 46.0.0
This brings in some new polygon simplication code [1] so we need to
tweak any tests that rely on the exact number of polygons after this
operation.

[1]: https://github.com/alphagov/notifications-utils/pull/890
2021-09-08 14:30:10 +01:00
Chris Hill-Scott
5ba8387c6d Bump utils to 44.5.0
Brings in a new `intersects_with()` method of `Polygons` which will come
in handy.
2021-08-23 16:57:15 +01:00
Chris Hill-Scott
fab44e016a Add Pyup comment to requirements.txt
This matches what’s in requirements.in, but the Pyup comments don’t
automatically get copied when generating requirements.txt. This causes
Pyup’s safety CI to complain we’re using a version with a known
vulnerability (which doesn’t affect us since we don’t use websockets).
2021-07-23 09:01:53 +01:00
Ben Thorner
63926235cc Bump Python client version to 6.2.1
This is a prerequisite for [1]. I'd like to deploy it as a separate
change so it's easy to roll back if we need to.

[1]: https://github.com/alphagov/notifications-admin/pull/3970
2021-07-19 10:19:43 +01:00
Pea Tyczynska
7f08ae7c29 Bump utils to revert a bug to conditional multiline placeholders 2021-07-09 13:51:39 +01:00
Chris Hill-Scott
e4ca78634d Bump utils to bring in new polygon simplification
We’ve changed our simplification a bit so:
- polygons have slightly more points (see https://github.com/alphagov/notifications-utils/pull/873)
- the individual points have less precision (see https://github.com/alphagov/notifications-utils/pull/872)

Overall this reduces the size of the data we’re storing from 74MB to
63MB, and should make any pages where we are rendering lots of
coordinates load a bit quicker.
2021-07-06 17:00:50 +01:00
Chris Hill-Scott
7832c862a1 Pin Flask to less than version 2
Flask 2.0 requires Jinja 3.0

govuk_frontend_jinja is not compatible with Jinja 3.0 yet
2021-06-02 16:15:34 +01:00
Chris Hill-Scott
0888ecb628 Freeze requirements 2021-06-02 15:28:31 +01:00
pyup-bot
69a498cbd0 Update xlrd from 1.2.0 to 2.0.1 2021-06-02 15:28:30 +01:00
pyup-bot
4e82afeae6 Update werkzeug from 1.0.1 to 2.0.1 2021-06-02 15:28:30 +01:00
pyup-bot
ee16845c65 Update urllib3 from 1.26.4 to 1.26.5 2021-06-02 15:28:30 +01:00
pyup-bot
69141eb13c Update six from 1.15.0 to 1.16.0 2021-06-02 15:28:30 +01:00
pyup-bot
ea13a94952 Update s3transfer from 0.3.7 to 0.4.2 2021-06-02 15:28:30 +01:00
pyup-bot
c2ee400123 Update pyjwt from 2.0.1 to 2.1.0 2021-06-02 15:28:30 +01:00
pyup-bot
25418ddb04 Update phonenumbers from 8.12.21 to 8.12.24 2021-06-02 15:28:30 +01:00
pyup-bot
934a144725 Update markupsafe from 1.1.1 to 2.0.1 2021-06-02 15:28:30 +01:00
pyup-bot
9563138d6f Update jinja2 from 2.11.3 to 3.0.1 2021-06-02 15:28:30 +01:00
pyup-bot
0e15653939 Update idna from 2.10 to 3.2 2021-06-02 15:28:30 +01:00
pyup-bot
b4a9fe21b6 Update greenlet from 1.0.0 to 1.1.0 2021-06-02 15:28:30 +01:00
pyup-bot
a00db30546 Update et-xmlfile from 1.0.1 to 1.1.0 2021-06-02 15:28:30 +01:00
pyup-bot
3487087f4a Update docutils from 0.15.2 to 0.17.1 2021-06-02 15:28:30 +01:00
pyup-bot
79e1273d82 Update dnspython from 1.16.0 to 2.1.0 2021-06-02 15:28:30 +01:00
pyup-bot
c72022307c Update cryptography from 3.3.2 to 3.4.7 2021-06-02 15:28:30 +01:00
pyup-bot
1de542bd05 Update colorama from 0.4.3 to 0.4.4 2021-06-02 15:28:30 +01:00
pyup-bot
48ae94efa7 Update click from 7.1.2 to 8.0.1 2021-06-02 15:28:30 +01:00