Skip to content

Commit 8cdaeb6

Browse files
Pull from main
2 parents 06508d1 + d29cbe9 commit 8cdaeb6

File tree

146 files changed

+49445
-35813
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

146 files changed

+49445
-35813
lines changed

.github/workflows/node-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
persist-credentials: false
3333
- uses: actions/setup-node@v4
3434
with:
35-
node-version: 23.8.0
35+
node-version: 23.9.0
3636
cache: 'npm'
3737
- name: Install Node dependencies
3838
run: npm ci

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# First things first, we build an image which is where we're going to compile
22
# our static assets with. We use this stage in development.
3-
FROM node:23.8.0-bookworm AS static-deps
3+
FROM node:23.9.0-bookworm AS static-deps
44

55
WORKDIR /opt/warehouse/src/
66

Procfile

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
release: bin/release
2-
web: bin/start-web ddtrace-run python -m gunicorn.app.wsgiapp -c gunicorn-prod.conf.py warehouse.wsgi:application
3-
web-api: bin/start-web ddtrace-run python -m gunicorn.app.wsgiapp -c gunicorn-prod.conf.py warehouse.wsgi:application
4-
web-uploads: bin/start-web ddtrace-run python -m gunicorn.app.wsgiapp -c gunicorn-uploads.conf.py warehouse.wsgi:application
5-
worker: bin/start-worker celery -A warehouse worker --concurrency=${CELERY_CONCURRENCY:-1} -Q default -l info --max-tasks-per-child 1024
6-
worker-beat: bin/start-worker celery -A warehouse beat -S redbeat.RedBeatScheduler -l info
7-
worker-traced: env DD_SERVICE=warehouse-worker bin/start-worker ddtrace-run celery -A warehouse worker --concurrency=${CELERY_CONCURRENCY:-1} -Q default -l info --max-tasks-per-child 32
8-
worker-drain-sqs: env BROKER_URL=sqs:///?region=us-east-2&queue_name_prefix=pypi-worker bin/start-worker --concurrency=${CELERY_CONCURRENCY:-1} celery -A warehouse worker -Q default -l info --max-tasks-per-child 1024
2+
web: ddtrace-run python -m gunicorn.app.wsgiapp -c gunicorn-prod.conf.py warehouse.wsgi:application
3+
web-api: ddtrace-run python -m gunicorn.app.wsgiapp -c gunicorn-prod.conf.py warehouse.wsgi:application
4+
web-uploads: ddtrace-run python -m gunicorn.app.wsgiapp -c gunicorn-uploads.conf.py warehouse.wsgi:application
5+
worker: celery -A warehouse worker --concurrency=${CELERY_CONCURRENCY:-1} -Q default -l info --max-tasks-per-child 1024
6+
worker-beat: celery -A warehouse beat -S redbeat.RedBeatScheduler -l info
7+
worker-traced: env DD_SERVICE=warehouse-worker ddtrace-run celery -A warehouse worker --concurrency=${CELERY_CONCURRENCY:-1} -Q default -l info --max-tasks-per-child 32

bin/redis-tls

Lines changed: 0 additions & 25 deletions
This file was deleted.

bin/start-web

Lines changed: 0 additions & 10 deletions
This file was deleted.

bin/start-worker

Lines changed: 0 additions & 10 deletions
This file was deleted.

dev/db/post-migrations.sql

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ VALUES
5050
-- Set TOTP secret to IU7UP3EMIPI7EBPQUUSEHEJUFNBIWOYG for select users
5151
UPDATE users SET totp_secret = '\x453f47ec8c43d1f205f0a5244391342b428b3b06' WHERE username IN ('ewdurbin', 'di', 'dstufft', 'miketheman');
5252

53+
-- Create Terms of Service Engagements for select users to keep from flashing banner on login
54+
INSERT INTO user_terms_of_service_engagements (user_id, revision, created, engagement) (SELECT id, 'initial', NOW(), 'agreed' from users where username IN ('ewdurbin', 'di', 'dstufft', 'miketheman'));
55+
5356
-- Make select users owners of 'sampleproject'
5457
INSERT INTO roles (role_name, user_id, project_id)
5558
SELECT 'Owner', id, '4587cc12-e342-4880-9f61-ea4990fb81ea'

