Skip to content

Commit 614bbeb

Browse files
authored
Merge branch 'main' into fix/inconsistent-project-role-events
2 parents 358e1dd + d336aa1 commit 614bbeb

File tree

13 files changed

+120
-56
lines changed

13 files changed

+120
-56
lines changed

requirements/docs.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ certifi==2022.6.15 \
1616
--hash=sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d \
1717
--hash=sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412
1818
# via requests
19-
charset-normalizer==2.0.12 \
20-
--hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \
21-
--hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df
19+
charset-normalizer==2.1.0 \
20+
--hash=sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5 \
21+
--hash=sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413
2222
# via requests
2323
docutils==0.17.1 \
2424
--hash=sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125 \
@@ -147,7 +147,7 @@ sphinxcontrib-serializinghtml==1.1.5 \
147147
--hash=sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd \
148148
--hash=sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952
149149
# via sphinx
150-
urllib3==1.26.9 \
151-
--hash=sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14 \
152-
--hash=sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e
150+
urllib3==1.26.10 \
151+
--hash=sha256:8298d6d56d39be0e3bc13c1c97d133f9b45d797169a0e11cdd0e0489d786f7ec \
152+
--hash=sha256:879ba4d1e89654d9769ce13121e0f94310ea32e8d2f8cf587b77c08bbcdb30d6
153153
# via requests

requirements/lint.txt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ black==22.6.0 \
3333
--hash=sha256:f586c26118bc6e714ec58c09df0157fe2d9ee195c764f630eb0d8e7ccce72e69 \
3434
--hash=sha256:f6fe02afde060bbeef044af7996f335fbe90b039ccf3f5eb8f16df8b20f77666
3535
# via -r requirements/lint.in
36-
boto3-stubs==1.24.22 \
37-
--hash=sha256:0602494ca5ae96fd6a275f1fb47c79b565bd1b7d6bcb3427db9db10b5a05dea4 \
38-
--hash=sha256:f6166156e6e6b03f27056efcab1c38fbf98d886743470ce1b900c4d56977817f
36+
boto3-stubs==1.24.25 \
37+
--hash=sha256:89406d1952f352119213c75100a98e9a10bafff0a3c893619442d1048ea8ad29 \
38+
--hash=sha256:ddd5821abbcd1742a28a9f2aa4ef79e13e0de6fab87799fe79f9630114467b07
3939
# via types-boto3
40-
botocore-stubs==1.27.22 \
41-
--hash=sha256:56c687edac63deb757623c152265aa37e8e79492f482bc334f5ce084b70c80b7 \
42-
--hash=sha256:ec94790abb50ae7da42f1650f09a35a86ef257c50f03b0a618ede1ed807b5609
40+
botocore-stubs==1.27.25 \
41+
--hash=sha256:72779b2fc5b062e5bef86079fa6c7314375f74bf9b95f03fe888b7604c8c9452 \
42+
--hash=sha256:f0cd462c2b991c19478135259857628c706a4fd83043c266f94b2cb7a1d29a16
4343
# via boto3-stubs
4444
celery-types==0.13.1 \
4545
--hash=sha256:0a92d8eded085d055595b04290dd8e5fcd84f4412a00a25f2122d4e6c58a1f56 \
@@ -195,9 +195,9 @@ types-itsdangerous==1.1.6 \
195195
--hash=sha256:21c6966c10e353a5d35d36c82aaa2c5598d3bc32ddc8e0591276da5ad2e3c638 \
196196
--hash=sha256:aef2535c2fa0527dcce244ece0792b20ec02ee46533800735275f82a45a0244d
197197
# via -r requirements/lint.in
198-
types-passlib==1.7.5 \
199-
--hash=sha256:810ce820882a900429b2cbe6554851182370337c7246b0e0728ff4145db0edcf \
200-
--hash=sha256:8366c5e31bbff65c0a6d1a0f10e84fba567797680c643b485b072691bc0908db
198+
types-passlib==1.7.6 \
199+
--hash=sha256:5d84edb4398590030e3218b8918395fe4010cb6d7550a6ee94511470938f3e34 \
200+
--hash=sha256:8056111211c917c83050a0e1a692f699896c2078d79fce9969c7373018a2183c
201201
# via -r requirements/lint.in
202202
types-psycopg2==2.9.16 \
203203
--hash=sha256:adf3be817cb82e17e6d36c4112718dbda38f98db291d736f022a1d89b53c832c \
@@ -233,9 +233,9 @@ types-stdlib-list==0.8.1 \
233233
--hash=sha256:1ba8c5ac639715bc3670da07e1679acbedc6834dd6caba5e6c7fb14aa468d5ed \
234234
--hash=sha256:f7fb88d8c602911256918ba8985ac9d9176ff4ca31d6138fedea1a5992b69645
235235
# via -r requirements/lint.in
236-
types-urllib3==1.26.15 \
237-
--hash=sha256:6011befa13f901fc934f59bb1fd6973be6f3acf4ebfce427593a27e7f492918f \
238-
--hash=sha256:c89283541ef92e344b7f59f83ea9b5a295b16366ceee3f25ecfc5593c79f794e
236+
types-urllib3==1.26.16 \
237+
--hash=sha256:20588c285e5ca336d908d2705994830a83cfb6bda40fc356bbafaf430a262013 \
238+
--hash=sha256:8bb3832c684c30cbed40b96e28bc04703becb2b97d82ac65ba4b968783453b0e
239239
# via types-requests
240240
typing-extensions==4.3.0 \
241241
--hash=sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02 \

