-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Add 2025 review post #19175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Add 2025 review post #19175
Conversation
|
|
||
| But first, let's look at some numbers that illustrate the scale of PyPI in 2025: | ||
|
|
||
| * **[NUMBER]** new files published |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SELECT count(*)
FROM release_files
WHERE upload_time >= '2025-01-01 00:00:00'
AND upload_time < '2026-01-01 00:00:00';
| But first, let's look at some numbers that illustrate the scale of PyPI in 2025: | ||
|
|
||
| * **[NUMBER]** new files published | ||
| * **[NUMBER]** new projects created |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SELECT count(*)
FROM projects
WHERE created >= '2025-01-01 00:00:00'
AND created < '2026-01-01 00:00:00';
| * **[NUMBER]** petabytes of data transferred | ||
| * **[NUMBER]** billions of requests served |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| * **[NUMBER]** petabytes of data transferred | |
| * **[NUMBER]** billions of requests served | |
| * **[NUMBER]** exabytes of data transferred | |
| * **[NUMBER]** billion requests served | |
| * **[NUMBER]** requests per second on average |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please combine requests and bytes for storage with requests for APIs as well (I couldn't figure out how to combine the two services on a fastly dashboard).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ack, will do (I don't think it's possible to combine stats about services)
| Since rolling out these changes, we've seen: | ||
|
|
||
| * **[PERCENTAGE]%** of active users with non-phishable 2FA enabled. | ||
| * **[NUMBER]** total unique verified logins. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
select count(*) from user_unique_logins;
|
|
||
| Since rolling out these changes, we've seen: | ||
|
|
||
| * **[PERCENTAGE]%** of active users with non-phishable 2FA enabled. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SELECT
ROUND(
(COUNT(*) FILTER (WHERE last_login >= '2025-01-01 00:00:00'
AND last_login < '2026-01-01 00:00:00') * 100.0) /
NULLIF(COUNT(*), 0),
2) as percentage_active_security_key_users_2025
FROM users
WHERE id IN (SELECT user_id FROM user_security_keys);
|
|
||
| Adoption of trusted publishing has been fantastic: | ||
|
|
||
| * **[NUMBER]** of projects are now using trusted publishing. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SELECT count(DISTINCT project_id)
FROM oidc_publisher_project_association;
| Adoption of trusted publishing has been fantastic: | ||
|
|
||
| * **[NUMBER]** of projects are now using trusted publishing. | ||
| * **[PERCENTAGE]%** of all uploads to PyPI in the last year were done via trusted publishers. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SELECT
ROUND(
(COUNT(*) FILTER (WHERE (additional->>'uploaded_via_trusted_publisher')::boolean IS TRUE) * 100.0) /
NULLIF(COUNT(*), 0),
2) as percentage_trusted_uploads_2025
FROM file_events
WHERE time >= '2025-01-01 00:00:00'
AND time < '2026-01-01 00:00:00';
|
|
||
| We've also been hard at work on **attestations**, a new security feature that allows publishers to make verifiable claims about their software. We've added support for attestations from all Trusted Publishing providers, and we're excited to see how the community uses this feature to improve the security of the software supply chain. | ||
|
|
||
| * **[PERCENTAGE]%** of all uploads to PyPI in the last year that included an attestation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SELECT
ROUND(
(COUNT(p.file_id) * 100.0) / NULLIF(COUNT(rf.id), 0),
2
) as percentage_with_provenance_2025
FROM release_files rf
LEFT JOIN provenance p ON rf.id = p.file_id
WHERE rf.upload_time >= '2025-01-01 00:00:00'
AND rf.upload_time < '2026-01-01 00:00:00';
|
|
||
| The response has been overwhelming: | ||
|
|
||
| * **[NUMBER]** of organizations have been created on PyPI. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
select count(*) from organizations;
| The response has been overwhelming: | ||
|
|
||
| * **[NUMBER]** of organizations have been created on PyPI. | ||
| * **[NUMBER]** of projects are now managed by organizations. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
select count(*) from organization_projects;
| ## Saftey and Support Requests | ||
|
|
||
| This year, our saftey & support team and administrators have been working diligently to address user requests and combat malware to maintain a healthy ecosystem. We're proud to report significant progress in handling various types of support inquiries and improving our malware response. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typos
| ## Saftey and Support Requests | |
| This year, our saftey & support team and administrators have been working diligently to address user requests and combat malware to maintain a healthy ecosystem. We're proud to report significant progress in handling various types of support inquiries and improving our malware response. | |
| ## Safety and Support Requests | |
| This year, our safety & support team and administrators have been working diligently to address user requests and combat malware to maintain a healthy ecosystem. We're proud to report significant progress in handling various types of support inquiries and improving our malware response. |
No description provided.