Skip to content

Commit d4f6282

Browse files
committed
initial changelog draft
1 parent a528dc4 commit d4f6282

1 file changed

Lines changed: 75 additions & 0 deletions

File tree

python/CHANGELOG.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,81 @@ 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+
```
55+
56+
### What's New
57+
58+
#### Data Import API in SiftClient
59+
The `sift_client` module now exposes a data import API supporting CSV, Parquet, TDMS, and HDF5.
60+
61+
#### 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.
63+
64+
#### Progress Indicators
65+
Adds progress indicators for job polling and file downloads for better visibility during long-running operations.
66+
67+
### Bugfixes
68+
- Fall back to `application/octet-stream` for unknown MIME types on file attachment uploads.
69+
- Add `py.typed` to the generated proto directory so type checkers pick up protobuf types correctly.
70+
- Update `sift-stream-bindings` to pick up upstream fixes.
71+
72+
### Full Changelog
73+
- [Add data import API to sift_client](https://github.com/sift-stack/sift/pull/515)
74+
- [Add optional logging of test result create and update events](https://github.com/sift-stack/sift/pull/529)
75+
- [Add progress indicators for job polling and file downloads](https://github.com/sift-stack/sift/pull/517)
76+
- [Refactor files using run_in_executor](https://github.com/sift-stack/sift/pull/518)
77+
- [Update exports.proto to support parquet](https://github.com/sift-stack/sift/pull/510)
78+
- [Add py.typed file to proto dir](https://github.com/sift-stack/sift/pull/524)
79+
- [Update sift-stream-bindings version](https://github.com/sift-stack/sift/pull/513)
80+
681
## [v0.13.0] - March 24, 2026
782
### What's New
883
#### SiftClient Export API

0 commit comments

Comments
 (0)