You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: python/CHANGELOG.md
+3-52Lines changed: 3 additions & 52 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,69 +3,20 @@ All notable changes to this project will be documented in this file.
3
3
4
4
This project adheres to [Semantic Versioning](http://semver.org/).
5
5
6
-
## [v1.0.0] - April 16, 2026
7
-
8
-
This is the first major release of `sift-stack-py`. `sift_client` has reached feature parity with `sift_py` and is now the recommended interface for all new development. `sift_py` (deprecated since [v0.10.0](#v0100---january-30-2026)) continues to work and ship in this release; all features previously available only in `sift_py`, including data imports and exports, are now available in `sift_client`.
9
-
10
-
### Migrating from `sift_py` to `sift_client`
11
-
12
-
`sift_client` introduces a unified, Pythonic interface and is not a drop-in replacement for `sift_py`. The major differences are summarized below. For complete examples, see the [sift_client documentation](https://sift-stack.github.io/sift/python/latest/#sift-client-api-new).
13
-
14
-
#### Unified client vs. per-service classes
15
-
16
-
`sift_py` exposed a separate service class per domain (`IngestionService`, `RuleService`, `AssetService`, `ReportTemplateService`, etc.). `sift_client` exposes a single `SiftClient` with resource accessors:
17
-
18
-
```python
19
-
# sift_py
20
-
from sift_py.grpc.transport import SiftChannelConfig, use_sift_channel
21
-
from sift_py.asset.service import AssetService
22
-
23
-
with use_sift_channel(SiftChannelConfig(uri=uri, apikey=apikey)) as channel:
`sift_py` is primarily synchronous, with async support limited to data queries and the gRPC channel. `sift_client` provides both sync and async interfaces for every resource:
`sift_py` returned a mix of raw protobuf types and thin wrappers, with inconsistent update semantics. `sift_client` returns immutable Pydantic models with convenience methods and typed update models:
49
-
50
-
```python
51
-
asset = client.assets.get(asset_id="asset123")
52
-
asset.archive(archive_runs=True)
53
-
asset.update({"tags": ["production", "v2"]})
54
-
```
6
+
## [v0.14.0] - April 17, 2026
55
7
56
8
### What's New
57
9
58
10
#### Data Import API in SiftClient
59
-
The `sift_client` module now exposes a data import API supporting CSV, Parquet, TDMS, and HDF5.
11
+
The `sift_client` module now exposes a data import API supporting CSV, Parquet, TDMS, and HDF5. With this addition, all features previously available only in `sift_py` are now available in `sift_client`, which remains the recommended interface for new development. `sift_py` (deprecated since [v0.10.0](#v0100---january-30-2026)) continues to work and ship in this release.
60
12
61
13
#### Test Result Logging
62
-
Adds optional logging of test result create and update events, with logging now running in a subprocess while a test runs.
14
+
Test result create and update events can now be optionally written to a `.jsonl` log file during a test run, then replayed against the Sift API later via the new `import_test_result_log` script.
63
15
64
16
#### Progress Indicators
65
17
Adds progress indicators for job polling and file downloads for better visibility during long-running operations.
66
18
67
19
### Bugfixes
68
-
- Fall back to `application/octet-stream` for unknown MIME types on file attachment uploads.
69
20
- Add `py.typed` to the generated proto directory so type checkers pick up protobuf types correctly.
70
21
- Update `sift-stream-bindings` to pick up upstream fixes.
0 commit comments