Skip to content
This repository has been archived by the owner on Apr 17, 2023. It is now read-only.

Releases: cordis-lib/cordis

1.2.0

24 Nov 13:07
4ccda74
Compare
Choose a tag to compare

Bug fixes

  • fix(WebsocketConnection): no longer hardcode gateway version (#92)
  • fix(DiscordFetch): add highWaterMark option (#93) - this is a bug fix as before, due to internal request cloning requests to Discord that returned large payloads would cause promises to never resolve
  • fix(MemoryMutex): properly update the remaining property - this is a critical fix, as before it would cause lots of rate limits
  • fix(Bucket): implement a TLL system for Bucket instances - this is also an important fix at scale, resolving a memory leak
  • fix(Bucket): #makeRoute now deals with /channels/:id correctly
  • fix(Bucket): group all invite routes into one bucket

1.0.1

23 Jul 18:38
4f23090
Compare
Choose a tag to compare

Fixes

  • fix(GatewayService): parse for env once more (#90)
  • fix(rest): move discord-api-types into runtime deps (#91)

1.0.0

22 Jul 20:05
b3848b9
Compare
Choose a tag to compare

Hiya! Cordis is finally stable. Lots of breaking changes! Officially everything before this version has been deprecated.

Repo & QOL

  • ci: add deploy workflow (#77)
  • chore: polish/cleanup (#76, #86) - typescript, eslint and other dependency bumps
  • chore: automatic changelog generation (#82)

General refactoring

  • chore: polish rest (#73) - this was a rewrite - breaking
  • refactor: remove DI and the pub sub client from GW service (#84) - breaking
  • refactor(Brokers): change confusing client/server naming to publisher/subscriber (#87) - breaking
  • chore: remove relics of the past (#85) - breaking - this PR removed a lot of stuff
  • refactor(WebsocketShard): gateway events (#88) - breaking

0.3.0

04 May 07:05
1fd194d
Compare
Choose a tag to compare
0.3.0 Pre-release
Pre-release

Hello! Been a while. 0.2 releases turned out to work much better than I thought they would. Cordis has seen quite the volume of use with some of the stuff I've been working on lately and it's just been going super well.

However, with that I managed to find a bunch of issues with rest rate limit handling - and oh lord. The codebase of that thing was a headache. This release is breaking because I have more or less entirely rewrote it.

Here's a list of changes:

  • [BREAKING] refactor(Rest#response): The response event was re-done. It now emits once the I/O call is done and gives you a clone of the response.
  • [BREAKING] refactor(Mutex#claim): no longer takes in a signal parameter, meaning you cannot cancel a request at this stage anymore - I'm fairly uncertain if this change really is desireable and it may see itself being reverted, but with a different approach. It was really only removed due to some of the problems it was causing
  • fix(HTTPError): no longer call Error.captureStackTrace(this); in the constructor - seems like this was causing some trouble, may make the stack traces work better now. Uncertain, but I'll continue bashing down on that problem over the next few patch releases
  • fix(Rest/Bucket): error handling - This should've been done ages ago, frankly. A lot of edge cases are now properly covered and recursion is no longer used for retries.
  • feat(DiscordFetchOptions#implicitAbortBehavior): tells the library if it should internally set a timeout for the actual I/O being done (fetch) - defaults to false if you pass in your own controller
  • feat(DiscordFetchOptions#retryAfterRatelimit): allows you to make 429 status codes just throw instead of wait & retry, defaults to Rest#retryAfterRatelimit.
  • feat(Rest#retryAfterRatelimit): default for the above

It's really not that bad. Unless you implemented your own mutex/did whacky stuff with the response event you don't even have to touch your code.

0.2.3

21 Mar 10:18
19c67c4
Compare
Choose a tag to compare
0.2.3 Pre-release
Pre-release

Hello! Been a long week. Had to skip 0.2.1 and 0.2.2 as util had those 2 relases under some emergency fixes...

Anyway, small release (in fact, so small that all of those changes happened in a single PR - #69), here are the changes:

  • fix(Bucket): wait for rate limits before setting a timeout for the request
  • Mutex: deprecated passing in abort signal directly to the mutex and will be gone as of the next major release
  • meta: got rid of the .eslintignore file as it was absolutely useless
  • commented out a credit in the feature request template
  • fix(restUtil): minor issues with roles and reactions

With this, I feel like 0.2 releases are starting to become fairly useable. Still a long way to go though with the upcoming Discord interactions!

0.2.0

14 Mar 11:32
7238dc7
Compare
Choose a tag to compare
0.2.0 Pre-release
Pre-release

We sure have come a long way. 0.2.0 already marks a big step in making cordis prod-ready. It is already much easier to do custom and fairly complex orchestration for auto scaling and such.

This release is breaking, please make sure to look through the changelogs and see if it effects any of your code.

Bug fixes - in order of relevance

  • fix(functions/test): halt test can no longer randomly fail (#53) - mostly a CI improvement ~ @didinele

Additions

  • @cordis/util (#32) [BREAKING] - This is a big one, would recommend looking at the documentation for it. This PR also moved makeDiscordCdnUrl from @cordis/common to @cordis/util ~ with love, props to @zaida04
  • feat(gateway): resuming when connecting for the first time (#60) ~ @didinele
  • feat(gateway-service): support code injection (#61) ~ @didinele

Removals

  • chore: remove redundant methods from redis-store (#35) [BREAKING] ~ @didinele
  • fix(gateway/gateway-service): remove built-in caching (#52) - if you need cache, do it yourself - this is classified as a fix since I never intended to let it land in the library, really ~ @didinele

Deprecations

  • refactor: merge routers with rest (#59) - Please stop using @cordis/routers, it is entirely unsupported from here on out. Nothing about it has changed, it's just that you have to import it from @cordis/rest now ~ @zaida04
  • @cordis/util (#32) - This PR merged @cordis/snowflake into @cordis/util - the API remains the same

Repo/meta

That's it folks, see you around!

0.1.7

07 Mar 19:26
0ba75b2
Compare
Choose a tag to compare
0.1.7 Pre-release
Pre-release

Hello! This release is centered around and houses even more meta changes than last time.

Once again, this being a patch release, there are no breaking changes.

Bug fixes - in order of relevance

  • fix(WebsocketConnection): handle unexpected close code properly (#49) ~ @didinele
  • fix(rest/router): generic types for making requests (#41) - This change covered some poor type guarding with all of the HTTP methods in both the RestManager and the IRouter ~ @didinele and @zaida04
  • fix(rest/router): make files and data optional in put (#42, #45) ~ @zaida04
  • fix(repo): npm scripts can no longer deploy old junk (#48) ~ @didinele

Repo/meta

  • workflows: automatic doc generation 🎉(#39, #40) ~ @zaida04
  • repo: improvements across all of the README files, addition of an issue template, PR template, and code of conduct (#47) ~ with lots of thanks, authored by @zaida04

0.1.6

28 Feb 14:52
3dddd6a
Compare
Choose a tag to compare
0.1.6 Pre-release
Pre-release

Hello! This release covers quite a few issues that we've encountered throughout this week with the project. Overall, the plan is to keep on rolling out patches every Sunday for a while until it gets more stable, so stay tuned for next week as well!

This release has no breaking changes, mostly just bug fixes and quality of life:

Bug fixes - in order of relevance

  • fix(Cluster): redis store construction (#36) - Attempting to use the gateway with Redis was entirely broken ~ @didinele
  • fix(rest/routers): add a RequestBodyData type and replace in appropriate areas (#26) ~ @zaida04
  • fix(IRouter): return types (#30) ~ @didinele
  • fix(GatewayService): optimize docker image size (#24) - This change is absolutely life changing. See screenshots [1] for the old size and [2] for the new size at the end of this post. ~ @didinele
  • fix(*): npm deployment (#31) - This PR changed the way we select which files are excluded from NPM deployment. ~ @didinele and @zaida04

Repo/meta

  • tests: quallity check workflow (#27) ~ @zaida04
  • workflows: add docs deploy workflow (#34) ~ @zaida04
  • chore: bump local package dep versions and add contribs (#33) - This wasn't a particularly major issue due to pnpm's functionality, but a good catch nevertheless ~ @zaida04

Relevant screenshots:

0.1.5

25 Feb 07:43
6153918
Compare
Choose a tag to compare
0.1.5 Pre-release
Pre-release

This release covers env var issues with the gateway, QOL typings for routers and various other bug fixes.

Oh and, the release cycle finally worked well! So semver should be properly respected from here on out.

0.1.2

24 Feb 19:08
db87716
Compare
Choose a tag to compare
0.1.2 Pre-release
Pre-release

This release was a bit of a mess as I fixed the deployment cycle. Due to issues with the npm scripts I unfortunately had to skip 0.1.1 and also had to bump brokers in particular to 0.1.4.

Not ideal, but things will get better from here on out, as things are actually being tested and start working.

This release covers some of the README concerns, some typo'd examples, and of course, the release flow.

0.1.5 will be up next, hopefully with more actual bugs fixed.