From c95be4a1055f4b36a8852715eb80318c81fc00ca Mon Sep 17 00:00:00 2001 From: Mike Fiedler Date: Sun, 7 Aug 2022 23:17:50 -0400 Subject: [PATCH] chore: update URLs (#12007) * chore: rename pypa/warehouse to pypi/warehouse Once the repo was moved to `pypi` org, saves a redirect on every lookup. Signed-off-by: Mike Fiedler * chore: update default branch to `main` Signed-off-by: Mike Fiedler * chore: inform sphinx to ignore local links When running `make linkcheck`, ignore any links that won't work. Signed-off-by: Mike Fiedler * chore: fix broken links As identified with `make linkcheck`. Signed-off-by: Mike Fiedler * chore: update warehouse readthedocs url Signed-off-by: Mike Fiedler * chore: convert to sphinx references Signed-off-by: Mike Fiedler * lint: docs line too long Signed-off-by: Mike Fiedler * chore: update test urls to match the migrated repo --- .github/ISSUE_TEMPLATE/config.yml | 2 +- .github/ISSUE_TEMPLATE/~good-first-issue.md | 2 +- CONTRIBUTING.rst | 2 +- README.rst | 14 ++-- docs/api-reference/integration-guide.rst | 13 ++-- docs/api-reference/json.rst | 2 +- docs/api-reference/legacy.rst | 2 +- docs/api-reference/xml-rpc.rst | 2 +- docs/application.rst | 76 ++++++++++----------- docs/conf.py | 7 ++ docs/development/frontend.rst | 4 +- docs/development/getting-started.rst | 26 +++---- docs/development/index.rst | 4 +- docs/development/malware-checks.rst | 39 +++++------ docs/development/patterns.rst | 2 +- docs/development/reviewing-patches.rst | 4 +- docs/development/submitting-patches.rst | 17 +++-- docs/development/token-scanning.rst | 6 +- docs/index.rst | 2 +- docs/roadmap.rst | 16 ++--- docs/translations.rst | 6 +- docs/ui-principles.rst | 8 +-- requirements/main.in | 2 +- tests/functional/test_templates.py | 4 +- tests/unit/packaging/test_models.py | 18 ++--- warehouse/cache/origin/__init__.py | 2 +- warehouse/forklift/legacy.py | 10 +-- warehouse/locale/messages.pot | 2 +- warehouse/macaroons/caveats.py | 2 +- warehouse/packaging/tasks.py | 4 +- warehouse/templates/500.html | 2 +- warehouse/templates/base.html | 4 +- warehouse/templates/index.html | 2 +- warehouse/templates/pages/help.html | 24 +++---- warehouse/utils/db/windowed_query.py | 2 +- 35 files changed, 169 insertions(+), 165 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 9c60e82e4862..2b5b4ee3ec35 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,5 @@ blank_issues_enabled: false contact_links: - name: "(Maintainers Only) Blank issue" - url: https://github.com/pypa/warehouse/issues/new + url: https://github.com/pypi/warehouse/issues/new about: For maintainers only. diff --git a/.github/ISSUE_TEMPLATE/~good-first-issue.md b/.github/ISSUE_TEMPLATE/~good-first-issue.md index 1ffbd98097cd..cbf363005f61 100644 --- a/.github/ISSUE_TEMPLATE/~good-first-issue.md +++ b/.github/ISSUE_TEMPLATE/~good-first-issue.md @@ -9,7 +9,7 @@ about: For maintainers to create an issue that is good for new contributors --- -**Good First Issue**: This issue is good for first time contributors. If you've already contributed to Warehouse, work on [another issue without this label](https://github.com/pypa/warehouse/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+-label%3A%22good+first+issue%22) instead. If there is not a corresponding pull request for this issue, it is up for grabs. For directions for getting set up, see our [Getting Started Guide](https://warehouse.pypa.io/development/getting-started/). +**Good First Issue**: This issue is good for first time contributors. If you've already contributed to Warehouse, work on [another issue without this label](https://github.com/pypi/warehouse/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+-label%3A%22good+first+issue%22) instead. If there is not a corresponding pull request for this issue, it is up for grabs. For directions for getting set up, see our [Getting Started Guide](https://warehouse.pypa.io/development/getting-started/). If you are working on this issue and have questions, feel free to ask them here, in the [`#pypa-dev` chat channel on Libera](https://web.libera.chat/#pypa-dev), the [PyPA Discord](https://discord.gg/pypa) or on the [Discourse](https://discuss.python.org/c/packaging/14). diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 748dcdec5dce..732d43261a24 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -12,4 +12,4 @@ Examples of contributions include: Extensive contribution guidelines are available in the repository at ``docs/development/index.rst`` or -`online `_. +`online `_. diff --git a/README.rst b/README.rst index f76393e548ac..c9a1e6aaec35 100644 --- a/README.rst +++ b/README.rst @@ -48,15 +48,15 @@ Everyone interacting in the Warehouse project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_. .. _`PyPI`: https://pypi.org/ -.. _`our development roadmap`: https://warehouse.readthedocs.io/roadmap/ -.. _`architectural overview`: https://warehouse.readthedocs.io/application/ -.. _`documentation`: https://warehouse.readthedocs.io -.. _`Getting started`: https://warehouse.readthedocs.io/development/getting-started/ -.. _`Github issue tracker`: https://github.com/pypa/warehouse/issues +.. _`our development roadmap`: https://warehouse.pypa.io/roadmap/ +.. _`architectural overview`: https://warehouse.pypa.io/application/ +.. _`documentation`: https://warehouse.pypa.io +.. _`Getting started`: https://warehouse.pypa.io/development/getting-started/ +.. _`Github issue tracker`: https://github.com/pypi/warehouse/issues .. _`pypi.org`: https://pypi.org/ -.. _`Running tests and linters section`: https://warehouse.readthedocs.io/development/getting-started/#running-tests-and-linters +.. _`Running tests and linters section`: https://warehouse.pypa.io/development/getting-started/#running-tests-and-linters .. _BrowserStack: https://browserstack.com/ -.. _`supported browsers`: https://warehouse.readthedocs.io/development/frontend/#browser-support +.. _`supported browsers`: https://warehouse.pypa.io/development/frontend/#browser-support .. |BrowserStackImg| image:: docs/_static/browserstack-logo.png .. _BrowserStackImg: https://browserstack.com/ .. _`PSF Code of Conduct`: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md diff --git a/docs/api-reference/integration-guide.rst b/docs/api-reference/integration-guide.rst index c9ff5d83d6ad..d30ca7fa6013 100644 --- a/docs/api-reference/integration-guide.rst +++ b/docs/api-reference/integration-guide.rst @@ -20,7 +20,7 @@ to redirects, but you should use pypi.org instead. You should also watch `our status page `__ and subscribe to `the PyPI announcement list (low-traffic) -`_ +`_ to find out about future changes. Here are some tips. @@ -58,12 +58,12 @@ Here are some tips. ``https://pypi.org/rss/packages.xml``. See :doc:`feeds` for descriptions. `The data differs from the legacy feed data because the new feeds are standards-compliant and fix inaccuracies in the - publication date `_. + publication date `_. * Documentation upload: Users can no longer use ``doc_upload`` in the API to upload documentation ZIP files, separate from packages, to be hosted at pythonhosted.org (`discussion - `_). + `_). * ``User-Agent`` Filtering: Some client user agents were filtered to always use ``legacy.pypi.org``, a temporary deployment of the legacy @@ -73,7 +73,7 @@ Here are some tips. regardless of their ``User-Agent``. * Subscribe to `the PyPI announcement list (low-traffic) - `_. + `_. If you're a PyPI end user or packager looking to migrate to the new PyPI, see `the official Python Packaging User Guide on migrating to PyPI @@ -93,7 +93,7 @@ Official guidance ----------------- Query PyPI’s `JSON -API `__ to +API `__ to determine where to download files from. If you so choose @@ -126,5 +126,4 @@ where ``project_l`` is the first letter of the project name. structure PyPI used to hold on disk. In general this is only a good idea for ``source`` as a ``python_version`` to fetch tar and zip files. Otherwise, you will want to match the format of the ``python_version`` -field of the releases in the `JSON -API `__. +field of the releases in the :doc:`json`. diff --git a/docs/api-reference/json.rst b/docs/api-reference/json.rst index f1aeab4a5e80..cd216591551d 100644 --- a/docs/api-reference/json.rst +++ b/docs/api-reference/json.rst @@ -291,7 +291,7 @@ Known vulnerabilities ~~~~~~~~~~~~~~~~~~~~~ In the example above, the combination of the requested project and version -had no `known vulnerabilities `_. +had no `known vulnerabilities `_. An example of a response for a project with known vulnerabilities is provided below, with unrelated fields collapsed for readability. diff --git a/docs/api-reference/legacy.rst b/docs/api-reference/legacy.rst index d383c4ab39c9..58f827c0cb88 100644 --- a/docs/api-reference/legacy.rst +++ b/docs/api-reference/legacy.rst @@ -109,7 +109,7 @@ The Simple API implements the HTML-based package index API as specified in `PEP .. _`pypi-legacy`: https://pypi.python.org/ -.. _`PEP 503`: https://www.python.org/dev/peps/pep-0503/ +.. _`PEP 503`: https://peps.python.org/pep-0503/ .. _upload-api-forklift: diff --git a/docs/api-reference/xml-rpc.rst b/docs/api-reference/xml-rpc.rst index 5be3da3b41b7..10fa8b57f017 100644 --- a/docs/api-reference/xml-rpc.rst +++ b/docs/api-reference/xml-rpc.rst @@ -203,4 +203,4 @@ Mirroring Support Retrieve a dictionary mapping package names to the last serial for each package. -.. _pypi-announce: https://mail.python.org/mm3/mailman3/lists/pypi-announce.python.org/ +.. _pypi-announce: https://mail.python.org/mailman3/lists/pypi-announce.python.org/ diff --git a/docs/application.rst b/docs/application.rst index 544855205b33..e85953354c43 100644 --- a/docs/application.rst +++ b/docs/application.rst @@ -5,7 +5,7 @@ Warehouse uses the `Pyramid`_ web framework, the `SQLAlchemy `__ ORM, and `Postgres `__ for its database. -Warehouse's front end uses `Jinja2 `__ templates. +Warehouse's front end uses `Jinja2 `__ templates. The production deployment for Warehouse is deployed using `Cabotage `__, which manages @@ -13,7 +13,7 @@ The production deployment for Warehouse is deployed using In the development environment, we use several `Docker`_ containers orchestrated by `Docker Compose `__ -to `manage `__ +to `manage `__ running the containers and the connections between them. Since Warehouse was built on top of an existing database (for legacy @@ -84,39 +84,39 @@ The top-level directory of the Warehouse repo contains files including: Directories within the repository: -- `bin/ `_ - high-level scripts for Docker, Continuous Integration, and Makefile commands -- `dev/ `_ - assets for developer environment -- `tests/ `_ - tests -- `warehouse/ `_ - code in modules - - - `accounts/ `_ - user accounts - - `admin/ `_ - application-administrator-specific - - `banners/ `_ - notification banners - - `cache/ `_ - caching - - `classifiers/ `_ - frame trove classifiers - - `cli/ `_ - entry scripts and - `the interactive shell `_ - - `email/ `_ - services for sending emails - - `forklift/ `_ - :ref:`upload-api-forklift` - - `i18n/ `_ - internationalization - - `integrations/ `_ - integrations with other services - - `legacy/ `_ - most of the read-only APIs implemented here - - `locale/ `_ - internationalization - - `macaroons/ `_ - API token support - - `malware/ `_ - automated malware checks - - `manage/ `_ - logged-in user functionality (i.e., manage account & +- `bin/ `_ - high-level scripts for Docker, Continuous Integration, and Makefile commands +- `dev/ `_ - assets for developer environment +- `tests/ `_ - tests +- `warehouse/ `_ - code in modules + + - `accounts/ `_ - user accounts + - `admin/ `_ - application-administrator-specific + - `banners/ `_ - notification banners + - `cache/ `_ - caching + - `classifiers/ `_ - frame trove classifiers + - `cli/ `_ - entry scripts and + :ref:`the interactive shell ` + - `email/ `_ - services for sending emails + - `forklift/ `_ - :ref:`upload-api-forklift` + - `i18n/ `_ - internationalization + - `integrations/ `_ - integrations with other services + - `legacy/ `_ - most of the read-only APIs implemented here + - `locale/ `_ - internationalization + - `macaroons/ `_ - API token support + - `malware/ `_ - automated malware checks + - `manage/ `_ - logged-in user functionality (i.e., manage account & owned/maintained projects) - - `metrics/ `_ - services for recording metrics - - `migrations/ `_ - changes to the database schema - - `packaging/ `_ - models - - `rate_limiting/ `_ - rate limiting to prevent abuse - - `rss/ `_ - RSS feeds: :doc:`api-reference/feeds` - - `search/ `_ - utilities for building and querying the search index - - `sitemap/ `_ - site maps - - `sponsors/ `_ - sponsors management - - `static/ `_ - static site assets - - `templates/ `_ - Jinja templates for web pages, emails, etc. - - `utils/ `_ - various utilities Warehouse uses + - `metrics/ `_ - services for recording metrics + - `migrations/ `_ - changes to the database schema + - `packaging/ `_ - models + - `rate_limiting/ `_ - rate limiting to prevent abuse + - `rss/ `_ - RSS feeds: :doc:`api-reference/feeds` + - `search/ `_ - utilities for building and querying the search index + - `sitemap/ `_ - site maps + - `sponsors/ `_ - sponsors management + - `static/ `_ - static site assets + - `templates/ `_ - Jinja templates for web pages, emails, etc. + - `utils/ `_ - various utilities Warehouse uses .. _Pyramid: https://docs.pylonsproject.org/projects/pyramid/en/latest/index.html .. _Docker: https://docs.docker.com/ @@ -137,16 +137,16 @@ may be used to from the legacy site, such as: - "hidden releases" - uploading to pythonhosted.com documentation hosting (`discussion and - plans `_) + plans `_) -- `download counts visible in the API `_ +- :ref:`download counts visible in the API ` (instead, use `the Google BigQuery service `_) - key management: PyPI no longer has a UI for users to manage GPG or SSH public keys - uploading new releases via the web UI: instead, maintainers should - use the command-line tool `Twine `_ + use the command-line tool `Twine `_ - updating release descriptions via the web UI: instead, to update release metadata, you need to upload a new release (`discussion @@ -157,7 +157,7 @@ may be used to from the legacy site, such as: - `HTTP access to APIs; now it's HTTPS-only `_ - GPG/PGP signatures for packages (still visible in the :doc:`../api-reference/legacy/` - per `PEP 503 `_, but no + per `PEP 503 `_, but no longer visible in the web UI) - `OpenID and Google auth login `_ diff --git a/docs/conf.py b/docs/conf.py index 24c760c89f59..8628bb197662 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -54,6 +54,13 @@ # The name of the Pygments (syntax highlighting) style to use. pygments_style = "sphinx" +# Patterns to during `make linkcheck` +linkcheck_ignore = [ + r'http://localhost.*', + 'http://134.122.111.11', # example IP + 'https://web.libera.chat/#pypa,#pypa-dev', # can't visit anchors +] + # -- Options for HTML output ---------------------------------------------- diff --git a/docs/development/frontend.rst b/docs/development/frontend.rst index 77422176d1a6..357119c708bb 100644 --- a/docs/development/frontend.rst +++ b/docs/development/frontend.rst @@ -34,7 +34,7 @@ JavaScript tests use the `Jest testing framework `_ along with `jest-dom `_ for assertion helpers. We can invoke Jest directly specify a particular test suite via ``node_modules/.bin/jest tests/frontend/.js`` or -add any of the `Jest CLI options `_ . +add any of the `Jest CLI options `_ . All tests are located in the ``tests/frontend``. `Stimulus `_ controller tests leverage on Jest @@ -98,7 +98,7 @@ Exceptions to these rules include: We also allow both dashes and underscores in our class names, as we follow the `Nicholas Gallagher variation -`_ +`_ of the `BEM naming methodology `_. More information on how BEM works can be found in `this article from diff --git a/docs/development/getting-started.rst b/docs/development/getting-started.rst index 763c80dbfeee..7b3a59ff91f9 100644 --- a/docs/development/getting-started.rst +++ b/docs/development/getting-started.rst @@ -32,9 +32,9 @@ Detailed installation instructions Getting the Warehouse source code ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`Fork `_ the repository +`Fork `_ the repository on `GitHub`_ and -`clone `_ it to +`clone `_ it to your local machine: .. code-block:: console @@ -42,13 +42,13 @@ your local machine: git clone git@github.com:YOUR-USERNAME/warehouse.git Add a `remote -`_ and -regularly `sync `_ to make sure +`_ and +regularly `sync `_ to make sure you stay up-to-date with our repository: .. code-block:: console - git remote add upstream https://github.com/pypa/warehouse.git + git remote add upstream https://github.com/pypi/warehouse.git git checkout main git fetch upstream git merge upstream/main @@ -398,7 +398,7 @@ migrations. Try modifying your Docker configuration to allow more RAM for each container, temporarily stop ``make_serve`` and run ``make initdb`` again. This may also be due to enabling Compose V2 (see -https://github.com/pypa/warehouse/issues/10772 for more details). +https://github.com/pypi/warehouse/issues/10772 for more details). ``make initdb`` complains about PostgreSQL Version @@ -421,12 +421,12 @@ compilation errors due to your system not including libraries or binaries required by some of Warehouse's dependencies. An example of such dependency is -`psycopg2 `_ +`psycopg2 `_ which requires PostgreSQL binaries and will fail if not present. If there's a specific use case you think requires development outside Docker please raise an issue in -`Warehouse's issue tracker `_. +`Warehouse's issue tracker `_. Disabling services locally @@ -489,6 +489,8 @@ Styles are written in the scss variant of Sass and compiled using ``make serve`` is running. +.. _running-the-interactive-shell: + Running the Interactive Shell ----------------------------- @@ -568,7 +570,7 @@ You can run linters, programs that check the code, with: make lint -Warehouse uses `black `_ for opinionated +Warehouse uses `black `_ for opinionated formatting and linting. You can reformat with: .. code-block:: console @@ -654,9 +656,9 @@ Resources to help you learn Warehouse's context: .. _`pip`: https://pypi.org/project/pip .. _`sphinx`: https://pypi.org/project/Sphinx -.. _`reStructured Text`: http://sphinx-doc.org/rest.html -.. _`open issues that are labelled "good first issue"`: https://github.com/pypa/warehouse/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 -.. _`GitHub`: https://github.com/pypa/warehouse +.. _`reStructured Text`: https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html +.. _`open issues that are labelled "good first issue"`: https://github.com/pypi/warehouse/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 +.. _`GitHub`: https://github.com/pypi/warehouse .. _`on Libera`: https://web.libera.chat/#pypa,#pypa-dev .. _`Discourse` : https://discuss.python.org/c/packaging/14 .. _`PyPA Discord` : https://discord.gg/pypa diff --git a/docs/development/index.rst b/docs/development/index.rst index 9d04ba5be08b..a6c19d14117d 100644 --- a/docs/development/index.rst +++ b/docs/development/index.rst @@ -40,8 +40,8 @@ Get involved or find help using: malware-checks token-scanning -.. _`GitHub`: https://github.com/pypa/warehouse -.. _`"What to put in your bug report"`: http://www.contribution-guide.org/#what-to-put-in-your-bug-report +.. _`GitHub`: https://github.com/pypi/warehouse +.. _`"What to put in your bug report"`: https://www.contribution-guide.org/#what-to-put-in-your-bug-report .. _`Libera`: https://web.libera.chat/#pypa,#pypa-dev .. _`PyPA Discord`: https://discord.gg/pypa .. _`Discourse`: https://discuss.python.org/c/packaging/14 diff --git a/docs/development/malware-checks.rst b/docs/development/malware-checks.rst index 75c0136fddef..c247f250ce91 100644 --- a/docs/development/malware-checks.rst +++ b/docs/development/malware-checks.rst @@ -30,7 +30,7 @@ Check Lifecycle Ideas for new malware checks should first be shared by `opening an issue`_. This will initiate a discussion with PyPI administrators and among the broader Python community about the impact of the proposed check. After soliciting -feedback, `open a pull request to main`_ containing the code for the new check, +feedback, :doc:`open a pull request to main ` containing the code for the new check, unit tests, and accompanying documentation. Once the code is reviewed and merged, it will automatically be deployed to production. PyPI administrators can begin evaluating the malware check by moving it into the `evaluation` state in the check @@ -101,8 +101,8 @@ Workflow and Testing There are a few steps for executing new malware checks in a development environment: -#. Complete the `Getting Started`_ instructions to setup a Warehouse - development environment +#. Complete the :ref:`Getting Started ` instructions to setup + a Warehouse development environment #. Open `dev/environment`_ and set the ``MALWARE_CHECK_BACKEND`` variable .. code-block:: bash @@ -141,7 +141,7 @@ environment: twine upload --repository-url http://localhost/legacy/ dist/* Once you've manually validated the basic functioning of your check, add tests -to the `tests directory`_. See `Submitting Patches`_ for more information about +to the `tests directory`_. See :doc:`submitting-patches` for more information about how to contribute. Existing Checks @@ -169,23 +169,20 @@ uploads. This system was initially rolled out in February 2020 by .. |VerdictLifecycle| image:: ../_static/verdict-lifecycle.png -.. _IMalwareCheckService: https://github.com/pypa/warehouse/blob/master/warehouse/malware/interfaces.py -.. _DatabaseMalwareCheckService: https://github.com/pypa/warehouse/blob/master/warehouse/malware/services.py -.. _celery crontab: http://docs.celeryproject.org/en/latest/reference/celery.schedules.html#celery.schedules.crontab -.. _prepare classmethod: https://github.com/pypa/warehouse/blob/master/warehouse/malware/checks/base.py -.. _MalwareVerdict model: https://github.com/pypa/warehouse/blob/master/warehouse/malware/models.py +.. _IMalwareCheckService: https://github.com/pypi/warehouse/blob/main/warehouse/malware/interfaces.py +.. _DatabaseMalwareCheckService: https://github.com/pypi/warehouse/blob/main/warehouse/malware/services.py +.. _celery crontab: https://docs.celeryq.dev/en/latest/reference/celery.schedules.html#celery.schedules.crontab +.. _prepare classmethod: https://github.com/pypi/warehouse/blob/main/warehouse/malware/checks/base.py +.. _MalwareVerdict model: https://github.com/pypi/warehouse/blob/main/warehouse/malware/models.py .. |CheckLifecycle| image:: ../_static/check-lifecycle.png -.. _opening an issue: https://github.com/pypa/warehouse/issues/new?template=malware-check.md -.. _open a pull request to main: submitting-patches/ -.. _tests/common/checks/: https://github.com/pypa/warehouse/tree/master/tests/common/checks/ -.. _warehouse/malware/checks/: https://github.com/pypa/warehouse/tree/master/warehouse/malware/checks -.. _dunder init file: https://github.com/pypa/warehouse/tree/master/warehouse/malware/checks/__init__.py -.. _Getting Started: ../getting-started/#detailed-installation-instructions -.. _dev/environment: https://github.com/pypa/warehouse/tree/master/dev/environment +.. _opening an issue: https://github.com/pypi/warehouse/issues/new?template=malware-check.md +.. _tests/common/checks/: https://github.com/pypi/warehouse/tree/main/tests/common/checks/ +.. _warehouse/malware/checks/: https://github.com/pypi/warehouse/tree/main/warehouse/malware/checks +.. _dunder init file: https://github.com/pypi/warehouse/blob/main/warehouse/malware/checks/__init__.py +.. _dev/environment: https://github.com/pypi/warehouse/blob/main/dev/environment .. _twine: https://twine.readthedocs.io/en/latest/ -.. _tests directory: https://github.com/pypa/warehouse/blob/master/tests/unit/malware/checks -.. _Submitting Patches: submitting-patches/ -.. _SetupPatternCheck: https://github.com/pypa/warehouse/blob/master/warehouse/malware/checks/setup_patterns/check.py -.. _PackageTurnoverCheck: https://github.com/pypa/warehouse/blob/master/warehouse/malware/checks/package_turnover/check.py +.. _tests directory: https://github.com/pypi/warehouse/tree/main/tests/unit/malware/checks +.. _SetupPatternCheck: https://github.com/pypi/warehouse/blob/main/warehouse/malware/checks/setup_patterns/check.py +.. _PackageTurnoverCheck: https://github.com/pypi/warehouse/blob/main/warehouse/malware/checks/package_turnover/check.py .. _Request for Proposal: https://github.com/python/request-for/blob/master/2019-Q4-PyPI/RFP.md#milestone-2---systems-for-automated-detection-of-malicious-uploads -.. _pull request 7377: https://github.com/pypa/warehouse/pull/7377 +.. _pull request 7377: https://github.com/pypi/warehouse/pull/7377 diff --git a/docs/development/patterns.rst b/docs/development/patterns.rst index e6bb193a4548..0fa5419e9c2f 100644 --- a/docs/development/patterns.rst +++ b/docs/development/patterns.rst @@ -109,4 +109,4 @@ Class Method .. |pip-tools| replace:: ``pip-tools`` .. _pip-tools: https://pypi.org/project/pip-tools/ -.. _Dependabot pull requests: https://github.com/pypa/warehouse/pulls?q=is%3Apr+is%3Aopen+label%3Adependencies +.. _Dependabot pull requests: https://github.com/pypi/warehouse/pulls?q=is%3Apr+is%3Aopen+label%3Adependencies diff --git a/docs/development/reviewing-patches.rst b/docs/development/reviewing-patches.rst index a268d9ba763b..46ca9a715fc5 100644 --- a/docs/development/reviewing-patches.rst +++ b/docs/development/reviewing-patches.rst @@ -58,8 +58,8 @@ Has this output: origin https://github.com//warehouse.git (fetch) origin https://github.com//warehouse.git (push) - upstream https://github.com/pypa/warehouse.git (fetch) - upstream https://github.com/pypa/warehouse.git (push) + upstream https://github.com/pypi/warehouse.git (fetch) + upstream https://github.com/pypi/warehouse.git (push) In this output, ```` is your GitHub username. If you do not have an ``upstream`` branch configured, you can add one by running the following diff --git a/docs/development/submitting-patches.rst b/docs/development/submitting-patches.rst index 7ab72a10a8d2..e15042345029 100644 --- a/docs/development/submitting-patches.rst +++ b/docs/development/submitting-patches.rst @@ -73,7 +73,7 @@ necessary to update references to these files any time source strings are change line numbers of the source strings in the source files. This can be done by running ``make translations``. For instructions on how to mark strings and views for translation, -see the `Translation Docs`_. +see the :doc:`../translations` docs. Keeping your local branch updated @@ -97,8 +97,8 @@ Your output looks like this: origin https://github.com/username/warehouse.git (fetch) origin https://github.com/username/warehouse.git (push) - upstream https://github.com/pypa/warehouse.git (fetch) - upstream https://github.com/pypa/warehouse.git (push) + upstream https://github.com/pypi/warehouse.git (fetch) + upstream https://github.com/pypi/warehouse.git (push) In the example above, ```` is your username on GitHub. @@ -184,10 +184,9 @@ as dependency upgrades are merged, so you will probably have to update your feature branch at least once while you are working on it. -.. _`Write comments as complete sentences.`: http://nedbatchelder.com/blog/201401/comments_should_be_sentences.html -.. _`syntax`: http://sphinx-doc.org/domains.html#info-field-lists -.. _`Studies have shown`: https://smartbear.com/smartbear/media/pdfs/wp-cc-11-best-practices-of-peer-code-review.pdf -.. _`doc8`: https://github.com/stackforge/doc8 +.. _`Write comments as complete sentences.`: https://nedbatchelder.com/blog/201401/comments_should_be_sentences.html +.. _`syntax`: https://sphinx-doc.org/domains.html#info-field-lists +.. _`Studies have shown`: https://static1.smartbear.co/support/media/resources/cc/book/code-review-cisco-case-study.pdf +.. _`doc8`: https://github.com/PyCQA/doc8 .. _`coverage.py`: https://pypi.org/project/coverage -.. _`the Black Code Style`: https://github.com/ambv/black#the-black-code-style -.. _`Translation Docs`: https://warehouse.readthedocs.io/translations/ +.. _`the Black Code Style`: https://github.com/psf/black#the-black-code-style diff --git a/docs/development/token-scanning.rst b/docs/development/token-scanning.rst index ee1a4ef7a961..52a1e7f539d6 100644 --- a/docs/development/token-scanning.rst +++ b/docs/development/token-scanning.rst @@ -32,9 +32,9 @@ GitHub's Token scanning feature used to be called "Token Scanning" and is now the regex above (actually the limit to at least 130 characters long). For all tokens identified within a "push" event, they send us reports in bulk. The format is explained thouroughly in `their doc -`_ as well as +`_ as well as in the `warehouse implementation ticket -`_. +`_. In short: they send us a cryptographically signed payload describing each leaked token alongside with a public URL pointing to it. @@ -74,7 +74,7 @@ GitLab Secret Detection GitLab also has an equivalent mechanism, named "Secret Detection", not implemented in Warehouse yet (see `#9280 -`_). +`_). PyPI token disclosure infrastructure ------------------------------------ diff --git a/docs/index.rst b/docs/index.rst index 7db0ccb80288..33a4528b6fbc 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -35,5 +35,5 @@ Indices and tables * :ref:`search` .. _`Python package index (repository)`: https://packaging.python.org/glossary/#term-package-index -.. _`web application`: https://github.com/pypa/warehouse +.. _`web application`: https://github.com/pypi/warehouse .. _PyPI: https://pypi.org diff --git a/docs/roadmap.rst b/docs/roadmap.rst index ff18c60b619f..64e74298bce1 100644 --- a/docs/roadmap.rst +++ b/docs/roadmap.rst @@ -77,14 +77,14 @@ Sprint planners should consider the following checklist for organising events: useful for large issues, or for newer developers. .. _`security, accessibility, and localization work funded by the Open Technology Fund`: https://pyfound.blogspot.com/2019/03/commencing-security-accessibility-and.html -.. _`two-factor authentication for PyPI`: https://github.com/pypa/warehouse/issues/996 -.. _`Security milestone`: https://github.com/pypa/warehouse/milestone/13 -.. _`accessibility milestone`: https://github.com/pypa/warehouse/milestone/15 -.. _`localisation milestone`: https://github.com/pypa/warehouse/milestone/14 -.. _`package signing & detection/verification milestone`: https://github.com/pypa/warehouse/milestone/16 +.. _`two-factor authentication for PyPI`: https://github.com/pypi/warehouse/issues/996 +.. _`Security milestone`: https://github.com/pypi/warehouse/milestone/13 +.. _`accessibility milestone`: https://github.com/pypi/warehouse/milestone/15 +.. _`localisation milestone`: https://github.com/pypi/warehouse/milestone/14 +.. _`package signing & detection/verification milestone`: https://github.com/pypi/warehouse/milestone/16 .. _`This work is funded by a gift from Facebook.`: https://pyfound.blogspot.com/2018/12/upcoming-pypi-improvements-for-2019.html -.. _`issues marked with the post-legacy shutdown milestone`: https://github.com/pypa/warehouse/milestone/12 -.. _`issues marked with the cool-but-not-urgent milestone`: https://github.com/pypa/warehouse/milestone/11 -.. _`contact us`: https://github.com/pypa/warehouse/blob/master/README.rst#discussion +.. _`issues marked with the post-legacy shutdown milestone`: https://github.com/pypi/warehouse/milestone/12 +.. _`issues marked with the cool-but-not-urgent milestone`: https://github.com/pypi/warehouse/milestone/11 +.. _`contact us`: https://github.com/pypi/warehouse/blob/master/README.rst#discussion .. _`our past roadmap`: https://wiki.python.org/psf/WarehouseRoadmap .. _`sprints`: https://wiki.python.org/psf/PackagingSprints diff --git a/docs/translations.rst b/docs/translations.rst index 4e5f097a53a0..f306fcff23b2 100644 --- a/docs/translations.rst +++ b/docs/translations.rst @@ -6,7 +6,7 @@ We use `Weblate `_ to manage PyPI translations across seve to contribute. If you are experiencing issues as a translator, please let us know by opening a -`translation issue on the Warehouse issue tracker `_. +`translation issue on the Warehouse issue tracker `_. Adding a newly completed translation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -20,7 +20,7 @@ it's MO file (Machine Object file) compiled. To add a new known locale: 1. Check for `outstanding Weblate pull requests - `_ and merge them if so. + `_ and merge them if so. 2. In a new branch, add a key/value to the ``KNOWN_LOCALES`` mapping in |warehouse/i18n/__init__.py|_. The key is the locale code, and corresponds to a directory in @@ -28,7 +28,7 @@ To add a new known locale: 3. Commit these changes and make a new pull request. .. |warehouse/i18n/__init__.py| replace:: ``warehouse/i18n/__init__.py`` -.. _warehouse/i18n/__init__.py: https://github.com/pypa/warehouse/blob/master/warehouse/i18n/__init__.py +.. _warehouse/i18n/__init__.py: https://github.com/pypi/warehouse/blob/main/warehouse/i18n/__init__.py Marking new strings for translation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/ui-principles.rst b/docs/ui-principles.rst index 52ba5d953529..f87f88e1440c 100644 --- a/docs/ui-principles.rst +++ b/docs/ui-principles.rst @@ -28,12 +28,12 @@ When working on the UI: - Ensure contrast is high, particularly on text. This can be checked: - On Chrome by installing `Accessibility Developer Tools - `_ + `_ - On Firefox by installing the `WCAG Contrast Checker - `_ + `_ - Write `semantic HTML `_ - Ensure image `alt tags are present and meaningful - `_ + `_ - Add labels to all form fields (if you want to hide a label visually but leave it readable to screen readers, apply ``.sr-only``) - Where possible add `ARIA roles @@ -69,7 +69,7 @@ Warehouse follows the `Material design writing style guide When writing interfaces use direct, clear and simple language. This is especially important as Warehouse caters to an international audience with varying proficiency in English. If you're unsure, `check the readability of -your text `_. +your text `_. For consistency, we prefer using American English spellings over British English. diff --git a/requirements/main.in b/requirements/main.in index 73f8dda6eb16..dba1f954d51b 100644 --- a/requirements/main.in +++ b/requirements/main.in @@ -53,7 +53,7 @@ redis>=2.8.0,<5.0.0 rfc3986 sentry-sdk setuptools -sqlalchemy[asyncio]>=0.9,<1.5.0 # https://github.com/pypa/warehouse/pull/9228 +sqlalchemy[asyncio]>=0.9,<1.5.0 # https://github.com/pypi/warehouse/pull/9228 sqlalchemy-citext sqlalchemy-utils stdlib-list diff --git a/tests/functional/test_templates.py b/tests/functional/test_templates.py index fdd0c7b21e9a..931fcd5376d4 100644 --- a/tests/functional/test_templates.py +++ b/tests/functional/test_templates.py @@ -39,7 +39,7 @@ def test_templates_for_empty_titles(): """ Test if all HTML templates have defined the title block. See - https://github.com/pypa/warehouse/issues/784 + https://github.com/pypi/warehouse/issues/784 """ dir_name = os.path.join(os.path.dirname(warehouse.__file__), "templates") @@ -76,7 +76,7 @@ def test_templates_for_empty_titles(): def test_render_templates(): """ Test if all HTML templates are rendered without Jinja exceptions. - see https://github.com/pypa/warehouse/issues/6634 + see https://github.com/pypi/warehouse/issues/6634 """ dir_name = os.path.join(os.path.dirname(warehouse.__file__), "templates") diff --git a/tests/unit/packaging/test_models.py b/tests/unit/packaging/test_models.py index 2ee6729ba832..52d0bb7c45de 100644 --- a/tests/unit/packaging/test_models.py +++ b/tests/unit/packaging/test_models.py @@ -371,23 +371,23 @@ def test_acl(self, db_session): [ (None, None), ( - "https://github.com/pypa/warehouse", - "https://api.github.com/repos/pypa/warehouse", + "https://github.com/pypi/warehouse", + "https://api.github.com/repos/pypi/warehouse", ), ( - "https://github.com/pypa/warehouse/", - "https://api.github.com/repos/pypa/warehouse", + "https://github.com/pypi/warehouse/", + "https://api.github.com/repos/pypi/warehouse", ), ( - "https://github.com/pypa/warehouse/tree/master", - "https://api.github.com/repos/pypa/warehouse", + "https://github.com/pypi/warehouse/tree/main", + "https://api.github.com/repos/pypi/warehouse", ), ( - "https://www.github.com/pypa/warehouse", - "https://api.github.com/repos/pypa/warehouse", + "https://www.github.com/pypi/warehouse", + "https://api.github.com/repos/pypi/warehouse", ), ("https://github.com/pypa/", None), - ("https://google.com/pypa/warehouse/tree/master", None), + ("https://google.com/pypi/warehouse/tree/main", None), ("https://google.com", None), ("incorrect url", None), ], diff --git a/warehouse/cache/origin/__init__.py b/warehouse/cache/origin/__init__.py index 7416c2947c57..26f1b5a6ce1e 100644 --- a/warehouse/cache/origin/__init__.py +++ b/warehouse/cache/origin/__init__.py @@ -118,7 +118,7 @@ def key_maker(obj): # a limit to how many surrogate keys we can attach to a single HTTP # response, and being able to use use `iterate_on` would allow this # size to be unbounded. - # ref: https://github.com/pypa/warehouse/pull/3189 + # ref: https://github.com/pypi/warehouse/pull/3189 cache=[k.format(obj=obj) for k in cache_keys], purge=chain.from_iterable(key(obj) for key in purge_keys), ) diff --git a/warehouse/forklift/legacy.py b/warehouse/forklift/legacy.py index 1959be1bac56..088e8557a22c 100644 --- a/warehouse/forklift/legacy.py +++ b/warehouse/forklift/legacy.py @@ -793,8 +793,8 @@ def file_upload(request): # Ensure that user has a verified, primary email address. This should both # reduce the ease of spam account creation and activity, as well as act as - # a forcing function for https://github.com/pypa/warehouse/issues/3632. - # TODO: Once https://github.com/pypa/warehouse/issues/3632 has been solved, + # a forcing function for https://github.com/pypi/warehouse/issues/3632. + # TODO: Once https://github.com/pypi/warehouse/issues/3632 has been solved, # we might consider a different condition, possibly looking at # User.is_active instead. if not (request.user.primary_email and request.user.primary_email.verified): @@ -833,8 +833,8 @@ def file_upload(request): # Check if any fields were supplied as a tuple and have become a # FieldStorage. The 'content' and 'gpg_signature' fields _should_ be a # FieldStorage, however. - # ref: https://github.com/pypa/warehouse/issues/2185 - # ref: https://github.com/pypa/warehouse/issues/2491 + # ref: https://github.com/pypi/warehouse/issues/2185 + # ref: https://github.com/pypi/warehouse/issues/2491 for field in set(request.POST) - {"content", "gpg_signature"}: values = request.POST.getall(field) if any(isinstance(value, FieldStorage) for value in values): @@ -1224,7 +1224,7 @@ def file_upload(request): # Note: Changing this error message to something that doesn't # start with "File already exists" will break the # --skip-existing functionality in twine - # ref: https://github.com/pypa/warehouse/issues/3482 + # ref: https://github.com/pypi/warehouse/issues/3482 # ref: https://github.com/pypa/twine/issues/332 "File already exists. See " + request.help_url(_anchor="file-name-reuse") diff --git a/warehouse/locale/messages.pot b/warehouse/locale/messages.pot index ca7dd6d376fc..04525c9cca90 100644 --- a/warehouse/locale/messages.pot +++ b/warehouse/locale/messages.pot @@ -621,7 +621,7 @@ msgstr "" #: warehouse/templates/500.html:37 msgid "" -"Consider contributing or donating to help us build a more" diff --git a/warehouse/macaroons/caveats.py b/warehouse/macaroons/caveats.py index 79040c100de8..59c428ae7294 100644 --- a/warehouse/macaroons/caveats.py +++ b/warehouse/macaroons/caveats.py @@ -29,7 +29,7 @@ class Caveat: def __init__(self, verifier): self.verifier = verifier # TODO: Surface this failure reason to the user. - # See: https://github.com/pypa/warehouse/issues/9018 + # See: https://github.com/pypi/warehouse/issues/9018 self.failure_reason = None def verify(self, predicate) -> bool: diff --git a/warehouse/packaging/tasks.py b/warehouse/packaging/tasks.py index 63c63ef1111a..64c0885dedaf 100644 --- a/warehouse/packaging/tasks.py +++ b/warehouse/packaging/tasks.py @@ -331,7 +331,7 @@ def update_bigquery_release_files(task, request, dist_metadata): # str instead of a list, hence, this workaround to comply # with PEP 345 and the Core Metadata specifications. # This extra check can be removed once - # https://github.com/pypa/warehouse/issues/8257 is fixed + # https://github.com/pypi/warehouse/issues/8257 is fixed if isinstance(field_data, str): json_rows[sch.name] = [field_data] else: @@ -392,7 +392,7 @@ def populate_data_using_schema(file): # str instead of a list, hence, this workaround to comply # with PEP 345 and the Core Metadata specifications. # This extra check can be removed once - # https://github.com/pypa/warehouse/issues/8257 is fixed + # https://github.com/pypi/warehouse/issues/8257 is fixed if isinstance(field_data, str): row_data[sch.name] = [field_data] else: diff --git a/warehouse/templates/500.html b/warehouse/templates/500.html index cd497f5ead67..2fff9a76e338 100644 --- a/warehouse/templates/500.html +++ b/warehouse/templates/500.html @@ -36,7 +36,7 @@ {% trans %}Rely on PyPI to get your job done?{% endtrans %}
{% trans trimmed %} Consider - + contributing or diff --git a/warehouse/templates/base.html b/warehouse/templates/base.html index 1836f993bc36..120dba917fcd 100644 --- a/warehouse/templates/base.html +++ b/warehouse/templates/base.html @@ -281,9 +281,9 @@

{% trans %}Contributing to PyPI{% endtrans %}

diff --git a/warehouse/templates/index.html b/warehouse/templates/index.html index e1c0d1f395ae..d5688b298f34 100644 --- a/warehouse/templates/index.html +++ b/warehouse/templates/index.html @@ -54,7 +54,7 @@

{{ banner }}