Skip to content

Release/0.5.0#31

Merged
pmuller merged 14 commits into
developfrom
release/0.5.0
Apr 25, 2026
Merged

Release/0.5.0#31
pmuller merged 14 commits into
developfrom
release/0.5.0

Conversation

@pmuller
Copy link
Copy Markdown
Owner

@pmuller pmuller commented Apr 25, 2026

No description provided.

pmuller added 14 commits April 25, 2026 00:40
Adds a -r/--recipient CLI flag so users can encrypt secrets using only
an age public key (age1...), without needing the private identity.
Can be combined with -i; rejected with passphrase options or in
decrypt mode.
Replaces rye with uv as the project's package and environment manager.

- pyproject.toml: move [tool.rye] dev-dependencies to [dependency-groups].dev
  (PEP 735); bump requires-python from 3.8 to 3.10 to match classifiers and
  satisfy uv's stricter resolver.
- Add salt's runtime dependencies explicitly to the dev group. The PyPI
  salt wheel does not declare them in its metadata, so uv (unlike rye)
  cannot pull them transitively.
- Replace rye lock files with uv.lock.
- CI workflows: switch to astral-sh/setup-uv and uv-native commands.
- README: update development and release instructions.
- Drop ANN101/ANN102 from ruff ignore list (removed in newer ruff), and
  apply ruff's auto-fixes across tests, typings, and renderers.
- Replace `Any` with `object` in `secure_value.py` and `renderers/age.py`,
  with a narrowing cast after `is_secure_value()`.
- Replace `Any` with `object` in test fixture return types.
- Replace `lambda _key: None` with a typed `_config_get_none` function in
  the two env-based renderer tests.
- Rename `typings/pyrage/passphrase.py` and `x25519.py` to `.pyi` so
  stub-only files no longer trigger unused-parameter warnings; drop the
  now-redundant quoted forward refs.
- Scope `reportExplicitAny = "none"` to `typings/` only — Salt and
  saltfactories APIs legitimately need `Any`.
Salt installs a DeferredStreamHandler on the root logger that buffers
records and flushes them at interpreter shutdown. Under pytest the
buffered records were flushed to streams capsys had already closed,
producing spurious "I/O operation on closed file" tracebacks after the
test summary.

- configure_logging now attaches a StreamHandler to the saltstack_age
  package logger and sets propagate = False, so CLI records never reach
  the root logger.
- tests/conftest.py drops salt's DeferredStreamHandler from the root
  logger at session start, eliminating the saltfactories-emitted record
  that was also caught by the same flush path.
@pmuller pmuller merged commit c7b074b into develop Apr 25, 2026
3 checks passed
@pmuller pmuller deleted the release/0.5.0 branch April 25, 2026 04:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant