Releases: rmlibre/aiootp
Releases · rmlibre/aiootp
aiootp — v0.23.18
Changes for version 0.23.18
Major Changes
- build(pkg): apply dependency upgrades & new ruff rules
- build(pkg): test & signal support for python 3.14
- feat(slots): provide a
clearmethod for containers - feat(slots): pass (un)mapped attributes down class hierarchy
- feat(asynchs): define a lock type for multi-target async-safety
- fix(slots): refine splat logic, dir results & attr restrictions
- fix(db): ensure manifest's metatag field is populated
Minor Changes
- build(signer): include socket time out error in catch statements
- docs(cipher): demo more proper canonical concatenation
- docs(fix): unlink docstring reference to changed parameter name
- docs(legal): bump AGPLv3 license date range
- docs(typing): update annotations with new syntax
- docs(typing): reference NoneType for runtime type checking
- fix(build): update ruff version target & typing annotations
- fix(config): allow setting the time unit for passcrypt instances
- fix(config): fixup bd062e2, making remaining time units picklable
- fix(db): remove deprecated use of dunder dict on containers
- fix(signer): use constant-time comparison of summary checksum
- fix(signer): raise NotImplementedError if any related args given
- fix(typing): disallow specifying dunder dict type in slots_types
- refactor(cipher): remove unnecessary variable reassignment
- refactor(config): simplify interface for low-level Passcrypt helpers
- refactor(misc): improve readability & avoid errors from str typos
- refactor(misc): improve readability & adherence to style conventions
- refactor(signer): use str join instead of quadratic str concat
- style(cipher): shorten code lines where possible
- test(cov): ignore no-op lines from coverage report
- test(slots): ensure class signals combine along the MRO
Full Changelog: v0.23.17...v0.23.18
aiootp — v0.23.17
Changes for version 0.23.17
Major Changes
- build(package): remove support for python 3.8
- fix(test): collect names once if pytest runs w/o module specified
Minor Changes
- build(git): ignore files automatically created by uv
- build(package): allow but warn of non-standard HEAD names
- build(package): prompt for desired branch if non-standard
- build(package): bump dependencies versions
- build(package): apply dependency upgrades & new ruff rules
- build(package): update licenses & pyproject per PEP 639
- build(pyproj): remove lingering references to 'setup.py'
- build(signer): mark package signing scripts as executable
- docs(changelog): add current version's missing entries
- docs(changelog): alphabetize entries by type & scope sections
- docs(cipher): demo more proper canonical concatenation
- docs(exc): specify return type hint for Ignore callable arg
- docs(grammar): fix typo in method docstring
- docs(readme): display example returns of None consistently
- docs(readme): describe cipher key sizes as inclusive of 64-bytes
- docs(test): switch Targets to type-hintable NamedTuple type
- docs(typing): describe queue param correctly as a deque
- perf(canon): use an async internal subroutine
- refactor(hash): split operations over two function calls
- refactor(paths): extract secure/admin paths into callables
- refactor(perm): use args & concentrate steps in key encoder
- refactor(readme): improve summary typo & clarity of example
- refactor(test): extract base class from common runner logic
- refactor(test): remove extra salt file tests during refactor
- refactor(test): prepare for consolidation & parametrization 1/x
- refactor(test): prepare for consolidation & parametrization 2/x
- refactor(test): prepare for consolidation & parametrization 3/x
- refactor(test): consolidate & parametrize to simplify new tests
- refactor(test): prepare to categorize tests into smaller modules
- refactor(test): remove unneeded aggregator 'conftest.py' imports
- refactor(test): isolate early setup imports
- refactor(test): use new function for creating random params
- refactor(test): alphabetize cleanup tests to run after others
- style(cipher): unfurl cipher streams in a consistent way
- style(ciphers): merge loop conditional with inner guard clause
- style(pyproj): terminate container lines with a comma
- style(test): use more consistent & succinct variable names
- test(async): cancel target tasks & futures explicitly
- test(paths): exempt Windows of need to deny salt file reads
- test(paths): parametrize & stabilize 'test_paths.py' methods
- test(paths): ensure reads return expected salt value
- test(paths): add new tests to 'test_paths.py' after refactor
- test(paths): add coverage & unit tests of deniable filenames
- test(paths): add coverage of (a)find_salt_file func
- test(signer): avoid false negatives if example file is empty
- test(signer): add cases of wrong signing keys for verification
Full Changelog: v0.23.16...v0.23.17
aiootp — v0.23.16
Changes for version 0.23.16
Major Changes
- fix: avoid deprecated 'fork', switch to queues & 'spawn'
- build: remove no longer needed 'setup.py' file
- build: add missing wheel dependency to dev installs
- build: add missing setuptools dependency to dev installs
- build: send build data over sockets to a local signing service
- test: add full coverage for '_paths.py'
- test: use new, custom, more efficient hypothesis strategies
- perf: store PackageSigner files as hexdigests to ease transmission
- refactor: update '_paths.py' style, names & logic structure
Minor Changes
- feat: add trial ciphertext<-->phrase steganographic tool
- feat: add a size argument to ByteIO (a)read methods
- build: bump dependencies versions & apply new ruff rules
- build: automate 'MANIFEST.in' & follow setuptools guide
- build: add ipython to dev installs to standardize & simplify environment setup
- docs: specify bool or None as
__(a)exit__return type - docs: fix inaccurate changelog message under v0.23.15
- docs(readme): include
Slick256in online cipher description - docs(readme): clean intro instructions & make test/dev section
- docs: fix incomplete docstring in 'cipher_interface.py'
- docs: fix docstring typos
- docs: improve docstring clarity
- docs: correct return type hint on test methods
- docs: add function name in not implemented warning message
- docs: reword salt misuse resistance docstrings & add citation
- docs: add return type hint on test fixtures
- docs: bump AGPLv3 license date range
- docs: correct 'test_paths.py' error messages
- docs: correct outdated '_paths.py' docstrings
- test: cover placeholder method in 'aos.py' module
- test: remove leftover usage of 'fork' processes
- refactor: fix concurrency type hints & unnecessary coupling
- refactor: bundle like-context exceptions into named constants
- refactor: extract names defined in function to file's config section
- refactor: use constants for static filenames instead of literals
- refactor: extract server socket init into a context manager
- refactor: call new functions for default inputs to cipher configs
- refactor: move test vectors into their own modules
- style: replace simple ternary ops with short-circuits
Full Changelog: v0.23.15...v0.23.16
aiootp — v0.23.15
Changes for version 0.23.15
Major Changes
- build: update dependencies & add coverage to dev & test installs
- build: add
hypothesisdependency to dev & test installs - build: bump
ruffversion & fix new lint rule changes - build: add
builddependency to dev installs - build: update metadata to show Python 3.13 support
- ci: add
hypothesisto GH actions workflow dependencies
Minor Changes
- fix: capture
KeyError& raiseAttributeErrorinstead [#8] - fix: use size instead of config_id to determine GUID key_size
- feat: add 48-byte default permutation config objects
- feat: add decisecond & centisecond clock configurations
- ci: add Python '3.13.x' to GH actions
- build: use dynamic table to specify the package readme
- build: specify the coverage htmlcov directory
- build: remove 'command_line' so coverage can run specific files
- build: fix deprecation of unset pytest_asyncio fixture loop scope
- build: add verify package flow to signing ceremony
- docs: fix wrong typing annotation
- docs: fix docstring typo & grammar
- docs: fix grammar of error message
- docs: fix (a)canonical_pack docstring format diagram
- docs(readme): clean-up install & test instructions
- test: prepare fixtures to refactor 'test_PackageSigner.py'
- test: refactor 'test_PackageSigner.py' & cover all branches
- test: cover input combinations for
(a)test_timestamp - test: import
hypothesisin 'conftest.py' - test: parametrize & fuzz 'test_gentools.py' to cover branches
- test: continue refactor & coverage in 'test_PackageSigner.py'
- test: configure pytest to display or error on warnings
- refactor: remove unnecessary variable alias
- refactor: specify input types as positive integers
- refactor: unify, parametrize, & simplify PackageSigner test values
- refactor: remove redundant step in test initialization
- refactor: terminate 'pyproject.toml' container lines with commas
Full Changelog: v0.23.14...v0.23.15
aiootp — v0.23.14
Changes for version 0.23.14
Major Changes
- build: fix improperly packaged directory structure for wheel
Minor Changes
- build: use standard SPDX string name for project license
- build: move links to 'project.urls' table in 'pyproject.toml'
Full Changelog: v0.23.13...v0.23.14
aiootp — v0.23.13
Changes for version 0.23.13
Major Changes
- build: improve package signing with better logic & git file tree
Minor Changes
- ci: attempt bash shell for Windows GH actions tarball tests
- ci: attempt tar command for Windows GH actions tarball tests
- build(package): swap author order for display purposes
- build: attempt specifying python versions in wheel file
Full Changelog: v0.23.12...v0.23.13
aiootp — v0.23.12
Changes for version 0.23.12
Major Changes
- fix(concurrency): use constant-time 'is done' logic for cipher streams
- build: start transition to the new standard
pyproject.toml - build: continue
pyproject.tomlupdates for Ruff & manifest - style: apply Ruff rule A001 for module doctring placement
Minor Changes
- ci: run PyPI tarball package tests in new GitHub actions
- test: wait longer for concurrent thread to start running
- refactor: make custom
CipherStreamIsClosedexception - style: apply Ruff rule B008 exception only to
rng.pymodule - style: remove Ruff rule UP015 exception since using pathlib
- style: clean & sort
MANIFEST.inwith git ls-tree - refactor: prepare for
pyproject.tomlwith new signing ceremony file
Full Changelog: v0.23.11...v0.23.12
aiootp — v0.23.11
Changes for version 0.23.11
Major Changes
- fix(concurrency): block multiple calls to cipher stream finalization [#19]
- fix(concurrency): complete all buffers before (a)finalize runs [#19]
- style(lint): apply Ruff lint & format with more rules [#12]
Minor Changes
- docs(ruff): improve grammar & structure of rule annotations
- build(ignore): extend & alphabetize with explicit dirs
- refactor: rename test init file to the standard 'conftest.py'
- refactor(tests): use more descriptive names
Full Changelog: v0.23.10...v0.23.11
aiootp — v0.23.10
Changes for version 0.23.10
Major Changes
- fix(commons): deduplicate logic to keep behavior consistent [#14] by @rmlibre in #15
- feat(commons): support tuples of types in
typed_slotsclasses
Minor Changes
- fix(concurrency): use timing-safe token comparisons & mask repr
- fix(concurrency): rely on context manager boolean control flow
- docs(coc): fix typos & rename first section
- docs(perm): add missing operator in doc string examples
- docs(cipher): fix salt misuse resistance calculations [#16] by @rmlibre in #17
- docs(concurrency): fix typos & grammar in doc strings
- perf(commons): separate & order inclusion checks
- style(lint): turn on "ARG" flag & fix associated warnings
Full Changelog: v0.23.9...v0.23.10
aiootp — v0.23.9
Changes for version 0.23.9
Major Changes
- fix(commons): avoid silent add of
__slots__attrs to__dict__by @rmlibre in #11 - fix(lint): reformat & resolve discovered Ruff errors by @rmlibre in #12
- fix(concurrency): prevent simultaneous data buffering by @rmlibre in #12
- build(lint): require Ruff for test installation [#12]
Minor Changes
- fix: allow
strbuild numbers in signing ceremony - fix(db): raise intended error by loading missing import [#12]
- fix(commons): remove duplicates prior to update
- fix(commons): accept pair-iterable mapping in init
- fix(commons): remove
__all__method causing recursion bugs - fix(concurrency): import missing name in guard clause line [#12]
- ci(perf): run workflows on push & pull, but not on same event
- docs: fix wrong or incomplete doc strings
- docs: add links for bug & security issue reporting
- docs(lint): incorporate Ruff demo & update badges [#12]
- docs(bugfix): demonstrate avoiding slots/dict conflicts [#11]
- docs(bugfix): clarify tests to show problematic assignments [#11]
- docs(commons): add distinguishing facets of classes to doc strings
- docs(typing): fix & add type hints
- build(lint): add
ruff.tomlconfig file [#12] - test(cipher): demonstrate proper stream authentication
- test(commons): ensure proper use avoids bug from PR [#11]
- test(concurrency): add module for
ConcurrencyGuardtests [#12] - perf(init): cache slots as sets for membership tests [#11]
- revert: scrap discouraged quick-fix in favor of 3bd087b [#11]
- refactor(exc): rely on common invalid length exception
- style(lint): remove unused imports [#12]
- style(lint): prevent reformat of problem statement [#12]
- style(lint): prefer non-lambda function definitions [#12]
- style(commons): add missing
__slots__declarations
Full Changelog: v0.23.8...v0.23.9