requirements/main.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ kombu[sqs]~=5.2.4 # https://github.com/celery/celery/issues/7070
2626
mistune
2727
msgpack
2828
natsort
29+
orjson
2930
packaging>=15.2
3031
paginate>=0.5.2
3132
paginate_sqlalchemy

requirements/main.txt

Lines changed: 52 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -80,15 +80,15 @@ bleach==5.0.1 \
8080
--hash=sha256:085f7f33c15bd408dd9b17a4ad77c577db66d76203e5984b1bd59baeee948b2a \
8181
--hash=sha256:0d03255c47eb9bd2f26aa9bb7f2107732e7e8fe195ca2f64709fcf3b0a4a085c
8282
# via readme-renderer
83-
boto3==1.24.22 \
84-
--hash=sha256:67d404c643091d4aa37fc485193289ad859f1f65f94d0fa544e13bdd1d4187c1 \
85-
--hash=sha256:c9a9f893561f64f5b81de197714ac4951251a328672a8dba28ad4c4a589c3adf
83+
boto3==1.24.25 \
84+
--hash=sha256:453136cdfeccec5ac969e8b237916ef387cd6b150e38757b6c51cd4808c7969b \
85+
--hash=sha256:7f2772aa9f8fef011ad1bf5e631365bfeda20952a75a9edead3f5396aa1e8565
8686
# via
8787
# -r requirements/main.in
8888
# kombu
89-
botocore==1.27.22 \
90-
--hash=sha256:7145d9b7cae87999a9f074de700d02a1b3222ee7d1863aa631ff56c5fc868035 \
91-
--hash=sha256:f57cb33446deef92e552b0be0e430d475c73cf64bc9e46cdb4783cdfe39cb6bb
89+
botocore==1.27.25 \
90+
--hash=sha256:345616f51ee6c4f3edefa1623cf65a954ba21576371c153dfc2b8ed642870999 \
91+
--hash=sha256:cc4f025dc7187797b6b7115274399612b3fe8e777150fc9df7e132bd9e90901c
9292
# via
9393
# boto3
9494
# s3transfer
@@ -216,9 +216,9 @@ cffi==1.15.1 \
216216
# cmarkgfm
217217
# cryptography
218218
# pynacl
219-
charset-normalizer==2.0.12 \
220-
--hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \
221-
--hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df
219+
charset-normalizer==2.1.0 \
220+
--hash=sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5 \
221+
--hash=sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413
222222
# via requests
223223
click==8.1.3 \
224224
--hash=sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e \
@@ -830,6 +830,46 @@ natsort==8.1.0 \
830830
--hash=sha256:c7c1f3f27c375719a4dfcab353909fe39f26c2032a062a8c80cc844eaaca0445 \
831831
--hash=sha256:f59988d2f24e77b6b56f8a8f882d5df6b3b637e09e075abc67b486d59fba1a4b
832832
# via -r requirements/main.in
833+
orjson==3.7.7 \
834+
--hash=sha256:0033c7279f0ffa2720d72a6234a1d22c86c13bf5217a99c5ba523a0aebb27b75 \
835+
--hash=sha256:092fde5b1768ca68af0d3764746e93b4b7200050fdd9c1ea044fd106e2379951 \
836+
--hash=sha256:2850cf49537c246000f5f89555d6fb7042bb4612214605a60bea89cbe0add213 \
837+
--hash=sha256:2c43fd0317a7114e617f5b8aefd0d0a61b387927a1914b79ebd0d1235c658f5b \
838+
--hash=sha256:313bcab8cd59d61e12bbf76a9b5f3eaf50848e3fb370a54f712ad3e3e0a48165 \
839+
--hash=sha256:3e9b1f19b408199af4d4ad590f6935ba77342a3fe1d64cbbfe428025a03a2405 \
840+
--hash=sha256:3f9fbf760c6612d08a4ea873e4fab1e657f826834deda58c2ba1406ef150b1b6 \
841+
--hash=sha256:559f40a91bfde23137e107f2f8baaf0bef35e066d0b35dcf4e1dac8bc83a05b3 \
842+
--hash=sha256:5c8141895c8b0a8b4d0bc1879d1c1e3ec3f7d7e29e0bd8a0146ef3f9cf13c325 \
843+
--hash=sha256:5f20d0d48335262ca3695f98599446bf5ca8825193d1f4bf6eb08fb0c414befa \
844+
--hash=sha256:5ff90b571023787dcbb504a1695ad137149df30d213128b1aa02fc82dd12a526 \
845+
--hash=sha256:6340e57fece4fa0eebd1e5c48e2c844b329491d97bfe6843149eb45365ff837a \
846+
--hash=sha256:657ce6d735dc3a6fba5043d831e769698db849915d581dd4d1e62fcc2eaed876 \
847+
--hash=sha256:6a743e05de78758f9ff81a4e705e6226b06a5f8abba63b39cb0f56926c2045c5 \
848+
--hash=sha256:6e5ea0fcf3452cd19ad34b37ca6279c4395b859c77fe1cf7e26d31a3e6ebafd5 \
849+
--hash=sha256:6fbf29bb7897d345bd0120c466cd923c70a5d661144221457cbed637f4c93d1b \
850+
--hash=sha256:70cffd48faafabdd7e42f35e38731c43200d525fdbabc587b1e2aa731d182f85 \
851+
--hash=sha256:7f80825fa7a48c4abcd636d3c182a71ad1cb548db66b8aafad50dfd328c29ae0 \
852+
--hash=sha256:891c0f2cb44beafa911cf7e15165dee8b8acaa5b48a75abaf37d529e1de68344 \
853+
--hash=sha256:8c30ad18fad795690527b030cfed3e8402ebe3a15e7a1a779a00acc0b3587e89 \
854+
--hash=sha256:8da26f1fd335e466e79779571326679b179bb7cf3cce9750bf9c1077e9298a6f \
855+
--hash=sha256:9f7f420ab7efde90c7277e92dccf217b4bac628b044fdc857888cdba23126214 \
856+
--hash=sha256:a34002a6b6eb105d3ac493368f0a8911ab8e5f005282d43cc75912bbbdf50734 \
857+
--hash=sha256:aee6715db93b3d743adc69f55ed20df6a782b5e354d26a7817e507e2bd6d2231 \
858+
--hash=sha256:b6a6d00e917e1844d3a9b6ed68d31f824d98e1e4a3578618dd146db58b5d901b \
859+
--hash=sha256:ba48e06659c43ed6658f203893b74b4e8392231959bcb2421fdde39eca62520c \
860+
--hash=sha256:c1e8489d50bb0cffb5ccb70c3459f79dee1aeb997abfd97751d3862b32bce412 \
861+
--hash=sha256:ce3acc906a6aa7923bc7c78472196b2b7cf7c160aff01946984d51fcde9e9483 \
862+
--hash=sha256:d8f1aa7fd08f001b5f13d0c8c862609bb7de7291b256630f97590eb7c78d2dda \
863+
--hash=sha256:d9af18e8200b500585627414ec7b0806b5b569a318d6c84447afb02e7eae5bfa \
864+
--hash=sha256:dbf716120886776706781c2c05ebbc254355e384bfe387b76ca07ee97da6fbfc \
865+
--hash=sha256:e8bfad95df150d95ca67a4484d9f56e2bd0a932a5eb4635bbb5cd45130ca9251 \
866+
--hash=sha256:ea0f6da9089e155acf234c0cd0883f84812547174be8d0fef478bce2b00bd6f9 \
867+
--hash=sha256:ea3eaa8823bbbaae7af9669ca68b0e0bd794ee0938900d73f5f321fb13bb5ab5 \
868+
--hash=sha256:ead2c1dce61c2e3bad31af48c2dccbbc23c55bbe70870af437203a7c4b229bae \
869+
--hash=sha256:ee2cd3ac6283832d93085910df8367a469bd9dbfafeb8d4dc8c5cc8648bf965c \
870+
--hash=sha256:f0c512efeee1fb94426b1e4c64f07c4af5eec08b96cf4835c3a05ad395e0b83a \
871+
--hash=sha256:fa9451779dba8546962bc02ce2aeed9de6e069f7101f8db2784beaf71ede4dd0
872+
# via -r requirements/main.in
833873
packaging==21.3 \
834874
--hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \
835875
--hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522
@@ -1236,9 +1276,9 @@ typing-extensions==4.3.0 \
12361276
# via
12371277
# limits
12381278
# pydantic
1239-
urllib3==1.26.9 \
1240-
--hash=sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14 \
1241-
--hash=sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e
1279+
urllib3==1.26.10 \
1280+
--hash=sha256:8298d6d56d39be0e3bc13c1c97d133f9b45d797169a0e11cdd0e0489d786f7ec \
1281+
--hash=sha256:879ba4d1e89654d9769ce13121e0f94310ea32e8d2f8cf587b77c08bbcdb30d6
12421282
# via
12431283
# botocore
12441284
# elasticsearch

