Releases: cordis-lib/cordis
1.2.0
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
1.0.0
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
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 owncontroller
- feat(DiscordFetchOptions#retryAfterRatelimit): allows you to make
429
status codes just throw instead of wait & retry, defaults toRest#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
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
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
- feat(repo): meta thread issue template & other regressions (#51) ~ @didinele
- chore: update docs site domain (#57, #58) - We have moved to cordis.js.org! ~ @didinele and @zaida04
- chore: improve npm scripts (#62)
That's it folks, see you around!
0.1.7
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 theIRouter
~ @didinele and @zaida04 - fix(rest/router): make
files
anddata
optional input
(#42, #45) ~ @zaida04 - fix(repo): npm scripts can no longer deploy old junk (#48) ~ @didinele
Repo/meta
0.1.6
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
0.1.5
0.1.2
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.