Repository: pypi/warehouse

Issue:
Warehouse logo usage guidelines page with links to SVGs
**What's the problem this feature will solve?**
<!-- A clear and concise description of what the problem is. -->
People will know how to properly use the Warehouse logos.

**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
A separate web-page under pypi.org having a style guide and usage conditions wrt the Warehouse logo.
Something like https://www.redhat.com/en/about/brand/standards/logo or https://www.python.org/community/logos/.

**Additional context**
<!-- Add any other context, links, etc. about the feature here. -->
* I want to have some graphics to use for https://github.com/pypa/gh-action-pypi-publish
* https://twitter.com/nlhkabu/status/1173467743112355840
* FWIW I've used it for the preview at this page https://github.com/topics/github-action, I hope that's fine for now


Discussion:
@ewdurbin I believe the PSF was in the process, or have already, placed a trademark on the PyPI logo.  Could you please look into this and let me know the best next steps?

Thanks
@nlhkabu @ewdurbin did this ever actually happen? I don't think I've seen anything published to date.
My understanding is that "PyPI" has been issued trademark but the logo itself has not been. @VanL do you know the status of the logo mark registration for PyPI?
The registration on the logo for PyPI has been granted.
Building blocks alone: Reg. 5752245
Building blocks plus "Python Package Index": Reg. 5764496

Thanks,
Van

On Wed, Oct 19, 2022 at 11:07 AM Ee Durbin ***@***.***> wrote:

> My understanding is that "PyPI" has been issued trademark but the logo
> itself has not been. @VanL <https://github.com/VanL> do you know the
> status of the logo mark registration for PyPI?
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/pypi/warehouse/issues/6640#issuecomment-1284251336>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AABUNKWV2ID7AUORNUCDDWLWEAMDFANCNFSM4IXGJL7Q>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>

Thanks Van! I guess the next steps here would be to determine what a usage policy would look like, who would moderate it, and have someone build such a page.
I would suggest that for these marks, that there is no allowed use outside
of what we do.

Thanks,
Van

On Thu, Oct 20, 2022 at 11:05 AM Ee Durbin ***@***.***> wrote:

> Thanks Van! I guess the next steps here would be to determine what a usage
> policy would look like, who would moderate it, and have someone build such
> a page.
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/pypi/warehouse/issues/6640#issuecomment-1285810124>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AABUNKXO6QCYDVO43O6NTYTWEFUVHANCNFSM4IXGJL7Q>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>

Can we define who's "we"? The PSF? The PyPA? The PyPI/Warehouse project?
I suppose on further consideration, unlike all of the other PSF held trademarks...

- "Python" a widely used and adaptable programming language
- "PyCon" an idea / core name for an event
- "PyLadies" a chaptered organization

"PyPI" and associated logo represent a single entity/service, so usage outside of our presence on the web doesn't make sense in the same ways.

For all intents and purposes "PyPI" is the service hosted at pypi.org, so I think "we" in this case is limited to that service and its associated web presence.
@ewdurbin it's currently present in a “social preview” (that thing displayed when you paste a link on Twitter or Facebook, and lists like https://github.com/topics/github-actions-python) of this page https://github.com/marketplace/actions/pypi-publish. It is technically quite coupled with the PyPI service, but is under PyPA currently.
Should I rework it, then?
IMO, that's fine. What we're mostly concerned about is people using the logo for things that aren't "PyPI" -- e.g., some other index or private repo.
Right, that's what I wanted to clarify. What's fair use and what's absolutely forbidden.
Our messaging around the name and logo marks for PyPI should be that they
always exclusively need to refer to the service hosted at pypi.org. Yes,
nominative fair use exists, but we don't need to call it out (and even
nominative fair use is fair use because it still refers to our single
source for the PyPI service - pypi.org).

Our statement should be:

"PyPI", the "Python Package Index", and the PyPI blocks logo are registered
trademarks of the Python Software Foundation referring to the products and
services associated with pypi.org. Any other use by any other party is
prohibited.

Thanks,
Van

On Fri, Oct 21, 2022 at 9:39 AM Sviatoslav Sydorenko <
***@***.***> wrote:

> Right, that's what I wanted to clarify. What's fair use and what's
> absolutely forbidden.
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/pypi/warehouse/issues/6640#issuecomment-1287058558>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AABUNKSA2YTMH2JF24ODHFDWEKTJLANCNFSM4IXGJL7Q>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>

That makes sense to me!

Resolving patch:
diff --git a/warehouse/routes.py b/warehouse/routes.py
--- a/warehouse/routes.py
+++ b/warehouse/routes.py
@@ -57,6 +57,12 @@ def includeme(config):
 
     # Our legal policies
     config.add_policy("terms-of-use", "terms.md")
+    config.add_template_view(
+        "trademarks",
+        "/trademarks/",
+        "pages/trademarks.html",
+        view_kw={"has_translations": True},
+    )
 
     # HTML Snippets for including into other pages.
     config.add_route(


Test patch:
diff --git a/tests/unit/test_routes.py b/tests/unit/test_routes.py
--- a/tests/unit/test_routes.py
+++ b/tests/unit/test_routes.py
@@ -588,6 +588,12 @@ def add_policy(name, filename):
             "pages/sponsors.html",
             view_kw={"has_translations": True},
         ),
+        pretend.call(
+            "trademarks",
+            "/trademarks/",
+            "pages/trademarks.html",
+            view_kw={"has_translations": True},
+        ),
     ]
 
     assert config.add_redirect.calls == [