Skip to content

Commit 175fcd1

Browse files
committed
update changelog to minor
1 parent d4f6282 commit 175fcd1

1 file changed

Lines changed: 3 additions & 52 deletions

File tree

python/CHANGELOG.md

Lines changed: 3 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -3,69 +3,20 @@ All notable changes to this project will be documented in this file.
33

44
This project adheres to [Semantic Versioning](http://semver.org/).
55

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:
24-
asset_service = AssetService(channel)
25-
asset = asset_service.get_asset(asset_id="asset123")
26-
27-
# sift_client
28-
from sift_client import SiftClient
29-
30-
client = SiftClient(api_key=apikey, grpc_url=grpc_url, rest_url=rest_url)
31-
asset = client.assets.get(asset_id="asset123")
32-
```
33-
34-
#### Sync and async interfaces
35-
36-
`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:
37-
38-
```python
39-
# Sync
40-
asset = client.assets.get(asset_id="asset123")
41-
42-
# Async
43-
asset = await client.async_.assets.get(asset_id="asset123")
44-
```
45-
46-
#### Typed Pydantic models with methods
47-
48-
`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
557

568
### What's New
579

5810
#### 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.
6012

6113
#### 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.
6315

6416
#### Progress Indicators
6517
Adds progress indicators for job polling and file downloads for better visibility during long-running operations.
6618

6719
### Bugfixes
68-
- Fall back to `application/octet-stream` for unknown MIME types on file attachment uploads.
6920
- Add `py.typed` to the generated proto directory so type checkers pick up protobuf types correctly.
7021
- Update `sift-stream-bindings` to pick up upstream fixes.
7122

0 commit comments

Comments
 (0)