requirements/tests.txt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ certifi==2022.6.15 \
2020
--hash=sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d \
2121
--hash=sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412
2222
# via requests
23-
charset-normalizer==2.0.12 \
24-
--hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \
25-
--hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df
23+
charset-normalizer==2.1.0 \
24+
--hash=sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5 \
25+
--hash=sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413
2626
# via requests
2727
coverage==6.4.1 \
2828
--hash=sha256:01c5615d13f3dd3aa8543afc069e5319cfa0c7d712f6e04b920431e5c564a749 \
@@ -71,9 +71,9 @@ factory-boy==3.2.1 \
7171
--hash=sha256:a98d277b0c047c75eb6e4ab8508a7f81fb03d2cb21986f627913546ef7a2a55e \
7272
--hash=sha256:eb02a7dd1b577ef606b75a253b9818e6f9eaf996d94449c9d5ebb124f90dc795
7373
# via -r requirements/tests.in
74-
faker==13.14.0 \
75-
--hash=sha256:0297b7fc0f2458dfff8d5a92335c62fa25fb059f8cbaf7db580a0dd7177aff2e \
76-
--hash=sha256:b9f93ec97a70da79d43f497aa7b2b7d2bcd5d0c6d3ab7c102dde4193d0a38351
74+
faker==13.15.0 \
75+
--hash=sha256:8e94a749d2f3d9b367f61eb33be6a534f0a2d305c54e912ee6618370e3278db7 \
76+
--hash=sha256:a126fa66f54e65a67f913dcc698c9d023def7277882536bde2968fcac701bfd5
7777
# via factory-boy
7878
freezegun==1.2.1 \
7979
--hash=sha256:15103a67dfa868ad809a8f508146e396be2995172d25f927e48ce51c0bf5cb09 \
@@ -194,9 +194,9 @@ tomli==2.0.1 \
194194
--hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \
195195
--hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f
196196
# via pytest
197-
urllib3==1.26.9 \
198-
--hash=sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14 \
199-
--hash=sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e
197+
urllib3==1.26.10 \
198+
--hash=sha256:8298d6d56d39be0e3bc13c1c97d133f9b45d797169a0e11cdd0e0489d786f7ec \
199+
--hash=sha256:879ba4d1e89654d9769ce13121e0f94310ea32e8d2f8cf587b77c08bbcdb30d6
200200
# via
201201
# requests
202202
# responses

