Repository navigation
Releases: MeGaNeKoS/logveil
Release list
v2.2.1
Patch release after the logveil rename.
- Remove the deprecated python-devlog compatibility shim from the package.
- Remove python-devlog build, test, and publish jobs from CI/CD.
- Rename remaining internal devlog identifiers and messages to logveil.
- Keep the release pipeline publishing only logveil.
v2.2.0 — Renamed to logveil
logveil 2.2.0
This is the first release under the new package name logveil (previously python-devlog).
What's new
- Package renamed from python-devlog to logveil
- Import path changes from devlog to logveil
- python-devlog 2.2.0 is now published as a compatibility shim that re-exports everything from logveil and emits a DeprecationWarning on import
Migration
\\�ash
pip install logveil
\\
\\python
Before
from devlog import log_on_start, log_on_end, log_on_error
After
from logveil import log_on_start, log_on_end, log_on_error
\\
All APIs are identical — only the package and import name changes.
Existing python-devlog users will receive this shim automatically on pip install --upgrade python-devlog.
v2.1.1
Changes
- Add cross-call-boundary taint propagation for multi-depth function chains
- Derived values (f-strings, mutations) passed to sub-functions are now tracked and redacted
- Modernize CI workflows with OIDC trusted publishing and SHA-pinned actions
v2.1
Stack trace locals redaction with bytecode taint analysis
Sensitive values and sanitize_params now redact stack trace locals using three-layer analysis:
- Name-based: Parameter variables redacted by name (works for any type — strings, ints, dicts, etc.)
- Bytecode dataflow: Analyzes function bytecode to find derived variables
- Value check: Only redacts if the runtime value actually contains the secret
Examples
| Variable | Redacted? | Why |
|---|---|---|
token = "sk-secret" |
'***' |
Parameter name |
header = f"Bearer {token}" |
'***' |
In dataflow + contains secret |
secrets = [token] |
'***' |
Container holds the object |
token_len = len(token) |
14 |
In dataflow, but value doesn't contain secret |
coincidence = "sk-secret" |
'sk-secret' |
Not in dataflow from token |
Changes
- Add stack trace locals redaction for
Sensitivevalues andsanitize_params - Three-layer taint analysis: name-based, bytecode dataflow, and value checking
- Update README with sanitization examples and async sample output
- 10 new tests (72 total)
Full Changelog: v2.0...v2.1
v2.0
What's New
- Async support — all decorators now work with async functions automatically
- Value sanitization —
Sensitivewrapper andsanitize_paramsoption to redact values in logs - Modularized codebase — split monolithic
decorator.pyintobase.pyanddecorators.py - Improved tracebacks —
__tracebackhide__keeps devlog frames out of pytest output - Bug fix —
custom_excepthooknow correctly writes to file (was opening in read mode) - Modernized CI — updated GitHub Actions, Python 3.9–3.13 test matrix
- Dynamic versioning — version derived from git tags via
setuptools-scm
Breaking Changes
- Requires Python 3.9+
- Internal module
devlog.decoratorremoved (usedevlog.base/devlog.decorators) - Public API (
devlog.log_on_start, etc.) is unchanged
1.2
1.1
- Add unit testing and tested on python 3.6 to 3.10
- Stable release of the package
Full Changelog: 1.0b2...1.1
1.0b2
- Change the decorator from CamelCase to snake_case
- Treat the no parenthesis decorator as an empty parenthesis decorator
Full Changelog: 1.0b1...1.0b2
1.0b1
Beta release of devlog. Currently limited to sync func.
Full Changelog: https://github.com/MeGaNeKoS/devlog/commits/1.0b1