Releases: hypergonial/hikari-miru
Release list
v4.2.0
- Upgrade alluka to
0.3. - Upgrade hikari to
2.0. - Add Python 3.13 support.
- Message builders returned by
MenuandNavigatorViewnow try to setView.messagewhen issuing a response through them. - Fix
self.attrreferring to aDecoratedIteminstead of the item when using a decorator. - Fix message builders not passing through flags when using their respective response methods.
v4.1.1
- Set
View.messageif ahikari.Messageis passed toClient.start_view()'sbind_to=.
v4.1.0
- Add the ability to specify view items as classvars, similarly to modals
- Add the ability to pass the title to the modal as a class argument
- Fix
miru.ext.menu.Menu.build_response_async()ignoring theephemeral=kwarg. - Fix items created with decorators always having the same custom_ids, even when randomly generated.
- Fix
NavigatorViewdefault buttons being added whenitems=is specified. - Remove accidental
typing_extensionsimport inmiru.ext.nav.
v4.0.0 - REST Bot support
This is a major breaking release, adding REST bot support, dependency injection, removing global state from the library, and generally cleaning up old mistakes and weirdness that accumulated over the past 2 years.
Alongside this release comes overhauled documentation, with improved navigation, layout & search and extended examples. If you are looking for the v3 docs, you can find them here.
Tip
If you already have an application that depends on v3 of miru, see the migration guide.
-
BREAKING: Raised the minimum supported Python version to 3.10 or greater.
-
BREAKING: Change all
@mirudecorators to takeContextas their first argument and the item (button/select etc..) as their second. -
BREAKING: Seperate link buttons out of
miru.Buttonasmiru.LinkButton. -
BREAKING: Remove
miru.install(). Usemiru.Clientinstead. -
BREAKING: Remove
View.start()andModal.start(). UseClient.start_view()andClient.start_modal()respectively instead. -
BREAKING: Remove
NavigatorView.send(). UseNavigatorView.build_response()instead and send the builder. -
BREAKING: Remove
Modal.send(). UseModal.build_response()instead and send the builder. -
BREAKING: Remove
Menu.send(). UseMenu.build_response()instead and send the builder. -
BREAKING: Remove
miru.ModalInteractionCreateEventandmiru.ComponentInteractionCreateEvent. Use the unhandled interaction hooks instead. -
BREAKING: Made
ViewItem.callbackonly accept positional arguments. This is to allow renaming the context variable's name when overriding it in subclasses. This should not affect most people. -
BREAKING: Move
miru.Contexttomiru.abc.Context. -
BREAKING: Move
miru.SelectBasetomiru.abc.SelectBase. -
DEPRECATION: Passing
buttons=toext.nav.NavigatorView()constructor. Use the newly addeditems=instead. Thebuttons=argument will be removed in v4.2.0. -
Add
miru.Client. The client manages the state of all currently running views & modals & routes interactions to them. -
Add RESTBot support. Simply pass a RESTBot to
miru.Clientwhen initializing it. -
Add first-class support for dependency injection. This allows to better manage state across the library, along with adding better compatibility to
arcandTanjunviaClient.from_arc()andClient.from_tanjun()classmethods respectively. -
Add the ability to configure
autodeferat the item level for views. If an item does not specifyautodefer, the view's setting will be used. -
Add the ability to configure if the autodefer should be ephemeral, along with it's response type through
AutodeferOptions. -
Stabilize
Context.issued_response. This property returns a boolean that isTrueif the underlying interaction has already received an initial response. -
Add response builders for entire responses from views or modals.
-
Add
Context.respond_with_builder(). -
Add
@Client.set_unhandled_component_interaction_hookand@Client.set_unhandled_modal_interaction_hook. These are called when an interaction is received that is not handled by any running modal or view. -
Add
miru.abc.InteractiveViewItemfor all view items that have callbacks. This includes all currentmiru.abc.ViewItemexceptmiru.LinkButton.
v3.4.0 - Menus
- Add
miru.ext.menu, which aims to make creating complex, nested menus easy. See the documentation & example on how to use it. - Overhaul
Viewautodefer logic.ViewContextare now automatically deferred if a response is not issued within 2 seconds, even if the callback is still running. - Add
ItemHandler.get_item_by()andItemHandler.get_item_by_id(). - Deprecate
ModalContext.get_value_by_predicatein favour ofModalContext.get_value_by. It will be removed in the next minor release (3.5.0). - Large amounts of typing improvements across the library.
- Add
CONTRIBUTING.mdand configuration for common editors for better contributor experience.
v3.3.1 - Hotfix
Fix View.last_context and Modal.last_context incorrectly casting variable types.
v3.3.0 - Python 3.12 Support
- Add support for Python 3.12
- Improve Context typing in callbacks for better typechecking experience when using custom contexts. (#47)
- Minor changes to the type signature of
ModalContext.get_value_by_id()andModalContext.get_value_by_predicate()
v3.2.2
- Fix
miru.abc.Item.positionsetter max value being it's width instead of row width.
v3.2.1
- Fix
miru.ext.nav.NavigatorViewdefaulting to ephemeral by default.
v3.2.0
- Add the ability to pass
miru.Contexttomiru.ext.nav.NavigatorView.send()instead of an interaction or channel. - Added
miru.ext.nav.Pageto represent a page with a complex payload. - Updated
miru.ext.nav.NavigatorView()andmiru.ext.nav.NavigatorView.swap_pages()to also acceptmiru.ext.nav.Pageinstances.