Skip to content

PEP 752: Add more examples #3912

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

Merged
merged 1 commit into from
Aug 20, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 28 additions & 6 deletions peps/pep-0752.rst
Original file line number Diff line number Diff line change
Expand Up @@ -403,23 +403,45 @@ Footnotes

.. [2] Some examples of projects that have many packages with a common prefix:

- `MkDocs <https://github.com/mkdocs/mkdocs>`__ is a documentation framework
based on Markdown files. They have the concept of
`plugins <https://www.mkdocs.org/dev-guide/plugins/>`__ which may be
developed by anyone and by convention are prefixed by ``mkdocs-``.
- `Django <https://www.djangoproject.com>`__ is one of the most widely used
frameworks in existence. They have the concept of `middleware`__ which
allows for third-party packages to modify the request/response cycle.
These packages are by convention prefixed by ``django-``.
Comment on lines +406 to +409
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ofek @warsaw Django apps are not limited to middlewares only, even though it's one of the ways to extend Django-based projects it seems odd to call it out here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! What did you think I should say here?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something like this (forgive the rST mangling)?

Suggested change
- `Django <https://www.djangoproject.com>`__ is one of the most widely used
frameworks in existence. They have the concept of `middleware`__ which
allows for third-party packages to modify the request/response cycle.
These packages are by convention prefixed by ``django-``.
- `Django <https://www.djangoproject.com>`__ is one of the most widely used
frameworks in existence and has a conecpt of "`reusable apps
<https://docs.djangoproject.com/en/5.1/intro/reusable-apps/>`__",
which are commonly installed via `third-party packages
<https://djangopackages.org/>`__ that implement a subset of functionality
to extend Django-based website projects. These packages are by convention
prefixed by ``django-`` or ``dj-``.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- `Project Jupyter <https://jupyter.org>`__ is devoted to the development of
tooling for sharing interactive documents. They support `extensions`__
which in most cases (and in all cases for officially maintained extensions)
are prefixed by ``jupyter-``.
which in most cases (and in all cases for officially maintained
extensions) are prefixed by ``jupyter-``.
- `pytest <https://docs.pytest.org>`__ is Python's most popular testing
framework. They have the concept of `plugins`__ which may be developed by
anyone and by convention are prefixed by ``pytest-``.
- `MkDocs <https://www.mkdocs.org>`__ is a documentation framework based on
Markdown files. They also have the concept of
`plugins <https://www.mkdocs.org/dev-guide/plugins/>`__ which may be
developed by anyone and are usually prefixed by ``mkdocs-``.
- `Sphinx <https://www.sphinx-doc.org>`__ is a documentation framework
popular for large technical projects such as
`Swift <https://www.swift.org>`__ and Python itself. They have
the concept of `extensions`__ which are prefixed by ``sphinxcontrib-``,
many of which are maintained within a
`dedicated organization <https://github.com/sphinx-contrib>`__.
- `OpenTelemetry <https://opentelemetry.io>`__ is an open standard for
observability with `official packages`__ for the core APIs and SDK with
`third-party packages`__ to collect data from various sources. All
packages are prefixed by ``opentelemetry-`` with child prefixes in the
form ``opentelemetry-<component>-<name>-``.
- `Apache Airflow <https://airflow.apache.org>`__ is a platform to
programmatically orchestrate tasks as directed acyclic graphs (DAGs).
They have the concept of `plugins`__, and also `providers`__ which are
prefixed by ``apache-airflow-providers-``.

__ https://docs.djangoproject.com/en/5.1/topics/http/middleware/
__ https://jupyterlab.readthedocs.io/en/stable/user/extensions.html
__ https://docs.pytest.org/en/stable/how-to/writing_plugins.html
__ https://www.sphinx-doc.org/en/master/usage/extensions/index.html
__ https://github.com/open-telemetry/opentelemetry-python
__ https://github.com/open-telemetry/opentelemetry-python-contrib
__ https://airflow.apache.org/docs/apache-airflow/stable/authoring-and-scheduling/plugins.html
__ https://airflow.apache.org/docs/apache-airflow-providers/index.html

.. _orgs: https://blog.pypi.org/posts/2023-04-23-introducing-pypi-organizations/
.. _corp-orgs: https://docs.pypi.org/organization-accounts/pricing-and-payments/#corporate-organizations
Expand Down
Loading