Skip to content

Releases: rmlibre/aiootp

aiootp — v0.23.18

18 May 18:24
v0.23.18
b0afdc4

Choose a tag to compare

aiootp — v0.23.18 Pre-release
Pre-release

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 clear method 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

23 Aug 04:11
v0.23.17
a6f27bf

Choose a tag to compare

aiootp — v0.23.17 Pre-release
Pre-release

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

11 Mar 00:36
v0.23.16
9c30719

Choose a tag to compare

aiootp — v0.23.16 Pre-release
Pre-release

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 Slick256 in 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

09 Oct 19:37
v0.23.15
a08c144

Choose a tag to compare

aiootp — v0.23.15 Pre-release
Pre-release

Changes for version 0.23.15

Major Changes

  • build: update dependencies & add coverage to dev & test installs
  • build: add hypothesis dependency to dev & test installs
  • build: bump ruff version & fix new lint rule changes
  • build: add build dependency to dev installs
  • build: update metadata to show Python 3.13 support
  • ci: add hypothesis to GH actions workflow dependencies

Minor Changes

  • fix: capture KeyError & raise AttributeError instead [#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 hypothesis in '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

12 Aug 19:54
v0.23.14
0158ac1

Choose a tag to compare

aiootp — v0.23.14 Pre-release
Pre-release

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

11 Aug 19:26
v0.23.13
493ef2f

Choose a tag to compare

aiootp — v0.23.13 Pre-release
Pre-release

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

11 Aug 08:28
v0.23.12
6b81671

Choose a tag to compare

aiootp — v0.23.12 Pre-release
Pre-release

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.toml updates 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 CipherStreamIsClosed exception
  • style: apply Ruff rule B008 exception only to rng.py module
  • style: remove Ruff rule UP015 exception since using pathlib
  • style: clean & sort MANIFEST.in with git ls-tree
  • refactor: prepare for pyproject.toml with new signing ceremony file

Full Changelog: v0.23.11...v0.23.12

aiootp — v0.23.11

10 Aug 05:16
v0.23.11
931e90a

Choose a tag to compare

aiootp — v0.23.11 Pre-release
Pre-release

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

06 Jul 22:03
v0.23.10
2137324

Choose a tag to compare

aiootp — v0.23.10 Pre-release
Pre-release

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_slots classes

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

04 Jul 13:36
v0.23.9
486762b

Choose a tag to compare

aiootp — v0.23.9 Pre-release
Pre-release

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 str build 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.toml config file [#12]
  • test(cipher): demonstrate proper stream authentication
  • test(commons): ensure proper use avoids bug from PR [#11]
  • test(concurrency): add module for ConcurrencyGuard tests [#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