tests/unit/test_config.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
from unittest import mock
1616

17+
import orjson
1718
import pretend
1819
import pytest
1920

@@ -443,7 +444,10 @@ def __init__(self):
443444
]
444445

445446
assert json_renderer_cls.calls == [
446-
pretend.call(sort_keys=True, separators=(",", ":"))
447+
pretend.call(
448+
serializer=orjson.dumps,
449+
option=orjson.OPT_SORT_KEYS | orjson.OPT_APPEND_NEWLINE,
450+
)
447451
]
448452

449453
assert xmlrpc_renderer_cls.calls == [pretend.call(allow_none=True)]

warehouse/config.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import os
1616
import shlex
1717

18+
import orjson
1819
import transaction
1920

2021
from pyramid import renderers
@@ -175,6 +176,7 @@ def configure(settings=None):
175176
default="https://api.github.com/meta/public_keys/token_scanning",
176177
)
177178
maybe_set(settings, "warehouse.trending_table", "WAREHOUSE_TRENDING_TABLE")
179+
maybe_set(settings, "warehouse.downloads_table", "WAREHOUSE_DOWNLOADS_TABLE")
178180
maybe_set(settings, "celery.broker_url", "BROKER_URL")
179181
maybe_set(settings, "celery.result_url", "REDIS_URL")
180182
maybe_set(settings, "celery.scheduler_url", "REDIS_URL")
@@ -451,7 +453,13 @@ def configure(settings=None):
451453

