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

Tracking for Release v0.17.0 #562

Merged
merged 183 commits into from
Oct 10, 2024
Merged

Tracking for Release v0.17.0 #562

merged 183 commits into from
Oct 10, 2024

Conversation

bitfl0wer
Copy link
Member

@bitfl0wer bitfl0wer commented Sep 28, 2024

Release tracker for v0.17.0 of chorus, set to release on October 10th, 2024.

Public API changes

Internal changes

Bugfixes

kozabrada123 and others added 30 commits April 19, 2024 17:13
* feat: add WebSocketEvent derive, bump to 0.2.1

* change license, version of macros
use derive macro instead of manual impl blocks
* deps: bump rustls to 0.21.11

This is done to fix CVE-2024-32650, which practically shouldn't affect
us but it's still better not to use vulnerable dependencies.

* deps: bump h2 to 0.3.26

This is done to fix another vulnerability, which should also not affect
us (non-critical, in h2 servers)

* fix: move Shared<T> to types/mod.rs
Change login and register to only use one ChorusUser object, change the
api of related methods which were also somewhat ugly
* bump wasm-bindgen version to 0.2.92

* change wasm-gecko to using ubuntu-latest, since geckodriver is not supported on macos-latest

* check some common non-default feature configurations

* add experimental semver checks
* fix: some iso timestamps being strings

* fix: register uses dates, not datetimes
@bitfl0wer bitfl0wer marked this pull request as ready for review October 10, 2024 16:02
kozabrada123 and others added 16 commits October 10, 2024 18:46
* deps: bump rustls to 0.21.11

This is done to fix CVE-2024-32650, which practically shouldn't affect
us but it's still better not to use vulnerable dependencies.

* deps: bump h2 to 0.3.26

This is done to fix another vulnerability, which should also not affect
us (non-critical, in h2 servers)

* fix: move Shared<T> to types/mod.rs
Change login and register to only use one ChorusUser object, change the
api of related methods which were also somewhat ugly

Feature lock different types for UserSettings::status

Add sqlx::FromRow derive to GuildMember

Use Snowflake in Claims

Use ChannelType enum on ChannelModifySchema

Add From<Vec<GuildFeatures>> impl for GuildFeaturesList

Add feature sqlx locks for user, roles on GuildMember

Use distinct type for explicit_content_filter

Revert c445213

Fix errors in documentation tests

update dev-dependencies

Expand documentation to explain facade type

Fix oversight for premium_since

Add sqlx Type, Encode, Decode impl for InviteFlags bitflag object.

Fix inverted type wrapping

Remove unused imports, feature locks in macro

