Wavelink icon indicating copy to clipboard operation
Wavelink copied to clipboard

Rewrite: Miscellaneous

Open scragly opened this issue 4 years ago • 6 comments

This issue is for discussing and collating the issues and wanted improvements of Wavelink for the rewrite project, covering any features that aren't covered in other more suitable issue tickets.

If any particular point gets a lot of attention, consider creating a dedicated issue ticket to discuss it in further detail and to collate all the details specific to it there to ensure this issue is kept relatively clean and focused on the feature as a whole.

Discord Client Support

  • Do we need to support multiple instances of discord clients?
  • Dropping multiclient support, we can instead set a client in wavelink for easy referencing
  • Only support VoiceProtocol API for the sake of simplicity in both using and maintaining

Project Style

  • Type annotations, yes
  • Use from future import annotations? (3.7+)
  • Allow if TYPE_CHECKING for imports as last resort for unavoidable cyclic imports

Development Features

  • Unit tests
  • Linting
  • Precommit hooks
  • CI

Events

  • We should use our own dispatcher
  • using dpys could be confusing in thinking wavelink events are coming from dpy instead of wavelink
  • Can we avoid cog subclasses somehow? (maybe if we allow client registration)

scragly avatar Aug 15 '20 16:08 scragly

Legal

Switch to ~~GNU GPL V3~~ LGPL or any license that prevents proprietary development.

WizzyGeek avatar Aug 16 '20 04:08 WizzyGeek

Legal

Switch to GNU GPL V3 or any license that prevents proprietary development.

What would the purpose of this be exactly?

EvieePy avatar Aug 16 '20 06:08 EvieePy

Well, we wouldn't want any improvements or better forks to be closed source. But people don't seem to like the idea. So I am fine with MIT.

WizzyGeek avatar Aug 17 '20 02:08 WizzyGeek

Another thing, will rewrite support resuming? This is particularly useful for me since I have minor disconnects every hour.

WizzyGeek avatar Aug 17 '20 02:08 WizzyGeek

will rewrite support resuming?

If you mean in regarding to lavalink sessions, as they do support it, it's probably a good idea to try ensure it's included in features but configurable, so I think it's definitely worth trying.

scragly avatar Aug 17 '20 08:08 scragly

Well, we wouldn't want any improvements or better forks to be closed source. But people don't seem to like the idea. So I am fine with MIT.

IANAL and this is not legal advice, but to clarify why this might be a bad idea: importing Python libraries would be considered linking under the GPL and any project directly importing and using Wavelink will also need to be licensed under GPLv3, even if no modifications are made to Wavelink. If your bot is currently open source under a permissive license like MIT or Apache, it'll have to be relicsenced under GPLv3 to comply with such a change.

james7132 avatar Sep 21 '20 20:09 james7132