A new era is coming: Cakebot 2

Reece Dunham

Reece Dunham

Team Lead

Hello all, Today I am extremely proud to announce that Cakebot is getting a full rewrite.

Who? What? When? Where? How? Why?#

One question at a time please! I'll try my best to answer all these questions in this post, as well as provide migration advice, and more.

Why?#

The primary reasoning behind this decision is that Python is becoming unsustainable for this project. It doesn't have strict enough typing, the static analysis we can perform isn't very revealing, and the ecosystem is a bit small. It has become a burden to maintain, test, and add features to the bot in its current state.

What?#

We are migrating from Python to TypeScript, which will allow us to utilize all of the benefits it brings, including:

  1. Much stricter typing (hence the name)
  2. The JavaScript ecosystem, which has a lot, and I mean a lot more packages then the Python ecosystem does
  3. Allowing us to redesign the bot in a way that is modular, and extensible

Yes, you heard me right, Cakebot 2 will support contributing your own custom commands through an extension system!

Who?#

v2 is currently not done. We invite everyone to help us out, no matter if it is porting commands from v1 to v2, or adding completely new features!

When it is done, everyone will still be able to self host. That will NOT be changing. The process will change however (it will become easier!!).

Where?#

All the work is being done on our GitHub page, as per usual. So a server somewhere I suppose.

How?#

Using a new tech stack, all of which can now be found in the repository.

To put it short, discord.js and friends are being used now instead of discord.py.


Migration#

Even though the release is not done yet, we are still starting to migrate some of our infrastructure and code.

Since we are now putting all code in the main repository, CloudRepo is no longer needed.

We plan to keep the CloudRepo up until 2022-06-01.

Some repositories may be moved to the GitLab group for archival purposes.

The official bot instance will move on to the rewrite the day after it is released.

Final Words#

(Plus the last question):

When?#

We plan to have this release done by the end of Janurary, assuming something terrible happens and we lose weeks of time. That is unlikely though, so hopefully only a week or 2.

Its 2021

Lastly, happy 2021! Hopefully it will be better then 2020. ๐Ÿ˜ช