forgot a file :(

Fix test

I feel silly.

Fix compilation for real, no dirty hack

u8 -> u64
* feat: add GatewayOptions

* feat: implement zlib-stream compression

This also changes how gateway messages work.
Now each gateway backend converts its message into an
intermediary RawGatewayMessage, from which we inflate
and parse GatewayMessages.

Thanks to ByteAlex and their zlib-stream-rs crate, which
helped me understand how to parse a compressed websocket stream
* Fix SQL encode/decode for GuildFeatures

* Use distinct PermissionFlags type

* Add Emoji schema types, modify GuildBan with feature lock

* Add Schemas for pruning guild members

* Add schemas for interfacing with stickers backend routes

* Add schemas for interfacing with vanity-url backend routes

* Add schema for interfacing with guilds/id/welcome-screen route

* Make all Option<Vec> types Vec types with #[serde(default)]

* Add various types to support guilds/* api routes

* Add missing enums and structs for searching messages

* Use proper distinct types

* Add EmbedType enum

* Use distinct PermissionFlags type

* Changes supporting backend for VoiceState

* Changes supporting backend for AuditLog's

Fix voice, voice_udp features

Add one BILLION derives

Fix: Wrong function name

Fix: Turn unconditional import of sqlx::types::Json into conditional one

Fix: Compile error with no default features

Update CONTRIBUTING.md

Fix/Correct UnavailableGuild object

Fix testcase that relied on false behavior implemented by older spacebar servers

Increase limit integer size to match spacebars' possibilities

forgor installing nextest

Bump browser_version according to https://www.useragents.me/#most-common-desktop-useragents

Fix voice_simple example

Update documentation in gateway_observers example

Readd Observer trait as reexport

remove cargo lock from example

More accurate "GatewayHello::default()"

Manually implement std::default::Default for GatewayHeartbeat and GatewayHeartbeatAck

bump versions of packages to latest compatible versions
* Change sqlx::Any to sqlx::Postgres

* Change sqlx::Any to sqlx::Postgres

* Remove JSONified overrides when sqlx feature is enabled, where it makes sense

* Add num-bigint dep

* Remove generic impl for From<T> for Snowflake
For some reason, this trait bound conflicts with another trait bound from the sqlx-pg-uint crate, even though I personally don't get why.

* Remove num_bigint, adsd sqlx-pg-uint

* swap u64 for PgU64 in some files

* use v0.3.0 of sqlx-pg-uint

* Lots of sqlx-postgres type changes

* Lots of sqlx-postgres type changes

* gwah

* Change repr(i8) to repr(i16) in enums when sqlx feature is enabled, fix sqlx incompatibilities

* impl sqlx::postgres::PgHasArrayType for Snowflake

* Try: derive Type for FriendSourceFlags, GuildFolder

* Try: Derive FromRow, Type for DefaultReaction

* Try: Derive Type for CustomStatus

* Try: Derive Type, FromRow for Tag

* Replace conditional compiling of uNN/PgUNN with conditional compiled type alias

* Fix: Conditional compiling errors and warnings

* Bump: wasm-bindgen* crate versions

Uncomment and update decode_token()

Add missing `impl From<Snowflake> for u64`, closes `From<Snowflake> for u64` missing #550

Update README.md

move up sending identify

Revert d846ce9

Bump version to v0.16.0
* feat: Add UserProfile and other types

* api: re-do a large part of the users api

* feat: add modify user profile

* feat: delete and disable user endpoints

* feat: modify email and verify email endpoints

* feat!: add discriminator parameter to get_user_by_username

* feat!: add get_user_profile query string schema

* chore: add integration expire behavior

* feat: add get_pomelo_suggestions and get_pomelo_eligibility

* feat: add create_pomelo_migration

* fix: rustdoc lints

* feat: recent_mentions endpoints

Adds GET /users/@me/mentions and DELETE /users/@me/mentions/{message.id}

* feat: add get_user_harvest & create_user_harvest

Also adds /types/entities/harvest.rs, types for Harvest

* feat: user notes endpoints

Adds: get_user_notes, get_user_note, set_user_note

* feat: add #545 and #546

Adds the RECENT_MENTION_DELETE and USER_NOTE_UPDATE gateway events.

The events can be accessed at:
message.recent_mention_delete
&
user.note_update

* feat: add authorize_connection

Also adds: src/types/entities/connection.rs, Connection and PublicConnection,
src/api/users/connections.rs

* feat: add rest* of Connections api

* The only thing not added yet is create_domain_connection, because it uses errors in a funky way

adds:
- create_connection_callback
- create_contact_sync_connection
- get_connections
- refresh_connection
- modify_connection
- delete_connection
- get_connection_access_token
- get_connection_subreddits

+ related schema for all those routes, and some supporting types

* feat: add connected_accounts to UserProfile

* feat: add affinities

* feat: add get_premium_usage endpoint

note: not fully tested; I do not have an account with premium

* cliipy my arch nemesis strikes again

* aa

* feat: add create_domain_connection

* feat: add get_burst_credits

* grumble grumble

* clippy

* fix READY deserialization error on spacebar

* fix a deserialization error on Spacebar

See spacebarchat/server#1188

A deserialization error was happening with get_user_profile, where pronouns should have been serialized as an empty string, but were instead serialized as null.

* skip serializing None query parameters

* add test for get_user_profile

* apparently Sb does not implement users/@me/notes

* add some tests, minor connection updates

- Document that create_domain_connection is unimplemented on Spacebar

- Add Discord connection type

- Change ConnectionType::array() into ConnectionType::vector() - returning a fixed size array is dubious, since it'll likely be expanded. Returning a vector is easier keep up to variable length

- Add ConnectionType::discord_vector() and ConnectionType::spacebar_vector() to return a vector ConnectionTypes available on the respective server backends

- add tests test_modify_user_profile, test_disable_user, test_get_user_note, test_set_user_note, test_get_user_affinities, test_get_guild_affinities, test_get_connections

Note: connections are hard to test, since they require secrets / an external service's account

* minor pre merge changes

- add some extra doc comments

- and into_public() for connection

- remove a todo that is no longer valid
* Add InstanceOptions type

* feat: add /ping and /version, implement software differentiation

* fix: better error handling, missing slash in /policies/instance

- handle deserialization errors and not parsing the http content into a string

- the route only works on spacebar if you add a trailing slash for some reason
* Update Ready, Split Ready into User and Bot variants

* add supplemental to_bot method for gatewayready

* Use serde(default) to fix missing attrs in spacebar server impl
src/api/auth/mod.rs Fixed Show fixed Hide fixed
src/api/auth/mod.rs Fixed Show fixed Hide fixed
src/api/auth/mod.rs Fixed Show fixed Hide fixed
@bitfl0wer bitfl0wer merged commit edf0ede into main Oct 10, 2024
9 checks passed
@kozabrada123 kozabrada123 added the Release A pull request from dev to main, creating a new release label Oct 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Release A pull request from dev to main, creating a new release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants