From 782ec1c5eb4aef426e65cce0d79e211fc3d64a3c Mon Sep 17 00:00:00 2001
From: Jonathan Bobel
Date: Wed, 24 Jan 2024 15:25:19 -0500
Subject: [PATCH 1/7] 963 - content updates
---
app/templates/views/pricing/index.html | 118 +++++--------------------
1 file changed, 21 insertions(+), 97 deletions(-)
diff --git a/app/templates/views/pricing/index.html b/app/templates/views/pricing/index.html
index 34d28443a..436da7735 100644
--- a/app/templates/views/pricing/index.html
+++ b/app/templates/views/pricing/index.html
@@ -15,62 +15,20 @@ Pricing
{{ content_metadata(
data={
-"Last updated": "Feb 27, 2023"
+"Last updated": "January 25, 2024"
}
) }}
-During pilot period, each service has an allowance of 250,000 free text messages. Once this allowance is met, the
-application will stop delivering messages. There's no monthly charge, no setup fee and no procurement cost.
-When a new service is added, it will start in trial mode. Moving a service out of trial mode is subject to approval by
-the Notify.gov team.
-You'll use more messages towards the allowance if you send text messages longer than 160 characters.
-
+During the pilot period, each service has an allowance of 250,000 message parts. Once this allowance is met, the
+application will stop delivering messages. There's no monthly charge, no setup fee, and no procurement cost. You'll use
+more parts towards the allowance if you:
-
- {% if not current_user.is_authenticated %}
- Create an account, then
- add your unique service(s).
-
-{% else %}
-Additional unique services may be added, although moving each service out of trial mode is subject to approval by the
-Notify.gov team.
-{% endif %}
-
-
-When you add a new service it will start in trial mode.
-
-You’ll use more messages towards the allowance if you send text messages longer than 160 characters.
-
-
-
-Text messages
-During pilot phase, each service has an annual allowance of 250,000 free text messages. Once this allowance is met,
- the application will stop delivering messages.
-
-You’ll use more messages towards the allowance, if you send text messages longer than 160 characters.
-You may also use more messages if you:
-
-
Long text messages
If a text message is longer than 160 characters (including spaces), it counts as more than one message.
@@ -82,12 +40,12 @@ Notify.gov team.
caption_visible=False
) %}
{% for message_length, charge in [
- ('Up to 160 characters', '1 text message'),
- ('Up to 306 characters', '2 text messages'),
- ('Up to 459 characters', '3 text messages'),
- ('Up to 612 characters', '4 text messages'),
- ('Up to 765 characters', '5 text messages'),
- ('Up to 918 characters', '6 text messages'),
+ ('Up to 160 characters', '1 part'),
+ ('Up to 306 characters', '2 parts'),
+ ('Up to 459 characters', '3 parts'),
+ ('Up to 612 characters', '4 parts'),
+ ('Up to 765 characters', '5 parts'),
+ ('Up to 918 characters', '6 parts'),
] %}
{% call row() %}
{{ text_field(message_length) }}
@@ -186,11 +144,11 @@ Notify.gov team.
caption_visible=False
) %}
{% for message_length, charge in [
- ('Up to 70 characters', '1 text message'),
- ('Up to 134 characters', '2 text messages'),
- ('Up to 201 characters', '3 text messages'),
- ('Up to 268 characters', '4 text messages'),
- ('Each additional 67 characters', '1 additional text message'),
+ ('Up to 70 characters', '1 part'),
+ ('Up to 134 characters', '2 parts'),
+ ('Up to 201 characters', '3 parts'),
+ ('Up to 268 characters', '4 parts'),
+ ('Each additional 67 characters', '1 additional part'),
] %}
{% call row() %}
{{ text_field(message_length) }}
@@ -200,43 +158,9 @@ Notify.gov team.
{% endcall %}
-Sending text messages to international numbers
-It might cost more to send text messages to international numbers than U.S. ones, depending on the country.
-
-
-{% endblock %}
\ No newline at end of file
+{% endblock %}
From d9875ef28793e0ecc3282b306ee4346283fcd49a Mon Sep 17 00:00:00 2001
From: Jonathan Bobel
Date: Thu, 25 Jan 2024 14:55:17 -0500
Subject: [PATCH 2/7] Content updates for Pricing, Trial Mode, and various
areas of changing "message parts"
---
app/formatters.py | 6 ++++
app/templates/views/trial-mode.html | 50 ++++++++++++--------------
app/templates/views/usage.html | 18 +++++-----
tests/app/main/views/test_dashboard.py | 10 +++---
4 files changed, 43 insertions(+), 41 deletions(-)
diff --git a/app/formatters.py b/app/formatters.py
index 86c187f55..a9519cbcf 100644
--- a/app/formatters.py
+++ b/app/formatters.py
@@ -448,6 +448,12 @@ def message_count_noun(count, template_type):
else:
return "text messages"
+ if template_type == "parts":
+ if count == 1:
+ return "text message part"
+ else:
+ return "text message parts"
+
elif template_type == "email":
if count == 1:
return "email"
diff --git a/app/templates/views/trial-mode.html b/app/templates/views/trial-mode.html
index 72b37170d..e1f377c6f 100644
--- a/app/templates/views/trial-mode.html
+++ b/app/templates/views/trial-mode.html
@@ -7,37 +7,33 @@
{% block content_column_content %}
Trial mode
-
When you add a new service it will start in trial mode. This lets you try out Notify.gov, with a few restrictions.
- While your service is in trial mode you can only:
-
- - send 50 text messages per day
- - send messages to yourself and other people in your team
-
- {% if current_service and current_service.trial_mode %}
-
- To remove these restrictions, you can request to go live.
- {% else %}
-
- To remove these restrictions:
-
-
- - Sign in to Notify.
- - Go to the Settings page.
- - Select Request to go live.
-
- {% endif %}
-
- When we receive your request we’ll get back to you within one working day.
-
- Before you request to go live
- You must:
+ Limits while in trial mode
+ While your service is in trial mode you can only:
- - add examples of the messages you want to send
- - update your settings so you’re ready to send and receive messages
- - accept our terms of use
+ - send 50 text message parts per day
+ - send messages to yourself and other people in your team
+
+ Each text message is made up of one or more parts.
+
+ - Generally, 160 characters is one part (and one text message).
+ - A text message of 160-306 characters is two parts.
+
+ For more information on how message parts are calculated, see
+ Pricing.
+
+ Before going Live
+ Before you request to make your service live so you can send messages to clients:
+
+ - Add examples of the messages you want to send into Notify.
+ - Update your settings so you’re ready to send and receive messages.
+ - Review your Terms of Use in the Memorandum of Understanding.
+ Going Live
+
+ To remove the restrictions of Trial Mode and begin sending messages to clients complete the Live Campaign Form.
+ We'll get back to you within one working day.
{% endblock %}
diff --git a/app/templates/views/usage.html b/app/templates/views/usage.html
index 87ce5ade8..5636536d5 100644
--- a/app/templates/views/usage.html
+++ b/app/templates/views/usage.html
@@ -19,25 +19,25 @@
-
+
Daily messages across all services
You have sent {{ global_message_limit - daily_global_messages_remaining }} of your {{ global_message_limit }} daily messages allowance.
You have {{ daily_global_messages_remaining }} messages remaining.
-
Text messages
+
Text message parts
You have sent
- {{ big_number(sms_sent, 'messages of your', smaller=True) }}
- {{ big_number(sms_free_allowance, 'free messages allowance.', smaller=True) }}
+ {{ big_number(sms_sent, 'text message parts of your', smaller=True) }}
+ {{ big_number(sms_free_allowance, 'free message parts allowance.', smaller=True) }}
You have
{% if sms_free_allowance > 0 %}
- {{ big_number(sms_allowance_remaining, 'messages remaining.', smaller=True) }}
+ {{ big_number(sms_allowance_remaining, 'message parts remaining.', smaller=True) }}
{% endif %}
{# {% for row in sms_breakdown %}
{% if row.charged_units > 0 %}
{{ big_number(
- row.charged_units,
+ row.charged_units,
'at {:.2f} pence per message'.format(row.rate * 100),
smaller=True
) }}
@@ -90,7 +90,7 @@
{{ item.month }}
{% endcall %}
{% for counts, template_type in [
- (item.sms_counts.0, 'sms'),
+ (item.sms_counts.0, 'parts'),
] %}
{% call field(align='left') %}
{{ big_number(
@@ -126,7 +126,7 @@
{% endif %}
{% endcall %}
-
+
{% endcall %}
{% endif %}
@@ -140,7 +140,7 @@
- What counts as 1 text message?
+ What counts as 1 text message part?
See pricing.
diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py
index b15e55a48..ff851dfed 100644
--- a/tests/app/main/views/test_dashboard.py
+++ b/tests/app/main/views/test_dashboard.py
@@ -992,8 +992,8 @@ def test_usage_page(
sms_column = normalize_spaces(annual_usage[0].text)
assert (
- "You have sent 251,800 messages of your 250,000 free messages allowance. You have 0 messages remaining."
- in sms_column
+ "You have sent 251,800 text message parts of your 250,000 free message parts allowance."
+ " You have 0 message parts remaining." in sms_column
)
assert "$29.85 spent" not in sms_column
assert "1,500 at 1.65 pence" not in sms_column
@@ -1029,8 +1029,8 @@ def test_usage_page_no_sms_spend(
annual_usage = page.find_all("div", {"class": "keyline-block"})
sms_column = normalize_spaces(annual_usage[0].text)
assert (
- "You have sent 1,000 messages of your 250,000 free messages allowance. You have 249,000 messages remaining."
- in sms_column
+ "You have sent 1,000 text message parts of your 250,000 free message parts allowance."
+ " You have 249,000 message parts remaining." in sms_column
)
assert "$0.00 spent" not in sms_column
assert "pence per message" not in sms_column
@@ -1106,7 +1106,7 @@ def test_usage_page_with_0_free_allowance(
sms_column = normalize_spaces(annual_usage[0].text)
assert (
- "You have sent 251,800 messages of your 0 free messages allowance. You have"
+ "You have sent 251,800 text message parts of your 0 free message parts allowance. You have"
in sms_column
)
assert "free allowance remaining" not in sms_column
From d5210427f0b42e671b1bf14f3589544f1eca8bda Mon Sep 17 00:00:00 2001
From: Tim Lowden
Date: Thu, 25 Jan 2024 15:52:59 -0500
Subject: [PATCH 3/7] Create manual_qa_template.yml
Just starting this
---
.github/ISSUE_TEMPLATE/manual_qa_template.yml | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 .github/ISSUE_TEMPLATE/manual_qa_template.yml
diff --git a/.github/ISSUE_TEMPLATE/manual_qa_template.yml b/.github/ISSUE_TEMPLATE/manual_qa_template.yml
new file mode 100644
index 000000000..8e6fe3dfc
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/manual_qa_template.yml
@@ -0,0 +1,73 @@
+name: "QA Checklist"
+description: "Use this template to manually QA for prod push"
+title: "QA for prod push: Admin #[insert PR number], API #[insert PR number], Utils #[insert PR number]"
+
+labels:
+ - "Type: Bug"
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Please use this form to file new bugs! Add screenshots to the comments of this initial form.
+ - type: input
+ id: contact
+ attributes:
+ label: Who discovered this?
+ description: Was it something you found or are you filing for someone else? If someone else, how can we contact them?
+ placeholder: ex. email@example.com
+ validations:
+ required: false
+ - type: textarea
+ id: what-happened
+ attributes:
+ label: What happened?
+ description: Also tell us, what did you expect to happen?
+ placeholder: Tell us what you see!
+ value: "A bug happened!"
+ validations:
+ required: true
+ - type: dropdown
+ id: environment
+ attributes:
+ label: Environment
+ description: In which environment did you experience the bug?
+ options:
+ - staging
+ - demo
+ - production
+ validations:
+ required: true
+ - type: textarea
+ id: page
+ attributes:
+ label: What pages did this appear on?
+ description: please include URLs of where you saw the bug
+ validations:
+ required: true
+ - type: textarea
+ id: reproSteps
+ attributes:
+ label: "Detail the steps for someone to reproduce"
+ description: "Reproduction steps"
+ validations:
+ required: true
+ - type: dropdown
+ id: browsers
+ attributes:
+ label: What browsers are you seeing the problem on?
+ multiple: true
+ options:
+ - Firefox
+ - Chrome
+ - Safari
+ - Microsoft Edge
+ - type: textarea
+ id: logs
+ attributes:
+ label: Relevant log output
+ description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
+ render: shell
+
+
+
From 3ac9d44b2aa5a1f02f8309f9e8d5c5a851b83092 Mon Sep 17 00:00:00 2001
From: Tim Lowden
Date: Thu, 25 Jan 2024 15:56:28 -0500
Subject: [PATCH 4/7] Update manual_qa_template.yml
---
.github/ISSUE_TEMPLATE/manual_qa_template.yml | 77 +++----------------
1 file changed, 12 insertions(+), 65 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/manual_qa_template.yml b/.github/ISSUE_TEMPLATE/manual_qa_template.yml
index 8e6fe3dfc..38db211fd 100644
--- a/.github/ISSUE_TEMPLATE/manual_qa_template.yml
+++ b/.github/ISSUE_TEMPLATE/manual_qa_template.yml
@@ -2,72 +2,19 @@ name: "QA Checklist"
description: "Use this template to manually QA for prod push"
title: "QA for prod push: Admin #[insert PR number], API #[insert PR number], Utils #[insert PR number]"
-labels:
- - "Type: Bug"
-
body:
- - type: markdown
- attributes:
- value: |
- Please use this form to file new bugs! Add screenshots to the comments of this initial form.
- - type: input
- id: contact
- attributes:
- label: Who discovered this?
- description: Was it something you found or are you filing for someone else? If someone else, how can we contact them?
- placeholder: ex. email@example.com
- validations:
- required: false
- - type: textarea
- id: what-happened
- attributes:
- label: What happened?
- description: Also tell us, what did you expect to happen?
- placeholder: Tell us what you see!
- value: "A bug happened!"
- validations:
- required: true
- - type: dropdown
- id: environment
- attributes:
- label: Environment
- description: In which environment did you experience the bug?
- options:
- - staging
- - demo
- - production
- validations:
- required: true
- - type: textarea
- id: page
- attributes:
- label: What pages did this appear on?
- description: please include URLs of where you saw the bug
- validations:
- required: true
- - type: textarea
- id: reproSteps
- attributes:
- label: "Detail the steps for someone to reproduce"
- description: "Reproduction steps"
- validations:
- required: true
- - type: dropdown
- id: browsers
- attributes:
- label: What browsers are you seeing the problem on?
- multiple: true
- options:
- - Firefox
- - Chrome
- - Safari
- - Microsoft Edge
- - type: textarea
- id: logs
- attributes:
- label: Relevant log output
- description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
- render: shell
+- type: checkboxes
+ id: Logging in
+ attributes:
+ description: Log In
+ options:
+ - label: notify-staging.app.cloud.gov resolves
+ - label: Clicking sign in takes you to login page
+ - label: 2FA code is sent promptly
+ - label: 2FA code input screen appears as expected
+ - label: After code is entered, you are brought to the “choose service” screen
+ - label: Choosing a service brings you to the dashboard for that service
+
From 37086cb03bb631c4dd233e1dae968846f5fbdbce Mon Sep 17 00:00:00 2001
From: Tim Lowden
Date: Thu, 25 Jan 2024 15:57:29 -0500
Subject: [PATCH 5/7] Update manual_qa_template.yml
---
.github/ISSUE_TEMPLATE/manual_qa_template.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/manual_qa_template.yml b/.github/ISSUE_TEMPLATE/manual_qa_template.yml
index 38db211fd..3a2b76437 100644
--- a/.github/ISSUE_TEMPLATE/manual_qa_template.yml
+++ b/.github/ISSUE_TEMPLATE/manual_qa_template.yml
@@ -4,9 +4,9 @@ title: "QA for prod push: Admin #[insert PR number], API #[insert PR number], Ut
body:
- type: checkboxes
- id: Logging in
+ id: Logging_in
attributes:
- description: Log In
+ label: Log In
options:
- label: notify-staging.app.cloud.gov resolves
- label: Clicking sign in takes you to login page
From af8309a2ce1efeb045a9000c33169354e5824be1 Mon Sep 17 00:00:00 2001
From: Tim Lowden
Date: Thu, 25 Jan 2024 16:07:58 -0500
Subject: [PATCH 6/7] Update manual_qa_template.yml
---
.github/ISSUE_TEMPLATE/manual_qa_template.yml | 68 ++++++++++++++++++-
1 file changed, 65 insertions(+), 3 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/manual_qa_template.yml b/.github/ISSUE_TEMPLATE/manual_qa_template.yml
index 3a2b76437..27985e5b7 100644
--- a/.github/ISSUE_TEMPLATE/manual_qa_template.yml
+++ b/.github/ISSUE_TEMPLATE/manual_qa_template.yml
@@ -14,7 +14,69 @@ body:
- label: 2FA code input screen appears as expected
- label: After code is entered, you are brought to the “choose service” screen
- label: Choosing a service brings you to the dashboard for that service
-
-
-
+
+- type: checkboxes
+ id: send_template
+ attributes:
+ label: Create a template and send
+ options:
+ - label: Clicking “Send messages” brings you to templates page
+ - label: When “Create a template” button is clicked, the option to create new or copy existing template appears
+ - label: Uploading a csv is quick and automatically directs you to the preview/send page
+ - label: Formatting looks clean and in place
+ - label: Message dashboard populates and shows “pending” until call is made to AWS for delivery receipt
+
+
+- type: checkboxes
+ id: send__copied_template
+ attributes:
+ label: Send a message from copied template
+ options:
+ - label: When “Create a template” button is clicked, the option to create new or copy existing template appears
+ - label: Clicking “copy an existing template” allows you to choose from pre-existing template
+ - label: After editing, the new template saves and you prepare to send
+
+
+- type: checkboxes
+ id: send__existing_template
+ attributes:
+ label: Send a message from existing template
+ options:
+ - label: Clicking on existing template brings you to preview screen with `prepare to send` button
+ - label: All else above persists as true (formatting, send, dashboard, etc)
+
+- type: checkboxes
+ id: download_report
+ attributes:
+ label: Download the csv delivery report
+ options:
+ - label: Clicking on the csv download directly after a message send downloads a report that contains the data we expect
+ - label: The batch report appears on the main dashboard batch table with accurate information
+ - label: Clicking on the csv download link from the main dashboard downloads a report that contains the data we expect
+
+- type: checkboxes
+ id: invite_member
+ attributes:
+ label: Invite a team member
+ options:
+ - label: Clicking on “Team” in settings brings you to team member screen
+ - label: Clicking “Invite a team member” brings you to email and permissions screen
+ - label: Clicking invite team member sends an invite and shows confirmation
+ - label: Invite email provides live link that works to register new team member
+
+- type: checkboxes
+ id: delete_member
+ attributes:
+ label: Delete a team member
+ options:
+ - label: From team member screen, clicking “Change Details” on a specific profile brings you to that person’s profile
+ - label: Clicking on “Remove this team member” prompts a confirmation
+ - label: Clicking the confirmation removes the team member
+
+- type: checkboxes
+ id: sign_out
+ attributes:
+ label: Sign Out
+ options:
+ - label: Hitting “Sign Out” takes you back to the homepage and logs you out
From c79c824b24242e86e1ee2f04d8756ceb0ea6c4e5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 25 Jan 2024 23:32:58 +0000
Subject: [PATCH 7/7] Bump newrelic from 9.5.0 to 9.6.0
Bumps [newrelic](https://github.com/newrelic/newrelic-python-agent) from 9.5.0 to 9.6.0.
- [Release notes](https://github.com/newrelic/newrelic-python-agent/releases)
- [Commits](https://github.com/newrelic/newrelic-python-agent/compare/v9.5.0...v9.6.0)
---
updated-dependencies:
- dependency-name: newrelic
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
poetry.lock | 71 +++++++++++++++++++++++++++++++----------------------
1 file changed, 41 insertions(+), 30 deletions(-)
diff --git a/poetry.lock b/poetry.lock
index d54c85e35..da354843e 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1428,6 +1428,16 @@ files = [
{file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"},
{file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"},
{file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"},
+ {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"},
+ {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"},
+ {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"},
+ {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"},
+ {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"},
+ {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"},
+ {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"},
+ {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"},
+ {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"},
+ {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"},
{file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"},
{file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"},
{file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"},
@@ -1620,40 +1630,40 @@ files = [
[[package]]
name = "newrelic"
-version = "9.5.0"
+version = "9.6.0"
description = "New Relic Python Agent"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*"
files = [
- {file = "newrelic-9.5.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:87c5ea1db9b2f573c7fb0961b7a856a91db0c9f130303de1839c542586b8dc87"},
- {file = "newrelic-9.5.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:8c62c07a69b86c54d3b9ce187551f36683ad8b70b6301273e7c1e89b121b8245"},
- {file = "newrelic-9.5.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:847dd07961adec25c4c1128e8666f72ba0ab03640a44a65bcf25ffebd6fc2a75"},
- {file = "newrelic-9.5.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:12be024a5dfd1667d05d7cce968189e2490b6f6d24f194695365607b2340be20"},
- {file = "newrelic-9.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c381d300d904e2a5eb60953a29a729dbd4d8213f6dd629cecaa3033db70a9060"},
- {file = "newrelic-9.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2e4ccd5fe97496806fe0ea1acb8b15791c1f012aa44fb047fc8016bcfb80ab9"},
- {file = "newrelic-9.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:14ef5e94d490315a73cf4bea4cd0186b2ec68009e90ab2c16a0b501942fa8629"},
- {file = "newrelic-9.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:306e54751fe1eba61884b0ed63e9583711b37e24db9c7b36725317c21aa609f5"},
- {file = "newrelic-9.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ac2b3603cc781ef58e51a95b0b58220feb3e322c282c758c3bf5430398a47bc"},
- {file = "newrelic-9.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5b0a3fbbd6ef1dca0d2434c8ddd15d945fef2cd343d09b3a352b8de825d2e83"},
- {file = "newrelic-9.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ab045fe37dcfd9c1fefc84f72373c54abd546d7517909fabd6920ea1d87c3f7f"},
- {file = "newrelic-9.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e54492c5f70cf0951ffc97ddd71b3cf64d68b4d670012d7a7d5ff3dc19417dab"},
- {file = "newrelic-9.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92968b7c6951f3ee0fe85a465ae79d448e587a3d10bf71d85b2cab09aa319776"},
- {file = "newrelic-9.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:847d75a08ca3ba356b6d6317618243e546dc7725251a453d4730ac6e9f043b71"},
- {file = "newrelic-9.5.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ec0fe958c5ed52cd8b496339df8661badbd24bdc290dea8744de94da705ccef0"},
- {file = "newrelic-9.5.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a2af10be7893f60588e2103b2f5ff616baf8132ecce90d9a8c7bfb832da08748"},
- {file = "newrelic-9.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2556ae2b9c13127dc46a6326c1ea682eae2c2b64b6873cfd4d5e177c7e0ce58a"},
- {file = "newrelic-9.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e9818646a7a72332e5ab3853277187af5b0d51312c51585a5581453fbdc1508"},
- {file = "newrelic-9.5.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b370179f644c0265e4467221e895dccc75440388c5cce8d6a89d150c6b265021"},
- {file = "newrelic-9.5.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c514f82942f7759bc4a360d908c4be37b8764a3ff1589ba3ad8b4baf201bad36"},
- {file = "newrelic-9.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15d4c2dd584c7604a03b2c73464ed3054cd8f0a513ed25832f1a3af4eb6e80ab"},
- {file = "newrelic-9.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2af79b43e3244ce7775eb7a0bf2e8fe2cb1624f6eb1be03cb6c35f9e8a5be77"},
- {file = "newrelic-9.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1dab3ef8baffebcf3f088a4131d93f3ac0e1fc08fa6045927c6bd2746b4decf4"},
- {file = "newrelic-9.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:78ca19f47b2bc38e18516c2a7c485eeac6979b271a1a5a4ac3b950581ca8a230"},
- {file = "newrelic-9.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63314277c983cd412b87dfa3ed101b88c40ccab683a98046d76bf44a33cb7637"},
- {file = "newrelic-9.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68917968adba4abde385be1c23d8fdb13714968883c3a3d1a83fb676ea614245"},
- {file = "newrelic-9.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:fb49e3a2e8ab9b509c8d276382f7ce0f6b4e51758b0edec38131ae583532b121"},
- {file = "newrelic-9.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4638e6c28ebf2b5a8a860ae33105a1816425f6ece0113df626c88e5626b22f41"},
- {file = "newrelic-9.5.0.tar.gz", hash = "sha256:2442449c4798989d92f527a82e60c446821c97896d739492b607bf6d4018ba1b"},
+ {file = "newrelic-9.6.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:09dad0db993402e166e37d99302c2ad5588b4ff1e5b814819540ca5ec2bd3cea"},
+ {file = "newrelic-9.6.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:aeadc0bd8140738af4d7d7ea9d0a3dfa7b6f37e02fe48c0a035ccb6cac881770"},
+ {file = "newrelic-9.6.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:16fb3bfde6dca0edab358c2b083386e2e764c463d85ffeb41cd6ce7a279bd7f6"},
+ {file = "newrelic-9.6.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:1ba2fc6ce0b6b9a399a1e5db7e480ba51b431cb3cc6ba136a4c0e76877cf972d"},
+ {file = "newrelic-9.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fe927f79db2dd5432a362aedde98543e93599b26d5c2e065bc563991be7f347"},
+ {file = "newrelic-9.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fefffff32e6605ddf26d51030ea1a41b9f7f606fccbb5f8d4b43c36d755acd1"},
+ {file = "newrelic-9.6.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0a68dd85a7cf4c5039ea94c8975f86a7c516dd492d8bf08976ab0a459918da9b"},
+ {file = "newrelic-9.6.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:74a9a49ef596aa9f7560f6bb1480480b8f9b652c7e03de173ef06b0dc2355799"},
+ {file = "newrelic-9.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26255aec6b29bc17e5e089bb18fbf004f4c765386ba61d1289681aa7ba538207"},
+ {file = "newrelic-9.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6f21f7a69294f64daa9be59c1c1e0eba889e85ed83afc67ed0a63c8efc9ff2b"},
+ {file = "newrelic-9.6.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5ecd44ff5b39138469778b5224a1a373867d21a0ca2389d093d99939cb422947"},
+ {file = "newrelic-9.6.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c6c4aa8b91dcb5403862c3e5efa57751a8b4e778576916bb22cafbfc03d47807"},
+ {file = "newrelic-9.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f02fb9166533f22fdb465f7a8d4b364178d94561b159cc9922f4d27491fd7d1"},
+ {file = "newrelic-9.6.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:703ee92dda983eb4dcbcc300750a815ff3a5401995c3cdd587ac785b6d747e0e"},
+ {file = "newrelic-9.6.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ce4646554246c6577f5aea358516ad5cf2c35fcef0cd16dbd01bbe89b19b4ccb"},
+ {file = "newrelic-9.6.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5fae1f3addb422629c4d3e9d011de40629b4d078073ad0517ad42d4ddc7e8441"},
+ {file = "newrelic-9.6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:333bd5aedb4f814447ac3aa1a0cc76910a64f13385aa6481a97f87585af52cbf"},
+ {file = "newrelic-9.6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a5aa22ce7813294ca5dc89a0d86ce4774bb9201028305975efdcf93ef36e0e"},
+ {file = "newrelic-9.6.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:01c0eb630bb18261241a37aa0a70cb6f706079a1f58f59f2bb64f26fda54ffc5"},
+ {file = "newrelic-9.6.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:eb82f31754dadd27676fe6f681b25db7af75eb854e332b92f1ea17584efc322c"},
+ {file = "newrelic-9.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38256e67b2d295229240c29e9949cdae40c9ac987d51f569f57f52ed2aef027f"},
+ {file = "newrelic-9.6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f681c005b1d44ec01b3fe1a7b4ec589572f681f27130ea367155ac0245e133d4"},
+ {file = "newrelic-9.6.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:23d54298bc0a936a17e25fdca52c2eefbc50966985738e31d62cfe12ea3f60ba"},
+ {file = "newrelic-9.6.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f346aeb418c9da6cff4382cb4f50d314ae5126a6a6037f01224b0072eb30ff49"},
+ {file = "newrelic-9.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26560dba7cd36c5c787e3dfd6c3c5d1e8e8605c82dc7ffee143880456d8650e5"},
+ {file = "newrelic-9.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d168349041922f206b72fa30a930c0752d8b76b4a2fd7774d4cb2843aa804e32"},
+ {file = "newrelic-9.6.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:72b378b4aa4a52d2ac14be962f0de747f573b9912365981c0b3fc16bd12b5133"},
+ {file = "newrelic-9.6.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5ab342ab7e3189e244e44238aa8563eeff3a5b5896b77d2d4dbf2c5d0bfe7d73"},
+ {file = "newrelic-9.6.0.tar.gz", hash = "sha256:3db642583cfee951f185696fe365b41d8aff733b23867e88de97de114e3cfcf8"},
]
[package.extras]
@@ -2466,6 +2476,7 @@ files = [
{file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"},
{file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"},
{file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"},
+ {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"},
{file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"},
{file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"},
{file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"},