Skip to content

Releases: No767/Kumiko

v0.11.0

15 Aug 10:54
f0a60eb
Compare
Choose a tag to compare

✨ Kumiko v0.11.0 ✨

The final feature release before bugfixing and staging tests begin. This release includes changes such as the introduction of the auction house, pronouns module, and others. These features are considered to be stable but will contain bugs and issues. Please report any bugs you find to the issue tracker if you find one.

For the full list of changes, please see them here: v0.10.2...v0.11.0

As a side note, I (Noelle) will not be working on Kumiko as actively as before due to college and work so releases will not be as frequent as before.

💥 Breaking Changes 💥

  • There are none 😄

✨ TD;LR

  • Implement the Auction House module (#390)
  • Implement the Redirects module
  • Kumiko is fully up to PEP8 standards

🛠️ Changes

  • Use discord.py styled versioning schema
  • Use RoboDanny styled uptime tracker
  • Optimize error handler stack
  • Support systemd journal handlers
  • Use msgspec as a replacement to attrs and faster serialization/deserialization
  • Upgrade redis stack to 7.2.0-RC3
  • Use SonarCloud to enforce code quality
  • Move connection checks into one file
  • Use verify-full for SSL PostgreSQL connections
  • Condense Reddit cog
  • Start tasks in cog_load instead of constructor
  • Ensure that the codebase is linted through better Pyright and Ruff configs
  • Use grouped unique keys to enforce M-M relations
  • Update docs to reflect PEP8 standards
  • Improved traceback formatting for backwards compatibility
  • Use msgspec.Struct instead of attrs for faster serializations
  • Improve Redis caching
  • Improve event logs by using better redis caching and structs instead
  • Provide more fixes to the jobs module

✨ Additions

  • Implement message constants enums
  • Use SonarCloud to enforce code quality
  • Implement Auction House, refund, and pronouns commands
  • Add buttons within inventory in order to access AH easier
  • Systemd journal handler
  • Leaderboard command
  • Implement dictionary module (supports both English and Japanese)
  • Implement a purchase command for the Auctions module
  • More test coverage
  • Implement the Redirects module (allows you to redirect overlapping conversations into threads)
  • Implement the resolved command to mark a thread as resolved. Also works on fourms
  • Add FUNDING.yml (because I am a broke college student and I need money)
  • Simple healthcheck ipc endpoint

➖ Removals

  • Old help command
  • Dead code / commented out code
  • Unused tables and indexes (the m-m tables got dropped)

⬆️ Dependabot Updates

v0.10.2

01 Aug 22:53
3b36529
Compare
Choose a tag to compare

🛠️ Kumiko v0.10.2 🛠️

This release fixes issues with the marketplace module and others.

For the full list of changes, please see them here: v0.10.1...v0.10.2

💥 Breaking Changes 💥

  • There are none 😄

✨ TD;LR

  • Fixed the owner-issue relationship bug

🛠️ Changes

  • Fixed the owner-issue relationship bug (this was an issue with the marketplace where if someone made a job output and others bought it, it would throw errors)
  • Applied foreign key constraints for item ids
  • Changed the user_inv from an 1-n relationship to m-m relationship
  • Fixed the prefix duplicates bug (before this, admins could set duplicate prefixes and it would work)
  • Updated Requirements/prod.txt requirements

✨ Additions

  • None

➖ Removals

  • Removed toml (not from stdlib)

⬆️ Dependabot Updates

v0.10.1

25 Jul 07:04
563e4c7
Compare
Choose a tag to compare

🛠️ Kumiko v0.10.1 🛠️

This release just updates the prod.txt requirements file for installing deps.

For the full list of changes, please see them here: v0.10.0...v0.10.1

💥 Breaking Changes 💥

  • There are none 😄

✨ TD;LR

  • None

🛠️ Changes

  • Update prod.txt to match the latest prod requirements

✨ Additions

  • None

➖ Removals

  • None

⬆️ Dependabot Updates

  • None

v0.10.0

25 Jul 06:29
617eb8c
Compare
Choose a tag to compare

✨ Kumiko v0.10.0 ✨

Finally Kumiko is nearly feature complete for v1. This release includes the new pins module, which is pretty much a tags feature. This release also includes the new Economy V4, which is the core and flagship feature of Kumiko. Ranks, jobs, and the marketplace now fully work, and more features are planned soon. On top of these, this release also fixes some bugs with the prefix and events log modules. Note that the economy feature is stable, but does have bugs and issues that folks may encounter. If there are any, please report them in the issues page on GitHub.

For the full list of changes, please see them here: v0.9.2...v0.10.0

💥 Breaking Changes 💥

  • There are none 😄

✨ TD;LR

  • Pins module (pretty much works like most tags features)
  • Economy V4 (this includes the economy, jobs, and marketplace cogs). This feature has been the core of Kumiko, and was one of the very first features that I worked on. Now it is stable, although there are a lot of bugs and issues to fix.

🛠️ Changes

  • Fixed bugs with the prefix and events-log cog
  • Proper server config (both on PostgreSQL and Redis). The config is always cached on Redis first, and if doesn't exist, pulls from the database and reconstructs the cache entirely.
  • Clarify running migrations with the docs
  • Optimized Dockerfile (cut down on image size and removed unneeded things)
  • Update AIOHTTP to v3.8.5 (fixes CVE-2023-37276) (Backported from v0.9.2)
  • Implement file based logging support
  • Upgrade Redis-Stack to 7.2.0-RC3
  • Use JSON.MERGE instead of JSON.SET when replacing items in the JSON document (with Redis)

✨ Additions

  • NSFW module (These can only be used in NSFW channels)
  • Pins module
  • Economy V4 (includes economy, jobs, and marketplace cogs).
  • is_economy_enabled check
  • Proper configuration for eventslog feature
  • Proper SIGTERM support. Now the bot doesn't exit with an exit code 137, but now a 0.
  • Implement permission check shortcuts (is_manager, is_admin, is_mod). Taken from RDanny because I have no time.
  • Add tasks to update pay and restock items. Done per hour
  • Add local eco_user table
  • Add SSL support (only up to requires, not the full verify). This is really needed because of data security

➖ Removals

  • Old "community docs"
  • Old scripts

⬆️ Dependabot Updates

  • [pip](deps): Bump asyncpraw from 7.7.0 to 7.7.1 (#378) (@dependabot)
  • [pip](deps-dev): Bump pyright from 1.1.316 to 1.1.317 (#379) (@dependabot)
  • [pip](deps-dev): Bump ruff from 0.0.277 to 0.0.278 (#381) (@dependabot)
  • [pip](deps-dev): Bump pytest-asyncio from 0.21.0 to 0.21.1 (#380) (@dependabot)
  • [Actions](deps): Bump actions/setup-python from 4.6.1 to 4.7.0 (#382) (@dependabot)
  • [pip](deps-dev): Bump pyright from 1.1.317 to 1.1.318 (#387) (@dependabot)
  • [pip](deps-dev): Bump pyinstrument from 4.5.0 to 4.5.1 (#388) (@dependabot)
  • [pip](deps-dev): Bump ruff from 0.0.278 to 0.0.280 (#389) (@dependabot)

v0.9.2

20 Jul 20:56
9e31389
Compare
Choose a tag to compare

🛠️ Kumiko v0.9.2 🛠️

Security update to fix a vulnerability in AIOHTTP (CVE-2023-37276) where llhttp v6.0.6 would be vulnerable to CVE-2023-30589

For the full list of changes, please see them here: v0.9.1...v0.9.2

💥 Breaking Changes 💥

  • None

✨ TD;LR

  • None

🛠️ Changes

✨ Additions

  • None

➖ Removals

  • None

⬆️ Dependabot Updates

  • None

v0.9.1

20 Jul 20:43
8584b75
Compare
Choose a tag to compare

🛠️ Kumiko v0.9.1 🛠️

Small bug fixes to make sure that Kumiko is working

For the full list of changes, please see them here: v0.9.0...v0.9.1

💥 Breaking Changes 💥

  • None

✨ TD;LR

  • None

🛠️ Changes

  • Fix SIGTERM not working to close the bot properly
  • Use latest tag instead of edge tag for production docker-compose.yml file
  • Use SIGTERM as the STOPSIGNAL for Docker

✨ Additions

  • None

➖ Removals

  • None

⬆️ Dependabot Updates

  • None

v0.9.0

11 Jul 08:32
0fd2796
Compare
Choose a tag to compare

✨ Kumiko v0.9.0 ✨

More reworks of literally everything... This release migrates from Prisma to pure SQL (asyncpg), and fully stabilities the repo to use discord.py instead of Pycord. Nearly all of the planned features are implemented in this release, except the economy module.
For the full list of changes, please see them here: v0.8.x...v0.9.0

Note: The commands to configure which events are turned on are disabled as of now, since it would require a full rework of the schema and code. This will be implemented in a future release.

💥 Breaking Changes 💥

  • All of the SQL queries have been rewritten to use SQL w/ asyncpg instead of Prisma
  • A ton of cogs, and commands have been either moved or deleted since v0.8.x. Please consider resyncing your commands with the include dev-tool cog (or by activating jishaku)
  • All *-bullseye tags are now deprecated. Kumiko is now built using Debian 12 (Bookworm)

✨ TD;LR

  • Migration from Prisma to asyncpg
  • Kumiko now supports custom prefixes (max is 10). The default that will be set is >
  • asyncpg-trek migration system
  • Kumiko's EventsLog module has been implemented
  • Docs has been merged into one repo (https://kumiko.readthedocs.io/en/latest/index.html)

🛠️ Changes

  • Allow actions commands to greedily consume users to mention
  • Replaced RedisCheck with an simple ping check (ensureOpenRedisConn)
  • Replace all Prisma related code with asyncpg code
  • Reuse AIOHTTP ClientSession, asyncpg.Pool, redis.asyncio.connection.ConnectionPool, and LRU objects throughout the lifecycle of the bot
  • Hide .python-version file from the repo
  • Expect id and redis_pool args to be in an function when using @cache or @cacheJson decos
  • Update docs to add new instructions for hosting, and new requirements
  • Don't stack context managers, but rather spawn 3 new ones in one go (this is recommended instead)
  • Update Dockerfile to use Debian 12 (Bookworm)
  • Use Embed.timestamp for some embeds to show timestamps
  • Replaced .gitignore with a proper one from GitHub
  • Replaced kumiko.py with meta.py to allow for clearer purpose
  • Updated the return types of KumikoCache().getJSONCache()
  • Allow for custom paths to search for KumikoCache().setJSONCache()
  • Alow for custom keys and names to be used instead in @cache and @cacheJson decos
  • Use WindowsEventLoop for Windows (#375) (@rtk-rnjn)
  • Implement WinLoop event policy for Windows
  • Ensure that the migration runner always runs first
  • Change stop signal from SIGTERM to SIGINT for Docker
  • Build the Docker image locally for Kumiko's Postgres server
  • Redirect users to the Dev Contributing Guide (located in the docs) within contributing.md

✨ Additions

  • Migrations system using asyncpg-trek
  • SQL migrations
  • SQL based code to replace Prisma
  • Context manager based logging system
  • Custom prefix module (aka Kumiko supports custom prefixes for guilds)
  • Ansible playbooks, proper Vagrant config
  • Discord API events handler, custom dispatch events
  • Prefix utils
  • EventsLog module
  • Ping checks to ensure that the connections are open for PostgreSQL and Redis
  • Docs merged into one repo - this repo
  • Added display_emoji property to allow for cogs to have emojis when being loaded in the select menus
  • The final version of what an help command should be (taken from RDanny directly as usual)
  • Increased test coverage
  • sys-metrics command to obtain system metrics (for Noelle only)

➖ Removals

  • Global KumikoCPM variable in favor of having it stored during runtime instead
  • Old economy packages
  • cog-ext module
  • Prisma along with other unused libs
  • Any old v0.8.x Prisma code
  • Old "Docs"

⬆️ Dependabot Updates

v0.8.0

02 Apr 09:08
30b2e82
Compare
Choose a tag to compare

🛠️ Kumiko v0.8.0 🛠️

This release just fixes the deployment. Accidentally deployed an update, not a patch.
Because of this, v0.8.x will be skipped, and the next official update will be v0.9.x

Full changes can be found below:

💥 Breaking Changes 💥

  • None

✨ TD;LR

  • None

🛠️ Changes

  • Remove old local packages to reduce size
  • Optionally allow setting the Redis Password for KumikoCPM

✨ Additions

  • None

➖ Removals

  • Old local packages to reduce size

⬆️ Dependabot Updates

  • None

v0.7.0

30 Mar 09:37
e526ffa
Compare
Choose a tag to compare

✨ Kumiko v0.7.0 ✨

This release is the foundation for v0.8.x. This release implements almost everything back (excluding the advanced moderation features, and economy system) from previous versions of Kumiko, and now Kumiko is migrated to Discord.py (sorry Pycord devs). The economy system and improved moderation commands will be coming in v0.8.x instead. There might be some that might have been missed, so if you want to see the full list of changes, please see the changes here: v0.6.0...v0.7.x

💥 Breaking Changes 💥

  • Literally rewrote Kumiko from the ground up to use Discord.py instead of Pycord. Expect a ton of things to be broken
  • A ton of cogs, and commands have been either moved or deleted since v0.6.x. Please consider resyncing your commands with the include dev-tool cog (or by activating jishaku)

✨ TD;LR

  • Migrated from Pycord to Discord.py. Literally this took way too long
  • Kumiko now supports both prefixed and slash commands (default prefix is >)
  • Migration from Coredis to Redis-py, and migration from Tortoise ORM to Prisma
  • Kumiko is now properly type hinted/statically typed now.

🛠️ Changes

  • RedisCheck is now fully recursive
  • Properly implemented static type checking
  • Improved DB connections via DB cog
  • Migrate searches cog to dpy
  • Spilt Reddit and GitHub commands to their respective cogs
  • Use @app_commands.describe to describe the slash command inputs. Removed the docstring args bc it was conflicting w/ the help cmd
  • Now using a singleton object for storing Redis connection pools. (Known as the KumikoCPM)
  • Improved the Vagrantfile (possible Ansible provisioning in the future)
  • Using orjson for parsing JSON instead of pysimdjson or cysimdjson

✨ Additions

  • Context manager for Prisma sessions - Useful for debugging and testing
  • Recursive RedisCheck coroutine - Actually now cleans up the stack calls for once (thanks to a base case)
  • Vasic help command - Will be improved in v0.8.x
  • New unit tests
  • Pagination - Taken from Rapptz's (Danny) RoboDanny bot, and improved to work w/ Kumiko
  • EmbedListSource for paginating embeds
  • TextSources, and ListSources for paginating text and lists
  • Actions cog - Replacement for the UwU Cog
  • Error Handler cog - Now uses custom exceptions
  • exceptions and utils (including datetime parsing utils, and much much more)
  • Dev Mode - It's an environment variable that toggles the dev mode. This is useful for testing, and debugging Kumiko (includes Jishaku and a custom extension reloader)

➖ Removals

  • MsgPack Serialization
  • Literally all of the cogs from v0.6.x
  • Removed python-dateutil, numpy, pytimeparse, aiocache, ormsgpack, and pysimdjson (yay no C compilations anymore)
  • Old libs
  • Pycord itself
  • Builtlins cache in favor of KumikoCPM

⬆️ Dependabot Updates

  • [Actions](deps): Bump actions/cache from 3.3.0 to 3.3.1 (#282) (@dependabot)
  • [pip](deps-dev): Bump pyright from 1.1.298 to 1.1.299 (#283) (@dependabot)
  • [pip](deps-dev): Bump pre-commit from 3.1.1 to 3.2.0 (#284) (@dependabot)
  • [pip](deps): Bump redis from 4.5.1 to 4.5.2 (#285) (@dependabot)
  • [pip](deps-dev): Bump pytest-asyncio from 0.20.3 to 0.21.0 (#286) (@\dependabot)
  • [pip](deps): Bump orjson from 3.8.7 to 3.8.8 (#288) (@dependabot)
  • [pip](deps-dev): Bump pyright from 1.1.299 to 1.1.300 (#289) (@dependabot)
  • [pip](deps): Bump redis from 4.5.2 to 4.5.3 (#290) (@dependabot)
  • [pip](deps-dev): Bump pre-commit from 3.2.0 to 3.2.1 (#291) (@dependabot)
  • [pip](deps): Bump orjson from 3.8.8 to 3.8.9 (#293) (@dependabot)
  • [pip](deps-dev): Bump pyright from 1.1.300 to 1.1.301 (#294) (@dependabot)
  • [pip](deps): Bump redis from 4.5.3 to 4.5.4 (#295) (@dependabot)

v0.6.0

11 Mar 01:44
13c241c
Compare
Choose a tag to compare

✨ Kumiko v0.6.0 ✨

This release focuses on cleaning out any old code, and getting ready for the migration to discord.py. This release is just the setup for v0.7.x, where everything is going to be re-implemented but in a more stable, and cleaner state. For more info on why, please see #267.

Note that this release is considered semi-stable, but removes the whole entire economy system in preparation for a full rewrite

💥 Breaking Changes 💥

  • Removed the whole entire economy system (will be re-implemented in v0.7.x) - Most of the commands will need to be re-synced globally
  • Also removed GWS - Will be implemented in v0.7.x or later as a gacha system

✨ TD;LR

  • Removed a ton of things in preparation for v0.7.x

🛠️ Changes

  • Significant changes to the way Kumiko is built
  • Significant changes to the subclass for Kumiko
  • Move IPC into a separate extension
  • Rework the docs
  • Merged all of Rin's cogs into one cog - Searches
  • Ensure that the setup function for Redis conn pools are sync
  • Cleaner recursive cog loading
  • Recursive DB + Redis connections - Also uses exponential backoffs

✨ Additions

  • New cache, utils, and economy packages (cache package uses redis-py)
  • @cached and @cachedJson decorators - These will automatically cache the return value of any coroutines, and cache them on Redis
  • Prisma schema
  • Auto Merge Workflow for Dependabot
  • Builtin global memory cache for Redis connection pools
  • Datetime utils
  • MsgPack support

➖ Removals

  • The whole entire economy system
  • Rin's Cogs (Merged into search feature)
  • Quests (for now)
  • Old packages (utils, economy, cache, etc)
  • GWS (will be replaced by a gacha system in the future)
  • A ton of libs
  • Removed standalone setup scrips
  • Removed old DB seeder scripts
  • Remove of any trace of Tortoise ORM
  • Tortoise ORM, Coredis, and others

⬆️ Dependabot Updates

  • [Actions](deps): Bump actions/setup-python from 4.4.0 to 4.5.0 (@dependabot)
  • [pip](deps): Bump python-dotenv from 0.21.1 to 1.0.0 (@dependabot)
  • [pip](deps): Bump asyncpraw from 7.6.1 to 7.7.0 (@dependabot)
  • [pip](deps-dev): Bump pre-commit from 3.1.0 to 3.1.1 (#273) (@dependabot)
  • [pip](deps): Bump orjson from 3.8.6 to 3.8.7 (#274) (@dependabot)
  • [pip](deps): Bump prisma from 0.8.1 to 0.8.2 (#276) (@dependabot)
  • [pip](deps-dev): Bump pytest from 7.2.1 to 7.2.2 (#277) (@dependabot)
  • [pip](deps): Bump charset-normalizer from 3.0.1 to 3.1.0 (#278) (@dependabot)
  • [pip](deps): Bump coredis from 4.10.2 to 4.10.3 (#279) (@dependabot)
  • [Actions](deps): Bump actions/cache from 3.2.6 to 3.3.0 (#280) (@dependabot)