Skip to content

Commit

Permalink
Add client-library waterlink to list (#439)
Browse files Browse the repository at this point in the history
  • Loading branch information
lukasl-dev authored Feb 17, 2021
1 parent 45f8de0 commit 8be3fec
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,19 +43,19 @@ The public api ("api" in a very broad sense) of Lavalink can be categorized into
- **Server Domain:** The server application with its runtime environment, its configuration, etc.

Changes that might be breaking to one domain need not be breaking to the other.
Examples:
Examples:
- Removing an endpoint. This is a breaking change for the client domain, but is
not a breaking change for running the server itself.
- Upgrading the minimum Java version: This is a breaking change for the server domain,
but client implementations couldn't care less about it.
but client implementations couldn't care less about it.

Given the above, the following versioning pattern lends itself well to the Lavalink project:

_**api.major.minor.patch**_

- **Api**: Bumped when breaking changes are comitted to the client domain of Lavalink
Examples: Removing an endpoint, altering output of an endpoint in a non backwards compatible manner
- **Major**: Bumped when breaking changes are comitted to the Lavalink server domain
- **Api**: Bumped when breaking changes are comitted to the client domain of Lavalink
Examples: Removing an endpoint, altering output of an endpoint in a non backwards compatible manner
- **Major**: Bumped when breaking changes are comitted to the Lavalink server domain
Examples: Bumping the required Java version, altering the configuration in a non backwards compatible manner
- **Minor**: New features in any domain
Examples: New optional endpoint or op code, additional configuration options, change of large subsystems or dependencies
Expand All @@ -64,7 +64,7 @@ Examples: Fixing a race condition, fixing unexpected exceptions, fixing output t

While major, minor and patch will do a best effort to adhere to [Semantic Versioning](https://semver.org/),
prepending it with an additional api version makes life easier for developers of client implementations
in two ways: It is a clear way for the Lavalink project to communicate the actually relevant breaking changes
in two ways: It is a clear way for the Lavalink project to communicate the actually relevant breaking changes
to client developers, and in turn, client developers can use the api version to clearly communicate to their
users about the compatibility of their clients to the Lavalink server.

Expand All @@ -91,6 +91,7 @@ users about the compatibility of their clients to the Lavalink server.
* [DSharpPlus.Lavalink](https://github.com/DSharpPlus/DSharpPlus/tree/master/DSharpPlus.Lavalink) ([DSharpPlus](https://github.com/DSharpPlus/DSharpPlus/), .NET)
* [Lavalink4NET](https://github.com/angelobreuer/Lavalink4NET) ([Discord.Net](https://github.com/RogueException/Discord.Net), [DSharpPlus](https://github.com/DSharpPlus/DSharpPlus/), .NET)
* [gavalink](https://github.com/foxbot/gavalink) (Go)
* [waterlink](https://github.com/lukasl-dev/waterlink) (Go)
* [Magma](https://github.com/initzx/magma/) (discord.py, Python)
* [lavapotion](https://github.com/SamOphis/lavapotion) (Elixir)
* [WaveLink](https://github.com/EvieePy/Wavelink) (discord.py, Python)
Expand Down

0 comments on commit 8be3fec

Please sign in to comment.