Skip to content
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

Merge client feature/module into gateway #2947

Merged
merged 3 commits into from
Aug 22, 2024

Conversation

mkrasnitski
Copy link
Collaborator

@mkrasnitski mkrasnitski commented Aug 17, 2024

The client and gateway features were very tightly coupled so it makes the most sense to just merge them because there's no real path towards separating them ergonomically.

A few breaking changes:

  • Removed ClientError because it was unused.
  • The client module is moved to be a submodule under the gateway module.
  • Moved sharding-specific gateway types into their own sharding submodule for clarity's sake, but re-exported them.

I also adjusted the gateway docs to hopefully make them as clear as possible.

Note that the Cargo.toml changes are mostly superficial - in particular, changing gateway to depend on model (instead of http like how client did) isn't actually much of a change because trying to use gateway with only a subset of model enabled will fail to compile, and that was also the case for client previously.

@github-actions github-actions bot added framework Related to the `framework` and `framework::standard` modules and/or the `command_attr` crate model Related to the `model` module. client Related to the `client` module. cache Related to the `cache`-feature. http Related to the `http` module. utils Related to the `utils` module. gateway Related to the `gateway` module. examples Related to Serenity's examples. ci Related to the continuous integration. labels Aug 17, 2024
@arqunis arqunis added enhancement An improvement to Serenity. breaking change The public API is changed, resulting in miscompilations or unexpected new behaviour for users labels Aug 22, 2024
@arqunis arqunis merged commit 9db92c1 into serenity-rs:next Aug 22, 2024
21 checks passed
@mkrasnitski mkrasnitski deleted the client-gateway-merge branch August 22, 2024 23:58
GnomedDev pushed a commit to GnomedDev/serenity that referenced this pull request Oct 7, 2024
The `client` and `gateway` features were very tightly coupled so it
makes the most sense to just merge them because there's no real path
towards separating them ergonomically.

A few breaking changes:
* Removed `ClientError` because it was unused.
* The `client` module is moved to be a submodule under the `gateway`
module.
* Moved sharding-specific gateway types into their own `sharding`
submodule for clarity's sake, but re-exported them.

I also adjusted the gateway documentation to hopefully make it as clear as
possible.

Note that the `Cargo.toml` changes are mostly superficial - in
particular, changing `gateway` to depend on `model` (instead of `http`
like how `client` did) isn't actually much of a change because trying to
use `gateway` with only a subset of `model` enabled will fail to
compile, and that was also the case for `client` previously.
GnomedDev pushed a commit to GnomedDev/serenity that referenced this pull request Oct 20, 2024
The `client` and `gateway` features were very tightly coupled so it
makes the most sense to just merge them because there's no real path
towards separating them ergonomically.

A few breaking changes:
* Removed `ClientError` because it was unused.
* The `client` module is moved to be a submodule under the `gateway`
module.
* Moved sharding-specific gateway types into their own `sharding`
submodule for clarity's sake, but re-exported them.

I also adjusted the gateway documentation to hopefully make it as clear as
possible.

Note that the `Cargo.toml` changes are mostly superficial - in
particular, changing `gateway` to depend on `model` (instead of `http`
like how `client` did) isn't actually much of a change because trying to
use `gateway` with only a subset of `model` enabled will fail to
compile, and that was also the case for `client` previously.
GnomedDev pushed a commit that referenced this pull request Oct 20, 2024
The `client` and `gateway` features were very tightly coupled so it
makes the most sense to just merge them because there's no real path
towards separating them ergonomically.

A few breaking changes:
* Removed `ClientError` because it was unused.
* The `client` module is moved to be a submodule under the `gateway`
module.
* Moved sharding-specific gateway types into their own `sharding`
submodule for clarity's sake, but re-exported them.

I also adjusted the gateway documentation to hopefully make it as clear as
possible.

Note that the `Cargo.toml` changes are mostly superficial - in
particular, changing `gateway` to depend on `model` (instead of `http`
like how `client` did) isn't actually much of a change because trying to
use `gateway` with only a subset of `model` enabled will fail to
compile, and that was also the case for `client` previously.
GnomedDev pushed a commit to GnomedDev/serenity that referenced this pull request Nov 11, 2024
The `client` and `gateway` features were very tightly coupled so it
makes the most sense to just merge them because there's no real path
towards separating them ergonomically.

A few breaking changes:
* Removed `ClientError` because it was unused.
* The `client` module is moved to be a submodule under the `gateway`
module.
* Moved sharding-specific gateway types into their own `sharding`
submodule for clarity's sake, but re-exported them.

I also adjusted the gateway documentation to hopefully make it as clear as
possible.

Note that the `Cargo.toml` changes are mostly superficial - in
particular, changing `gateway` to depend on `model` (instead of `http`
like how `client` did) isn't actually much of a change because trying to
use `gateway` with only a subset of `model` enabled will fail to
compile, and that was also the case for `client` previously.
GnomedDev pushed a commit that referenced this pull request Nov 13, 2024
The `client` and `gateway` features were very tightly coupled so it
makes the most sense to just merge them because there's no real path
towards separating them ergonomically.

A few breaking changes:
* Removed `ClientError` because it was unused.
* The `client` module is moved to be a submodule under the `gateway`
module.
* Moved sharding-specific gateway types into their own `sharding`
submodule for clarity's sake, but re-exported them.

I also adjusted the gateway documentation to hopefully make it as clear as
possible.

Note that the `Cargo.toml` changes are mostly superficial - in
particular, changing `gateway` to depend on `model` (instead of `http`
like how `client` did) isn't actually much of a change because trying to
use `gateway` with only a subset of `model` enabled will fail to
compile, and that was also the case for `client` previously.
GnomedDev pushed a commit to GnomedDev/serenity that referenced this pull request Nov 15, 2024
The `client` and `gateway` features were very tightly coupled so it
makes the most sense to just merge them because there's no real path
towards separating them ergonomically.

A few breaking changes:
* Removed `ClientError` because it was unused.
* The `client` module is moved to be a submodule under the `gateway`
module.
* Moved sharding-specific gateway types into their own `sharding`
submodule for clarity's sake, but re-exported them.

I also adjusted the gateway documentation to hopefully make it as clear as
possible.

Note that the `Cargo.toml` changes are mostly superficial - in
particular, changing `gateway` to depend on `model` (instead of `http`
like how `client` did) isn't actually much of a change because trying to
use `gateway` with only a subset of `model` enabled will fail to
compile, and that was also the case for `client` previously.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking change The public API is changed, resulting in miscompilations or unexpected new behaviour for users cache Related to the `cache`-feature. ci Related to the continuous integration. client Related to the `client` module. enhancement An improvement to Serenity. examples Related to Serenity's examples. framework Related to the `framework` and `framework::standard` modules and/or the `command_attr` crate gateway Related to the `gateway` module. http Related to the `http` module. model Related to the `model` module. utils Related to the `utils` module.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants