Tip
This is the roadmap for kms. As time goes on, more and more items and information will be added to this roadmap.
Learn more about the versioning system
Learn about supported versions
This repo has two branches: a main branch, and a beta branch. A dev branch may also be added. dev will be sourced from beta, and beta is sourced from main.
The main branch will always contain updates for the current minor version. As of May 16th, this would be kms-semver1.2.x.x.x. A nightly build for this will always be released every push, regardless of official patch releases in between. There will not be scheduled beta releases for this branch.
The beta branch will always contain features for the next minor version. As of May 16th, this would be kms-semver1.3.x.x.x. A nightly build for this will always be released every push, and a beta release for this branch will be released every 2-4 weeks until the official release of the version.
The dev branch currently does not exist. I am currently deciding how this branch will function when it comes to releases. kms-semver2.0 will most likely be either on its own branch, or be the dev branch itself, sourced from beta.
Nightly builds will ALWAYS be available for each branch.
kms will NEVER have the following features:
*.txt, *.rtf, *.dbf, *.html, *.mdb, *.accdbImportant
Some of these bugs may be fixed in the release of kms-semver1.3 instead of kms-semver1.2.x. These bugs are notated with a ‘ሴ’.
Load, Edit, and Delete classes) instead of nesting them under StorageStorage object so that arithmetic/bitwise operators can be avoidedStorage objects instead of NoneNote
This list is actively being updated. You can see the changes by checking out the PR or checking out the beta branch.
Important
None of these are true breaking changes - instead, all old features will still remain in the code carrying DeprecationWarnings until kms-semver2.0.
kms-semver1.2.2 was renamed. Consider updating to kms-v1.2.3/2026.06.05 (using pip install key-multivalue-storage===1.2.3.20260605) or later and changing the old names to the new ones in your code. You can still use the old names, however they are no longer recommended for use and will display a DeprecationWarning warning.| Old name | New name |
|---|---|
VERSION |
semver |
DATE_VERSION |
calver |
LAST_UPDATE |
last_update |
Storage.Delete.by_propkey: the required argument top_level_key will be renamed to top_lv_key, to match with other methods with the same parameter. This should not affect normal performance, unless you assign the arguments like this:
Storage.Delete.by_propkey(_,top_lv_key='key')
kms.Storage but rather be under just kms.
```py
import key_multivalue_storage as kmswarnings.filterwarning(category=kms.Storage.DeleteWarning) # Old, will raise DeprecationWarning warnings.filterwarning(category=kms.DeleteWarning) # New, will work properly
See all other new features in the [release notes](/Boss-1s/key_multivalue_storage/releases).
## `kms-semver2.0` (2027/08/17)
**kms-semver2.0.0 is an upcoming, backwards-incompatible update planned for release on August 17th, 2027, exactly two years after the release of kms-v1.0.0/2026.08.17.** This update will bring many changes and features, including the ability to store and read JSON data with SQL querying, store data in YAML files, `MultiStorage` which makes nesting `Storage` in `Storage` easier and more Pythonic, and more. All of these features will be built up slowly in the kms-semver1.x releases leading up to this version.
<div class='markdown-alert markdown-alert-note'><p class='markdown-alert-title'><svg data-component="Octicon" class="octicon octicon-info" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg> Note</p><p>These lists is incomplete. As time passes and the release gets closer, more things will be added in the lists below.</p>
</div>
> ![warning]
> These are all planned features and projected (breaking) changes; they are not guaranteed to make it into the final release.
### Breaking Changes
- **Module name changes**: Import `kms` to use the library, and `kms.storage` for `Storage`.
```py
# before v2.0.0
import key_multivalue_storage as kms
from key_multivalue_storage import Storage
# after v2.0.0
import kms
from kms.storage import Storage as s
kms.<module> will be used.