# Change Log for keripy ## 2.0.0-dev6 *** peer.exchange has been replaced with a combination of either core.eventing.exchange or peer.specialExhange. peer.specialExchange supports the embeds and diger parameters and returns a tuple of (exn, atc) exn Serder instance and atc attachments bytearray. Whereas eventing.exchange just returns the exchange Serder instance. *** peer.exchanging.exchange normalizing call signature with core.eventing.exchange so that all KERI message function call signatures are aligned. currently peer.exchanging.exchange uses a differe signature. So to better support v2 with backwards compat for v1 want one exchange function. parameters changes: date -> stamp, recipient->receiver payload->attributes No longer has embeds and diger this is for specialExchange return type is no longer tuple just SerderKERI *** peer.exchanging.specialExchange now handles the special exchange with embeds and or diger use this for v1 compatibility with old exchange. *** BaseHab and subclasses .incept alias for .make promoted to default and .make is alias. Future deprecate .make *** Kever .init and .update refactored signature to use delsner and delsger instead of delnum (which was not per convention) and deldiger to better match new convention for Number and Diger but name indicates sequence number and said diger ### Kevery.processEvent signature change delnum is now delsner short for delegating sequence number deldiger is now delsger short for delegating said diger ### app.habbing.BaseHab.makeOwnEvent has been changed to .msgOwnEvent because it better fits what is does is to messagize its own event. .makeOwnEvent is now deprecated ### app.habbing.BaseHab.makeOwnInception has been change to .msgOwnInception because it better fits what is does is to messagize its own inception event. .makeOwnInception is now deprecated ### app.habbing.BaseHab.makeOtherEvent has been changed to .msgOtherEvent because it better fits what is does is to messagize some other event. .makeOtherEvent is now deprecated ### core.eventing.messagize call signature changes: piplined parameter is replaced with framed and the default is framed=False. This is because the Parser meaning of piplined has evolved whereas messagize no longer tracks that meansing so framed is now the accurated parameter. Added other parameters to make it support verison 2 BasHab methods that call messagize have pass through parameters with same semantics ### OnSuber and OnIoDupSuber remap of method names change method names to shadow super class methods to avoid confusion and reduce potential errors ### WASM Support. Added keri.db.webdbing.py with support for IndexedDB in wasm pyodide pyscript. as a plugin replacement for LMDB (see keri.db.webdbing.WebDBer) ## 2.0.0-dev5 ### Backwards breaking interface changes Changes to call signatures that will break dependent libraries #### keri.vdr subpackage combined viring into eventing to remove hard circular import now that its a subpackage using __init__.py moved dataclasses to vdring as shared imports across vdr. fixed circular imports with agenting and app subpackage using dynamic imports #### keri.db.subing SuberBase.getItemIter and subclasses is changed to .getTopItemIter this is to clearly indicate that it iterates over the top branch given by keys and uses the topive parameter. #### keri.db.koming KomerBase.getItemIter and subclasses is changed to .getTopItemIter this is to clearly indicate that it iterates over the top branch given by keys and uses the topive parameter. #### keri.db.dbing Changed LMDBer.delval to LMDBer.remval #### keri.core.scheming.py Replaced deprecated `jsonschema.RefResolver` with `referencing.Registry` in `CacheResolver.resolver()`. The method now returns a `referencing.Registry` instance instead of a `jsonschema.RefResolver` instance. Requires `jsonschema >= 4.18.0` and the `referencing` package. Users on older versions of `jsonschema` must upgrade. `JSONSchema.verify_json()` now passes `registry=` instead of `resolver=` to `jsonschema.validate()`. #### keri.core.routing.py Changed `Router.dispatch(self, serder, saider, ...)` to `dispatch(self, serder, diger, ...)`. Changed `Router.processRouteNotFound(self, *, serder, saider, ...)` to `processRouteNotFound(self, *, serder, diger, ...)`. Changed `Revery.processReply` local variable from `saider` to `diger`. #### keri.core.eventing.py Changed `Kevery.processReplyEndRole(self, *, serder, saider, ...)` to `processReplyEndRole(self, *, serder, diger, ...)`. Changed `Kevery.processReplyLocScheme(self, *, serder, saider, ...)` to `processReplyLocScheme(self, *, serder, diger, ...)`. Changed `Kevery.processReplyKeyStateNotice(self, *, serder, saider, ...)` to `processReplyKeyStateNotice(self, *, serder, diger, ...)`. Renamed local `diger` to `ksr_diger` in `processReplyKeyStateNotice` to avoid shadowing the parameter. Changed `Kevery.processReplyAddWatched(self, *, serder, saider, ...)` to `processReplyAddWatched(self, *, serder, diger, ...)`. #### keri.app.oobiing.py Changed `Oobiery.processReply(self, *, serder, saider, ...)` to `processReply(self, *, serder, diger, ...)`. #### keri.vdr.eventing.py Changed `Tvy.processReplyRegistryTxnState(self, *, serder, saider, ...)` to `processReplyRegistryTxnState(self, *, serder, diger, ...)`. Changed `Tvy.processReplyCredentialTxnState(self, *, serder, saider, ...)` to `processReplyCredentialTxnState(self, *, serder, diger, ...)`. Removed redundant `diger = saider` alias lines in both functions. #### keri.db.escrowing.py Changed `Broker.processEscrowState` dispatch call from `processReply(saider=diger, ...)` to `processReply(diger=diger, ...)`. #### keri.app.grouping.py Changed `complete(self, prefixer, seqner, saider=None)` to `complete(self, prefixer, number, diger=None)`. Renamed `seqner` and `saider` parameter to `number` and `diger` to match the actual type (`Number`, `Diger`) being passed. All callers functions in `test_grouping.py` are updated. Fixed stale docstring in `complete()`: `saider (Saider)` → `diger (Diger)`. Renamed `saiders`/`saider` → `digers`/`diger` local variables in `Counselor.get()` (meids sub-DB returns Diger instances). ## 2.0.0-dev5 ### Backwards breaking interface changes Changes to call signatures that will break dependent libraries #### keri.app.delegating.py Changed `start(self, ghab, prefixer, seqner, saider)` to `start(self, ghab, prefixer, number, diger)`. Changed `startCounselor(self, hab, prefixer, seqner, saider)` to `startCounselor(self, hab, prefixer, number, diger)`. Renamed `seqner` and `saider` parameter to `number` and `diger` to match the actual type (`Number`, `Diger`) being passed. All callers for both functions in `test_grouping.py`, `confirm.py`, `incept.py`, `join.py`, `rotate.py` `credentialing.py` and `interact.py` updated. ## 2.0.0-dev5 ### Backwards breaking interface changes Changes to call signatures that will break dependent libraries #### keri.app.delegating.py Changed `complete(self, prefixer, seqner, diger=None)` to `complete(self, prefixer, number, diger=None)`. Renamed `seqner` parameter to `number` to match the actual type (`Number`) being passed. All callers in `rotate.py`, `incept.py`, and `grouping.py` updated. ## 2.0.0-dev5 ### Backwards breaking interface changes Changes to call signatures that will break dependent libraries #### keri.core.eventing.Kevery.processEvent Changed keyword parameter `delseqner` (Seqner) to `delnum` (Number) in the function signature and all internal call sites. External callers that previously passed `delseqner` must now pass `delnum` with a `Number` instance. ## 2.0.0-dev5 ### Backwards breaking interface changes Changes to call signatures that will break dependent libraries #### keri.core.eventing.py Changed `fetchTsgs(db, saider, snh)` to `fetchTsgs(db, diger, snh)`. Renamed `saider` parameter to `diger` to match the actual type (`Diger`) being passed. All callers in `routing.py`, `habbing.py`, and `escrowing.py` updated. ## 2.0.0-dev1 ### Backwards breaking interface changes Changes to call signatures that will break dependent libraries #### keri.help.helping.py Changed nonStringIterable() to isNonStringIterable() Change nonStringSequence() to isNonStringSequence() Added Metaclasses NonStringIterable and NonStringSequence #### keri.core.coring.py Changed Pather class to support both relative and aboslute paths Now supports relative paths in Base64 using excape sequence. More thorough checks for valid paths. Supports both paths for pathed material and paths for routes and return routes in KERI messages. Init supports path as '/' delimited string that if otherwise the path parts are Based64 will compacting encode as StrB64 variable length. If not will encode as Bytes variable length. No longer is Pather a subclass of Bexter so .bext is no longer a property .path property returns a path string this is a breaking change .parts property returns a list of path parts as either relative or absolute depending on what the actual path expression .rparts property returns a list of path parts as a relative path On init relative (bool) False forces path to be absolute Relative True allows relative path if expressed as relative. On init pathive(bool) True forces B64 compliant path parts raises exception if not. False allows non B64 path parts. Changed Dicter Class. made randomNonce a statice method. ._randomNonce instead of module method since only used inside Dicter Changed init parameter sad to dicter since more accurate. #### keri.core.serdering.SerderACDC Changed .regi property to .regid to avoid confusion with regd regk and other reg and to avoid the confusion of i meaning a AID, whereas regid is a said its an identifier for registry but not an aid. Since regd is already used to mean something else, we picked the regid which was not previously used anywhere. #### keri.core.streaming now keri.core.annotating Due to circular imports moved Streamer class to keri.core.signing and renamed streaming.py and test_streaming.py to annotating.py and test_annotating from keri.core import Streamer still works. #### keri.core Tierage and Tiers moved Tierage and Tiers defintions from keri.core.coring to keri.core.signing where they more naturally belong (not used in coring) from keri.core import Tiers still works