dev/environment

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ WAREHOUSE_ENV=development
55
WAREHOUSE_TOKEN=insecuretoken
66
WAREHOUSE_IP_SALT="insecure himalayan pink salt"
77

8+
TERMS_NOTIFICATION_BATCH_SIZE=0
9+
810
AWS_ACCESS_KEY_ID=foo
911
AWS_SECRET_ACCESS_KEY=foo
1012

docker-compose.yml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,6 @@ services:
3434
redis:
3535
image: redis:7.0
3636

37-
localstack:
38-
image: localstack/localstack:3.5
39-
stop_signal: SIGKILL
40-
environment:
41-
SERVICES: "sqs"
42-
LOCALSTACK_HOST: "localstack"
43-
LS_LOG: "error"
44-
ports:
45-
- "4566:4566"
46-
4737
opensearch:
4838
build:
4939
context: ./dev/compose/opensearch
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
title: Introducing our new Terms of Service
3+
description: PyPI is formalizing our policies to help us move forward with new services.
4+
authors:
5+
- ewdurbin
6+
date: 2025-02-25
7+
tags:
8+
- policies
9+
- transparency
10+
---
11+
12+
We're introducing a new
13+
[Terms of Service](https://policies.python.org/pypi.org/Terms-of-Service/)
14+
to formalize our relationship to users
15+
and enable us to move forward with providing new features and services,
16+
specifically
17+
[Organization Accounts](https://docs.pypi.org/organization-accounts/).
18+
19+
<!-- more -->
20+
21+
PyPI has had some form of [Terms of Use](https://policies.python.org/pypi.org/Terms-of-Use/)
22+
document for users since it
23+
[began accepting uploads in 2005](https://github.com/pypi/legacy/commit/b139c00cfc5794159afb1fc185d77dbc5fc1a2a4#diff-a67499b048e6bb6ef08d44c7a3c541199615b68e3bd153eb0ccedc492e3dec9dR7-R13)
24+
and has only been updated twice[^1] since.
25+
These terms have primarily served to protect PyPI
26+
and the Python Software Foundation (PSF) who operates it.
27+
28+
Over time we have introduced additional policies to protect our users and community
29+
such as our
30+
[Code of Conduct](https://policies.python.org/python.org/code-of-conduct/)
31+
[Privacy Notice](https://policies.python.org/pypi.org/Privacy-Notice/)
32+
and
33+
[Acceptable Use Policy](https://policies.python.org/pypi.org/Acceptable-Use-Policy/).
34+
35+
Our new
36+
[Terms of Service](https://policies.python.org/pypi.org/Terms-of-Service/)
37+
formalizes our relationship to PyPI users,
38+
makes protections for the PSF and PyPI users more explicit,
39+
and establishes terms we need to provide
40+
[Organization Accounts](https://docs.pypi.org/organization-accounts/)
41+
to paid
42+
[Corporate Organizations](https://docs.pypi.org/organization-accounts/pricing-and-payments/#corporate-organizations).
43+
44+
We have worked with our legal team to retain compatibility with the superseded
45+
[Terms of Use](https://policies.python.org/pypi.org/Terms-of-Use/)
46+
while adding as permissive a set of new terms as possible to ensure that PyPI users
47+
and the PSF are protected.
48+
49+
You will notice a banner on login reminding you of these updated terms,
50+
as well as an email notification to your primary email address if it has been verified.
51+
These terms will take effect for existing users March 27, 2025 and
52+
your continued use of PyPI after that date constitutes agreement to these new terms.
53+
54+
[^1]:
55+
See these commits for substantive changes since the Terms of Use was introduced:
56+
[2009-11-29](https://github.com/pypi/legacy/commit/ddbd32a78a431ab46cad912046c2492998edc618#diff-a6e30135c956f467cffa36eb37a756a53921754d55ddd6ea80d2a0b4c3f4abfaR16-R33)
57+
and
58+
[2016-12-16](https://github.com/pypi/legacy/commit/f645942c65a372fdacd4d48ffb4afed4502632e8#diff-bbf95bcc6416475537256acea89690f7c6b1f965c0306e9b883813bd3e4f6c10R15-R98).

0 commit comments

Comments
 (0)