diff --git a/docs/application.rst b/docs/application.rst index 45fe01c526aa..76f2b157bba7 100644 --- a/docs/application.rst +++ b/docs/application.rst @@ -28,6 +28,33 @@ pattern. This method of handling URLs may be unfamiliar to developers used to other web frameworks, such as Django or Flask. `This article`_ has a helpful discussion of the differences between URL dispatch and traversal in Pyramid. +Usage assumptions and concepts +------------------------------ + +See `PyPI help `_ to understand +projects, releases, and packages. + +Warehouse is specifically the codebase for the official Python Package +Index, and thus focuses on architecture and features for PyPI and Test +PyPI. People and groups who want to run their own package indexes +usually use other tools, like `devpi +`_. + +Warehouse serves three main classes of users: + +1. *People who are not logged in.* This accounts for the majority of + browser traffic and all API download traffic. +2. *Owners/maintainers of one or more projects.* This accounts for + almost all writes. A user must create and use a PyPI account to + maintain or own a project, and there is no particular functionality + available to a logged-in user other than to manage projects they + own/maintain. As of March 2018, PyPI had about 270,000 users, and + Test PyPI had about 30,000 users. +3. *PyPI application administrators*, e.g., Ernest W. Durbin III, + Dustin Ingram, and Donald Stufft, who add classifiers, ban + spam/malware projects, help users with account recovery, and so + on. There are under ten such admins. + Since reads are *much* more common than writes (much more goes out than goes in), we try to cache as much as possible. This is a big reason that, although we have supported localization in the past, `we currently