452454
# We want to configure our JSON renderer to sort the keys, and also to use
453455
# an ultra compact serialization format.
454-
config.add_renderer("json", renderers.JSON(sort_keys=True, separators=(",", ":")))
456+
config.add_renderer(
457+
"json",
458+
renderers.JSON(
459+
serializer=orjson.dumps,
460+
option=orjson.OPT_SORT_KEYS | orjson.OPT_APPEND_NEWLINE,
461+
),
462+
)
455463

456464
# Configure retry support.
457465
config.add_settings({"retry.attempts": 3})

warehouse/packaging/tasks.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import pip_api
1818

1919
from google.cloud.bigquery import LoadJobConfig
20+
from packaging.utils import canonicalize_name
2021

2122
from warehouse import tasks
2223
from warehouse.accounts.models import User, WebAuthn
@@ -64,11 +65,11 @@ def compute_2fa_mandate(request):
6465
)
6566
top_projects = set(row.get("project_name") for row in query.result())
6667

67-
project_names = our_dependencies | top_projects
68+
project_names = {canonicalize_name(n) for n in our_dependencies | top_projects}
6869

6970
# Get the projects that were not previously in the mandate
7071
new_projects = request.db.query(Project).filter(
71-
Project.name.in_(project_names), Project.pypi_mandates_2fa.is_(False)
72+
Project.normalized_name.in_(project_names), Project.pypi_mandates_2fa.is_(False)
7273
)
7374

7475
# Get their maintainers

warehouse/templates/base.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,10 @@
101101
<link rel="canonical" href="{% block canonical_url %}{% endblock %}">
102102
{% endif %}
103103

104-
<meta property="og:url" content="{% if request.matched_route %}{{ request.current_route_url() }}{% else %}{{ request.urll }}{% endif %}">
104+
<meta property="og:url" content="{% if request.matched_route %}{{ request.current_route_url() }}{% else %}{{ request.url }}{% endif %}">
105105
<meta property="og:site_name" content="PyPI">
106106
<meta property="og:type" content="website">
107-
<meta property="og:image" content="{{ request.static_url('warehouse:static/dist/images/twitter.jpg') }}">
107+
<meta property="og:image" content="{% block image %}{{ request.static_url('warehouse:static/dist/images/twitter.jpg') }}{% endblock %}">
108108
<meta property="og:title" content="{{ self.title()|default('Python Package Index') }}">
109109
<meta property="og:description" content="{{ self.description() }}">
110110
{% block extra_meta %}{% endblock %}

warehouse/templates/email/two-factor-mandate/body.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,22 @@
1616

