Rapptz / discord.py

An API wrapper for Discord written in Python.
http://discordpy.rtfd.org/en/latest
MIT License
14.56k stars 3.74k forks source link

Extension Guidelines #9554

Open Soheab opened 10 months ago

Soheab commented 10 months ago

Summary

Guidelines for second/third-party extensions

What is the feature request for?

The documentation

The Problem

From what I can understand, the discord/ext namespace is open for users to "inject" their addons to the library for things that are potentially missing or something else but I can't seem to find any guidelines on what such extension should follow. Like best practices, do's and don'ts, etc.

The Ideal Solution

Provide / Write guidelines for using the discord/ext namespace. Some things I can think of are as follows:

The Current Solution

You can ask around / regulars/contributors in the discord.py server. I guess.

Additional Context

No response

EvieePy commented 10 months ago

As far as guidelines around all the things mentioned, I don't think it would be appropriate to set rules on how people develop their software. Third-Party extensions are not official and are created by members of the community; they are used much like any other installable python package, for the most part. Typing, exceptions etc etc are all responsibilities and choices made by the creators, and it's up to the end user to decide whether they want to use these extensions or not.

Soheab commented 10 months ago

As far as guidelines around all the things mentioned, I don't think it would be appropriate to set rules on how people develop their software. Third-Party extensions are not official and are created by members of the community; they are used much like any other installable python package, for the most part. Typing, exceptions etc etc are all responsibilities and choices made by the creators, and it's up to the end user to decide whether they want to use these extensions or not.

That is fair, but I think of it as a PEP8 kind of thing where creators can follow it but are not forced to. The library provides the ability and I think it's only good to also provide some sort of good practices guide for it. I do agree that my example points are kind of silly now that I think about it.

The guide could potentially also be used to differentiate between good and bad extensions and maybe recommend them on the server or showcase them somewhere instead of shitting on them (I know, a guide isn't going to help with that).