⚙ Target Node Commit: 345ed056
📝 Release Type: Pre-release - Minor Patch
Important
kms-v1.3.0/2026.07.29, the first stable version of kms-semver1.3.x, will release soon! Please note the changes stated in the roadmap and changelog, and prepare accordingly. Thanks!
.github/ directory with semver1.2.xtest/automations/.vscode_rebuildreinstall_extensions.py and reconfigure_ssh_key.shsrc/*See commit e95aedc for details.
certifi v2026.6.17 -> v2026.7.22filelock v3.29.4 -> v3.32.0gitpython v3.1.53 -> v3.1.57`griffe v2.0.2 -> v2.1.0griffecli v2.0.2 -> v2.1.0griffelib v2.0.2 -> v2.1.0platformdirs v4.10.0 -> v4.11.0pre-commit v4.6.0 -> v4.6.1pyproject v1!0.1.2 -> v1!0.2.1python-discovery v1.4.2 -> v1.5.0tomlkit v0.15.0 -> v0.15.1virtualenv v21.5.1 -> v21.7.0Four medium-risk security leaks were patched by updating gitpython to a version greater than v3.1.54, via commit e95aedc. These leaks may not have affected kms directly; however, it is important to be conscientious when dealing with security and stability.
Important
This is the final release candidate!
The final release date will be on July 29th, two days after the original planned date, to give myself some time to rest and cleanup any messes left behind.
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.3.0.20260724rc0…v1.3.0.20260727rc1
⚙ Target Node Commit: 66ccf8d5
📝 Release Type: Pre-release - Minor Patch
Important
This branch is no longer called ‘beta’. As of this release, it will be called ‘semver1.3.x’.
releasedev and release.help() function.help() method in key_multivalue_storage.help() is special because not only does it display the original docstring, it also generates a tree of the entire library! All credits to Rich for making it possible!This was originally released as v1.3.0.20260723b1. However, I decided to re-release it as a release candidate instead.
Bro.
We are almost there.
The first release candidate is out, and a second one containing cleanups is coming out. This is it: after rc1, we will finally be stable.
What a journey this has been.
Please note: the final release date will be on July 29th, two days after the original planned date, to give myself some time to rest and cleanup any messes left behind.
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.3.0.20260721b0…v1.3.0.20260724rc0
⚙ Target Node Commit: a0871f01
📝 Release Type: Pre-release - Minor Patch
Note
This dependency makes the precommit process more robust.
load.Load methods and classes in the library treehelp() function in load.Loadt-meta-kms-v2026.7.1
None.
Looks like I’m going to be on a tight schedule here…
I’m going to be releasing one more beta on the 23rd, which should include docstring updates related to the storage module and delete module. After that, a little sparkle and cleanup is left before moving on to the release candidate stage, which is set to release as v1.3.0.20260724rc0 on July 24th. As a reminder, the final release is scheduled for July 27th, with a backup date of July 30th in case things don’t go as planned, giving me three emergency days.
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.3.0.20260703a4…v1.3.0.20260721b0
⚙ Target Node Commit: e658778d
📝 Release Type: Pre-release - Minor Patch
0fff779, fa0924a, 546d497, 1c0d4d3, db4ac9c, 3be3602, 49645dc, 625cc38, 892c427, d9614ad, 4de3e08, cb36289, 0e1324f, df782e8, 67da837, d21b83d, 9eaabfb, 95af72e, 3456bf8, and possibly more….
See more info about these commits and thier purpose at v1.2.4.20260703
All other repo related updates were released as part of v1.2.4.20260703.
rich (>=15.0.0) and typing-extension (~=4.15)precommit (>=4.6.0)release.py now resides in ./test/automationprint() and other stdout-related methods by kms-semver1.4tmp/ to .gitignore
__all__Load, Edit, Delete have been moved out into their respective modules (load.Load, edit.Edit, delete.Delete). They are still accessible through Storage in the context Storage.<subclass>; however, from v2.0 onward, they must be accessed through <module>.<class>. See docs for more info.help() implemented
NoInstantiationError(TypeError), used when attempting to instantiate an non-instantiable class (like Storage.Load)_KmsMeta, _StorageMeta, _LoadMeta, _EditMeta, _DeleteMeta_KmsMeta, each metaclass contains semver, calver, last_update properties and a repr method._StorageMeta still contains the legacy VERSION, DATE_VERSION, and LAST_UPDATE to prevent breaking changes.
test-meta.py – Used to test repr implementation of classes via metaclass and the help() methodstest/automation – storing automation-related modules in thererelease.py – moved from ./.github/workflows/src to ./test/automationprecommit.py – precommit job (changing last update dates for now…)git clone -b beta https://github.com/Boss-1s/key_multivalue_storage kms
cd into the created folder, create a .venv (if you haven’t already) and install the hook:
cd kms
uv sync
pre-commit install
See docs for more info.
git clone -b beta https://github.com/Boss-1s/key_multivalue_storage kms
cd into the created folder, then run the test command:
cd kms
python test/
This may change in the near future, perhaps with a new test library in the first beta. See docs for more info.
Warning
When tests are running on Windows, specifically the legacy cmd.exe shell, tests WILL fail due to a Unicode encoding error. See #14 for more details.
Finally.
The final alpha release is here.
The plan right now is two betas and a release candidate, with the official release coming on July 27th. Expect the first beta sometime next week; it’s most likely going to be a smaller release compared to the feature-and-fix-packed alphas we’ve had. Side note: Feature Freeze does not begin until kms-semver1.3.0rc0.
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.3.0.20260610a3…v1.3.0.20260703a4
⚙ Target Node Commit: 8b48b591
📝 Release Type: Pre-release - Minor Patch
main were cherry-picked this time. Most of the commits were really related to fixing the release version commit bug (see v1.2.3.20260605.4)
33855ad, e4e8664, 12757f8, 2675284, a6a9ed3, bf6607a, b41c207, b871b5f, 4650290, eee9e56, 317da7d, 2630c0a, bb4f049, 26f4b71, e3de61a, 3ac9e17, 0f39c93, f375b1c, 78432d2, b58e724, d3ed467, 74d0422, 49808dc, d0ffda8, 29505b7, 2012ac1, dc57b97, a32ac32, 128e343, 9d26dfa, fed084c, fe75f15, 5a23676, cff3bad, 60d3048, aa1013f, b7098d8, 29029e5, e763214, 779e3c4, 4c9c4b0, b633311, e5b68bd, e458e95, 9415ca9, ed890a5, 7da66b1, 41444b8, 5faa9cc, 623ec76, 9286038, e988c85, fdef67b, a353b75, 84954ac, 9fdbab8, bd6b4cb, 99ec8ff, 23dd58c
This basically means that the cherry-picked commits have a small difference from the original commit.
34dd62c, 0abbb2a, 0ea7bac, d650ae6, e0d0145, 0c0f325, 40312c7, 799e1bc, b8bc5ff, 5d08a72, cace704, 19c9477, bd9a4c0, 2d969c2, 5b45ae6, 58fd625, 002c7c2, d1a1be5, bb799a4, 7aca59a, 40fe7a5, a7444cb, 249896d, 6125ed0, e62ea4a
I put version numbers next to changes from upstream versions; however, this doesn’t mean that
kms-semver1.3is sourced from these changes.
fanaticpythoner.better-todo-tree in devcontainer.jsonv1.2.3.20260605)v1.2.3.20260605)beta now, toov1.2.3.20260605)v1.2.3.20260605.4)otest.json AND .github/.tmp added to .gitignorev1.2.3.20260605)uv.lockdiff.py update
So many updates related to the package itself…let’s get started!
__init__.pyimport warnings to before module relative imports (see PEP 328
delete.py, edit.py, and load.pyutils/exceptions.pyKeyNotFoundError(KeyError)
utils/metadata.py_StorageMetautils/warnings.pyDeleteWarning(UserWarning)
AdditionFailureWarning(RuntimeWarning)
SubtractionFailureWarning(RuntimeWarning)
CastWarning(SyntaxWarning)
key_multivalue_storage.py_StorageSettingsMeta or _StorageMeta), warning(s) (DeleteWarning, AdditionFailureWarning, SubtractionWarning, CastWarning), and exception(s) (KeyError) into thier respective modules in utils/Storage.Delete.all()warn argument inconsistency in Storage.Delete.all()Is it just me, or is everything revolved around bugs from the Delete class…
This was supposed to be release v1.3.0.20260608a3, however I found out (a bit too late) that the release built on main for some reason, so I’m rereleasing it with the CORRECT branch on target…
It’s been two weeks since the last alpha, but this one is finally here. So much effort to fix something upstream just so I could finally release this…
I believe that after this, we will see one more big alpha release. That release will mainly contain the separation of the Load, Edit, and Delete classes from Storage, along with separate metadata for each of these classes. After that comes the beta releases, which will have small fixes, tweaks, native Pylint support, and definitely NO breaking changes. Hopefully, we’ll only need one release candidate before the actual kms-semver1.3.0 update.
That’s it, folks!
Full Changelog: v1.3.0.20260524a2 vs v1.3.0.20260610a3
YANKED: v1.3.0.20260608a3
⚙ Target Node Commit: f5cb3356
📝 Release Type: Pre-release - Minor Patch
The next alpha with major changes will be released in a week, with the last major alpha in two or three weeks. The next big change will be separating the classes into different modules. I will try my best to keep breaking changes to a minimum, but no promises can be made lol. Other things that need to be done is fixing type hint warnings and conflicts, and obviously, fixing the docstrings, which is the main point of the update, after all.
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.3.0.20260524a1…v1.3.0.20260524a2
⚙ Target Node Commit: 51583499
📝 Release Type: Pre-release - Minor Patch
If this doesn’t work you’ll most likely see another alpha release today…
The next alpha with major changes will be released in a week, with the last major alpha in two or three weeks. The next big change will be separating the classes into different modules. I will try my best to keep breaking changes to a minimum, but no promises can be made lol. Other things that need to be done is fixing type hint warnings and conflicts, and obviously, fixing the docstrings, which is the main point of the update, after all.
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.3.0.20260523a0…v1.3.0.20260524a1
⚙ Target Node Commit: 002c7c21
📝 Release Type: Pre-release - Minor Update
omg its finally here!!! :>
main and beta branches!diff.py - shows all breaking changes
key value of a Storage instance is now set to type Any. However, it is still recommended that the value be a string to avoid string-casting errors.top_level_key parameter of Storage.Delete.by_propkey is now called top_lv_keyPendingDeprecationWarning about module name deprecationPendingDeprecationWarning about kms-semver1.x deprecation
Damn, did this take long. I got it finished in the end, didn’t I?
Looks like the next alpha will be released in a week, with the last alpha in two or three weeks. The next big change will be separating the classes into different modules. I will try my best to keep breaking changes to a minimum, but no promises can be made lol. Other things that need to be done is fixing type hinting warnings and conflictions, and obviously, fixing the docstrings, which is the main point of the update, after all.
Note that kms-semver1.3 will now be officially designated as built from v1.2.3.20260523.1.
Full Changelog: v1.2.2.20260517.3 vs v1.3.0.20260522a0
⚙ Target Node Commit: 0edcd250
📝 Release Type: Major Patch
Important
As of this version, the main branch will be renamed to semver1.2.x. Please update your environments accordingly.
Important
kms-v1.3.0/2026.07.29, the first stable version of kms-semver1.3.x, will release soon! Please note the changes stated in the roadmap and changelog, and prepare accordingly. Thanks!
Important
As of this version, the main branch handling all things relating to the docs/ folder and the Github Pages site is docs
Warning
This will be the last feature release for kms-semver1.2.x. Beginning this release, kms-semver1.2.x will enter its Maintenance stage, meaning only high-priority security updates and important bug fixes will be committed to ensure long-term stability before EOS (End of Support).
v1.3.0.20260724rc0StorageStoragekey/top_lv_keyThis is a delayed release. The original planned date for this release was 2026/07/23 on v1.2.5.20260723 instead.
No plans for the next kms-semver1.2.x update.
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.2.4.20260702…v1.2.5.20260724
⚙ Target Node Commit: 5710f8a7
📝 Release Type: Minor Patch
release.py and release.yml refactoringmain and betauvdependency-groups instead of optional-dependencies (708d560@beta, ab42dcc@main)needs triage as one of the default tags now
types.TracebackType (2b3479f)typing-extensions at ~=4.16typing-extenstions.deprecated was used over warnings.deprecated to keep CPython >=3.12 instead of just chopping off older version just because of an @deprecated flagwarnings.warn()
Our next few 1.2.4.x updates should see more updates to the documentation website, and changes that will pave the way to 1.3.0 This patch version (1.2.4) may be the last one before the release of kms-semver1.3.0.
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.2.3.20260605.4…v1.2.4.20260702
⚙ Target Node Commit: de48c51d
📝 Release Type: Pre-release - Major Patch
Testing release logic….
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.2.3.20260605.4…v1.2.4.20260610b0
⚙ Target Node Commit: b875965f
📝 Release Type: Stable Promotion - Minor Patch
v1.2.3.20260605.1 to here is fixing that damned thing of a commit push…and with this release it’s finally fixed. Whew!key_multivalue_storage.py
Huge credits to Google’s AI Mode for explaining SSH to me so that I could get this done lol 🎉🎉
Our next few 1.2.3.x updates should see more Repo updates, specifically working on the wiki page and other documentation. I am also hoping for some prettifying in the module itself on kms-semver1.2, whilst working on kms-semver1.3.
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.2.3.20260605.1…v1.2.3.20260605.4
Yanked: v1.2.3.20260605.2, v1.2.3.20260605.3
⚙ Target Node Commit: b7ad7dbc
📝 Release Type: Pre-release - Minor Patch
so many betas….im praying this’ll work…..please….
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.2.3.20260605.4b2…v1.2.3.20260605.4b3
⚙ Target Node Commit: fae9ca15
📝 Release Type: Pre-release - Minor Patch
Hopefully this works…
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.2.3.20260605.4b1…v1.2.3.20260605.4b2
⚙ Target Node Commit: fae9ca15
📝 Release Type: Pre-release - Minor Patch
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.2.3.20260605.4b0…v1.2.3.20260605.4b1
⚙ Target Node Commit: a0549a98
📝 Release Type: Pre-release - Minor Patch
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.2.3.20260605.3…v1.2.3.20260605.4b0
⚙ Target Node Commit: 27cebddb
📝 Release Type: Minor Patch
None this time :}
None this time :]
Our next few 1.2.3.x updates should see more Repo updates, specifically working on the wiki page and other documentation. I am also hoping for some prettifying in the module itself on kms-semver1.2, whilst working on kms-semver1.3. If release fails again i swear….
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.2.3.20260605.2…v1.2.3.20260605.3
⚙ Target Node Commit: de7e3bb3
📝 Release Type: Minor Patch
target_commitish spelled with two ‘t’s
Our next few 1.2.3.x updates should see more Repo updates, specifically working on the wiki page and other documentation. I am also hoping for some prettifying in the module itself on kms-semver1.2, whilst working on kms-semver1.3. If release fails again i swear….
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.2.3.20260605.1…v1.2.3.20260605.2
⚙ Target Node Commit: 77609c6c
📝 Release Type: Minor Patch
beta branchApparently I never uncommented the step for releasing to PyPI so here I am…with a bunch of other fixes. Hopefully, after this is fixed, i won’t have to touch the release workflow again until I decide about a possible CHANGELOG.md…
Our next few 1.2.3.x updates should see more Repo updates, specifically working on the wiki page and other documentation. I am also hoping for some prettifying in the module itself on kms-semver1.2, whilst working on kms-semver1.3. If the release fails again i swear….
Full Changelog: v1.2.3.20260605 vs v1.2.3.20260605.1
⚙ Target Node Commit: 791c8605
📝 Release Type: Minor Patch
test.yml workflow will now deploy to its respective head branch’s test environment when Dependabot makes a PRkey_multivalue_storage.py:DeprecationWarning to the argument top_level_key in Storage.Delete.by_propkey()DeprecationWarnings to all metadata variablesOur next few 1.2.3.x updates should see more Repo updates, specifically working on the wiki page and other documentation. I am also hoping for some prettifying in the module itself on kms-semver1.2, whilst working on kms-semver1.3. If release fails again i swear….
Full Changelog: v1.2.3.20260523.1 vs v1.2.3.20260605
(Yanked: v1.2.3.20260604)
⚙ Target Node Commit: 190cb35e
📝 Release Type: Minor Patch
push.shrelease.yml fix
Our next few 1.2.3.x updates should see more Repo updates, specifically working on the wiki page and other documentation. I am also hoping for some prettifying in the module itself on kms-semver1.2, whilst working on kms-semver1.3.
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.2.3.20260523…v1.2.3.20260523.1
⚙ Target Node Commit: 9e3ab939
📝 Release Type: Major Patch
main and beta branches!*.toml, *.yaml/*.yml, *.sh)
PendingDeprecationWarning about module name deprecation
Our next few 1.2.3.x updates should see more Repo updates, specifically working on the wiki page and other documentation. I am also hoping for some prettifying in the module itself on kms-semver1.2, whilst working on kms-semver1.3.
Full Changelog: v1.2.2.20260517.3 vs v1.2.3.20260522
⚙ Target Node Commit: b313bc41
📝 Release Type: Stable Promotion - Minor Patch
Our next few 1.2.2.x update should see more Repo updates as I slowly get situated in PyPi and here, specifically working on the wiki page and other documentation. I am also hoping for some prettifying in the module itself on kms-semver1.2, while preparing for kms-semver1.3 alpha release 1.
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/compare/v1.2.2.20260517.2…v1.2.2.20260517.3
⚙ Target Node Commit: bb7d6746
📝 Release Type: Pre-release - Minor Patch
This is marked as a beta release because I have no idea if the current code works. If you see another beta, then, well, we all know what that means…
Our next few 1.2.2.x update should see more Repo updates as I slowly get situated in PyPi and here, specifically working on the wiki page and other documentation.
The 1.3 beta will come out soon!
⚙ Target Node Commit: 6cc925b0
📝 Release Type: Minor Patch
Our next few 1.2.2.x update should see more Repo updates as I slowly get situated in PyPi and here, specifically working on the wiki page and other documentation.
The 1.3 beta will come out soon!
Full Changelog: kms-calver2026.05.17 vs kms-calver2026.05.17b
⚙ Target Node Commit: 2308c0c7
📝 Release Type: Minor Patch
Our next few 1.2.2.x update should see more Repo updates as I slowly get situated in PyPi and here, specifically working on the wiki page and other documentation.
The 1.3 beta will come out soon!
Full Changelog: kms-calver2026.05.17 vs kms-calver2026.05.17a
⚙ Target Node Commit: b6170c53
📝 Release Type: Minor Patch
pyproject.tomlrequirements.txtsetuptools from 61.0 to 77.0.3 (7b64369)Our next few 1.2.2.x update should see more Repo updates as I slowly get situated in PyPi and here, specifically working on the wiki page and other documentation.
The 1.3 beta will come out soon!
Full Changelog: kms-calver2026.05.15a vs kms-calver2026.05.17
⚙ Target Node Commit: cc051257
📝 Release Type: Minor Patch
Our next few 1.2.2.x update should see more Repo updates as I slowly get situated in PyPi and here, specifically working on the wiki page (which is currently empty). The 1.3 beta may also come out around that time.
⚙ Target Node Commit: 1968a9b4
📝 Release Type: Minor Patch
None this time ;)
Full Changelog: v1.2.2.20260506.2 vs. v1.2.2.20260515
Our next 1.2.2.x update should see more Repo updates as I slowly get situated in PyPi and here, specifically working on the wiki page (which is currently empty). The 1.3 beta may also come out around that time.
⚙ Target Node Commit: 44758a3c
📝 Release Type: Major Patch
This module was originally a single file that I made just for fun, now i’ve decided to make it into a package! README will be finished in v1.3, alongside the ‘Great Docstring Update’ ;)
Full Changelog: https://github.com/Boss-1s/key_multivalue_storage/commits/v1.2.2.20260506.2
⚙ Target Node Commit: 70424d7e
📝 Release Type: Major Patch
Caution
This is an older release of this library brought back to life through archives in this commit history. Things may be broken and not work.
Note
This release involves three seperate releases: the main release, v1.2.1.20260417, and the two patches after that, v1.2.1.20260417a and v1.2.1.20260417b (This release).
kms-v1.2.1/2026.04.17sematic/date vs. old one date and sematic separate)_StorageSettingsMetaVERSION, DATE_VERSION, LAST_UPDATE, indent, encode, skip_delete_warn, auto_delete_selfuuid.uuid7(), and falls back to uuid.uuid4() if CPython version is < 3.14store and Delete.all to support globals
kms-v1.2.1/2026.04.17askip_delete_warn have been reverted and the variable deleted
kms-v1.2.1/2026.04.17b (This release)__store functions, which is an @staticmethod__store provide the indent default (Storage.indent) beforehand_encode and _decodeChangelog:
kms-v1.2.1/2026.04.17: https://github.com/Boss-1s/scratchattach/commit/515e0c715c723aa4821b90f9753d062cd7bc7675
kms-v1.2.1/2026.04.17a: https://github.com/Boss-1s/scratchattach/commit/db471126f57ee6b0fe371631b04d6bfcc7e00b78
kms-v1.2.1/2026.04.17b (This release): https://github.com/Boss-1s/scratchattach/commit/208a0874e3ebeaf124fb926bff271fffb2452b39
⚙ Target Node Commit: f0c2322b
📝 Release Type: Minor Patch
Caution
This is an older release of this library brought back to life through archives in this commit history. Things may be broken and not work.
datetimeChangelog: https://github.com/Boss-1s/scratchattach/commit/b64dd8bd9891e664d84980521e21877f11799a29
⚙ Target Node Commit: 5aced039
📝 Release Type: Initial Release
Caution
This is an older release of this library brought back to life through archives in this commit history. Things may be broken and not work.
logging.Logger supportStorage._KeyNotFoundError now inherits from KeyError instead of the generic ExceptionStorage._dprint (_dprint was a legacy private function that implemented an extremely redundant stdout printing though printing with both print() and os.system("echo..."))__getitem__, __setitem__, __delitem__, __len__, __contains__, __iter__, __getattr__, __setattr__, __call__, __enter__, __exit__, __format__)Changelog: https://github.com/Boss-1s/scratchattach/commit/84a75fc3847bcc2de0e7f45b3b41230ef659fec3