1717
{% block content %}
1818
<p>
19-
Congratulations! A project you ('{{ username }}') maintain has been designated as a critical project.
19+
A project you ('{{ username }}') maintain has been designated as a critical project on PyPI. You can see which project(s) has been designated at <a href="{{ request.route_url("manage.projects", _host="pypi.org") }}">{{ request.route_url("manage.projects", _host="pypi.org") }}</a>.
2020
</p>
2121

2222
<p>
23-
As part of this effort, in the coming months maintainers of projects designated as critical will be required to enable two-factor authentication on their account in order to add new releases or otherwise modify a critical project.
23+
As part of this effort, in the coming months maintainers of projects designated as critical, like yourself, will be required to enable two-factor authentication on their account in order to add new releases or otherwise modify a critical project.
2424
</p>
2525

2626
<p>
2727
{% if has_two_factor %}
2828
Since you already have two-factor authentication enabled on your account, there's nothing you need to do at this time.
2929
{% else %}
30-
You can enable two-factor authenticaion on your account today by visiting <a href="{{ request.route_url("accounts.two-factor") }}">{{ request.route_url("accounts.two-factor") }}</a>.
30+
You can enable two-factor authentication on your account today by visiting <a href="{{ request.route_url("manage.account.two-factor", _host="pypi.org") }}">{{ request.route_url("manage.account.two-factor", _host="pypi.org") }}</a>.
3131
{% endif %}
3232
</p>
3333

3434
<p>
35-
PS: To make it easier for maintainers like you to enable two-factor authentication, we're also distributing security keys to eligible maintainers. See <a href="{{ request.route_url("security-key-giveaway") }}">{{ request.route_url("security-key-giveaway") }}</a> for more details.
35+
PS: To make it easier for maintainers like you to enable two-factor authentication, we're also distributing security keys to eligible maintainers. See <a href="{{ request.route_url("security-key-giveaway", _host="pypi.org") }}">{{ request.route_url("security-key-giveaway", _host="pypi.org") }}</a> for more details.
3636
</p>
3737
{% endblock %}

warehouse/templates/email/two-factor-mandate/body.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@
1414
{% extends "email/_base/body.txt" %}
1515

1616
{% block content %}
17-
Congratulations! A project you ('{{ username }}') maintain has been designated as a critical project.
17+
A project you ('{{ username }}') maintain has been designated as a critical project on PyPI. You can see which project(s) has been designated at {{ request.route_url("manage.projects", _host="pypi.org") }}.
1818

19-
As part of this effort, in the coming months maintainers of projects designated as critical will be required to enable two-factor authentication on their account in order to add new releases or otherwise modify a critical project.
19+
As part of this effort, in the coming months maintainers of projects designated as critical, like yourself, will be required to enable two-factor authentication on their account in order to add new releases or otherwise modify a critical project.
2020

2121
{% if has_two_factor -%}
2222
Since you already have two-factor authentication enabled on your account, there's nothing you need to do at this time.
2323
{%- else -%}
24-
You can enable two-factor authenticaion on your account today by visiting {{ request.route_url("accounts.two-factor") }}.
24+
You can enable two-factor authentication on your account today by visiting {{ request.route_url("manage.account.two-factor", _host="pypi.org") }}.
2525
{%- endif %}
2626

27-
PS: To make it easier for maintainers like you to enable two-factor authentication, we're also distributing security keys to eligible maintainers. See {{ request.route_url("security-key-giveaway") }} for more details.
27+
PS: To make it easier for maintainers like you to enable two-factor authentication, we're also distributing security keys to eligible maintainers. See {{ request.route_url("security-key-giveaway", _host="pypi.org") }} for more details.
2828

2929
{% endblock %}

warehouse/templates/packaging/detail.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
{% set icon = "fas fa-book" %}
2828
{% elif name.lower().startswith(("bug", "issue", "tracker", "report")) %}
2929
{% set icon = "fas fa-bug" %}
30-
{% elif name.lower().startswith(("funding", "donate", "donation")) %}
30+
{% elif name.lower().startswith(("funding", "donate", "donation", "sponsor")) %}
3131
{% set icon = "fas fa-donate" %}
3232
{% elif parsed.netloc in ["github.com", "github.io"] or parsed.netloc.endswith((".github.com", ".github.io")) %}
3333
{% set icon = "fab fa-github" %}

0 commit comments

Comments
 (0)