65 lines
2.9 KiB
Markdown
65 lines
2.9 KiB
Markdown
---
|
|
title: Migrating from 0.19 to 0.20
|
|
order: 990
|
|
---
|
|
|
|
|
|
## ⚠️ Breaking changes
|
|
|
|
### `re_query::Caches` -> `re_query::QueryCache` & `re_query::CacheKey` -> `re_query::QueryCacheKey`
|
|
|
|
`re_query::Caches` has been renamed `re_query::QueryCache`, and similarly for `re_query::CacheKey`.
|
|
|
|
Note that this doesn't affect `re_dataframe`, where this type was already re-exported as `QueryCache`.
|
|
|
|
### Python `colors` change in behavior for single-dimensional lists
|
|
|
|
Single-dimensional lists that don't otherwise provide type information are now be assumed to be packed
|
|
integers color representations (e.g. `0xRRGGBBAA`), unless the length is exactly 3 or 4.
|
|
|
|
In the case of single lists of 3 or 4 elements, we continue to allow the common pattern of writing: `colors=[r, g, b]`.
|
|
|
|
This change primarily impacts a previous feature in which all lists divisible by 4 were assumed to be alternating,
|
|
`[r, g, b, a, r, g, b, a, …]`. This feature is still available, but depends on your input explicitly being typed
|
|
as a numpy array of `np.uint8`.
|
|
|
|
If you depend on code that uses a bare python list of alternating colors, such as:
|
|
```python
|
|
rr.log("my_points", rr.Points3D(…, colors=[r, g, b, a, r, g, b, a, …]))
|
|
```
|
|
You should wrap your input explicitly in a `np.uint8` typed numpy array:
|
|
```python
|
|
rr.log("my_points", rr.Points3D(…, colors=np.array([r, g, b, a, r, g, b, a, …], dtype=np.uint8)))
|
|
```
|
|
|
|
Additionally, if you are making use of packed integer colors, it is also advised to add the `np.uint32` type,
|
|
as otherwise length-3 or length-4 lists will risk being interpreted incorrectly.
|
|
```python
|
|
rr.log("my_points", rr.Points3D(…, colors=[0xff0000ff, 0x00ff00ff, 0x0000ffff, …]))
|
|
```
|
|
becomes
|
|
```python
|
|
rr.log("my_points", rr.Points3D(…, colors=np.array([0xff0000ff, 0x00ff00ff, 0x0000ffff, …], dtype=np.uint32)))
|
|
```
|
|
|
|
## ❗ Deprecations
|
|
|
|
### Python 3.8
|
|
|
|
Support for Python 3.8 is being deprecated. Python 3.8 is past end-of-life. See: https://devguide.python.org/versions/
|
|
In the next release, we will fully drop support and switch to Python 3.9 as the minimum supported version.
|
|
|
|
### `connect` -> `connect_tcp` & `serve` -> `serve_web`
|
|
|
|
In all SDKs:
|
|
* `connect()` is now deprecated in favor `connect_tcp()`
|
|
* `serve()` is now deprecated in favor `serve_web()`
|
|
|
|
The old methods will be removed in a future release.
|
|
|
|
The rationale behind this change is that it was easy to confuse what these functions do exactly:
|
|
|
|
We frequently had reports from users that were understandably expecting a serving process (`rr.serve()`) to be ready to accept connections from other processes (`rr.connect()`), when in reality the two things are completely unrelated: one is hosting a websocket server to be polled by the web-viewer, while the other is trying to connect to the TCP SDK comms pipeline.
|
|
|
|
You can learn more about Rerun's application model and the different servers and ports by reading our [new documentation page on the matter](../../concepts/how-does-rerun-work.md).
|