diff --git a/CHANGELOG.md b/CHANGELOG.md index 76d3b692058a..5cc89b4943c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,102 @@ # Rerun changelog -## [Unreleased](https://github.com/rerun-io/rerun/compare/latest...HEAD) +## [Unreleased](https://github.com/rerun-io/rerun/compare/latest...HEAD) - Dataframe & Video + +TODO(emilk): insert a screenshot and/or code sample here + +📖 Release blogpost: TODO(emilk): add link + +🧳 Migration guide: No breaking changes in this release! + +### ✨ Overview & highlights +This release introduces two powerful features: a dataframe API (and view), as well as video support. + +#### ☰ Dataframe Python API +We now have a Python API for querying the contents of an .rrd file. This integrates with popular packages such as [Pandas](https://pandas.pydata.org), [Polars](https://pola.rs), and [DuckDB](https://duckdb.org). + +You can read more in [the Dataframe API how-to guide](https://rerun.io/docs/content/howto/dataframe-api?speculative-link). + +We have also added a matching dataframe view inside the Rerun Viewer. +Read more [here](https://rerun.io/docs/content/reference/types/views/dataframe_view?speculative-link). + +#### 🎬 Video +Rerun now supports logging MP4 videos using the new [`AssetVideo`](https://rerun.io/docs/reference/types/archetypes/asset_video?speculative-link) archetype. +This can greatly reduce bandwidth and storage requirements. + +While the web viewer supports a variety of codecs, the native viewer supports only the AV1 codec for the moment, but we plan to support H.264 in the near future as well. +Read more about our video supports (and its limits) [in our video docs](https://rerun.io/docs/reference/video). + +### ⚠️ Breaking changes +None this time! + +### 🔎 Details + +#### 🪵 Log API +- Tensor & depth image value ranges can now be configured, from UI & code [#7549](https://github.com/rerun-io/rerun/pull/7549) +- New planar pixel formats: `Y_U_V24`/`Y_U_V16`/`Y_U_V12` - `_LimitedRange`/`FullRange` [#7666](https://github.com/rerun-io/rerun/pull/7666) +- Refactor `MediaType` guessing [#7326](https://github.com/rerun-io/rerun/pull/7326) + +#### 🌊 C++ API +- Add `nullptr` check when forwarding from component to datatype [#7430](https://github.com/rerun-io/rerun/pull/7430) + +#### 🐍 Python API +- Add missing `show_labels` and `draw_order` arguments in Python API [#7363](https://github.com/rerun-io/rerun/pull/7363) (thanks [@kpreid](https://github.com/kpreid)!) +- Allow logging to a recording without first calling `rr.init()` [#7698](https://github.com/rerun-io/rerun/pull/7698) +- Add support for NumPy arrays to the arrow serializer for string datatypes [#7689](https://github.com/rerun-io/rerun/pull/7689) + +#### 🦀 Rust API +- Fix Rust's `TimeColumn::new_seconds/new_nanos` creating sequence timelines [#7402](https://github.com/rerun-io/rerun/pull/7402) +- Update ndarray to 0.16 and ndarray-rand to 0.15 [#7358](https://github.com/rerun-io/rerun/pull/7358) (thanks [@benliepert](https://github.com/benliepert)!) +- Replace `host_web_viewer` method with `WebViewerConfig::host_web_viewer` [#7553](https://github.com/rerun-io/rerun/pull/7553) +- Update MSRV to Rust 1.79 [#7563](https://github.com/rerun-io/rerun/pull/7563) + +#### 🪳 Bug fixes +- Purge the query cache to prevent GC livelocks [#7370](https://github.com/rerun-io/rerun/pull/7370) +- Bug fix: always show latest data in follow-mode [#7425](https://github.com/rerun-io/rerun/pull/7425) +- Fix encoded image being suggested for non-image blobs (like video) [#7428](https://github.com/rerun-io/rerun/pull/7428) +- Chunk store: support for overlapped range queries [#7586](https://github.com/rerun-io/rerun/pull/7586) +- Fix image & video cache creating new entries when selecting data without explicit media type [#7590](https://github.com/rerun-io/rerun/pull/7590) + +#### 🌁 Viewer improvements +- The viewer will tail an .rrd that's is being written to [#7475](https://github.com/rerun-io/rerun/pull/7475) +- Native video support for AV1 [#7557](https://github.com/rerun-io/rerun/pull/7557) + +#### 🚀 Performance improvements +- Improve performance for scenes with many entities & transforms [#7456](https://github.com/rerun-io/rerun/pull/7456) +- `Caches` per recording [#7513](https://github.com/rerun-io/rerun/pull/7513) +- Automatic removal of unreachable static chunks [#7518](https://github.com/rerun-io/rerun/pull/7518) +- Invalidate hub-wide caches on deletions and overwrites [#7525](https://github.com/rerun-io/rerun/pull/7525) +- Do not cache static entries in the query-time latest-at cache [#7654](https://github.com/rerun-io/rerun/pull/7654) +- Make sure Arrow `filter` and `take` kernels early out where it makes sense [#7704](https://github.com/rerun-io/rerun/pull/7704) + +#### 🧑‍🏫 Examples +- Add drone LiDAR example [#7336](https://github.com/rerun-io/rerun/pull/7336) +- add instant_splat example [#7751](https://github.com/rerun-io/rerun/pull/7751) (thanks [@pablovela5620](https://github.com/pablovela5620)!) + +#### 📚 Docs +- Add video reference docs [#7533](https://github.com/rerun-io/rerun/pull/7533) +- Document that Rerun does not support left-handed coords [#7690](https://github.com/rerun-io/rerun/pull/7690) +- Add a How-to guide for the dataframe API [#7727](https://github.com/rerun-io/rerun/pull/7727) +- Docs: move "roadmap" down to "development" [#7775](https://github.com/rerun-io/rerun/pull/7775) +- Add a "Getting started" guide for the dataframe API [#7643](https://github.com/rerun-io/rerun/pull/7643) +- Docs: clean up reference menu [#7776](https://github.com/rerun-io/rerun/pull/7776) +- Updating "Navigating the viewer" [#7757](https://github.com/rerun-io/rerun/pull/7757) + +#### 🖼 UI improvements +- Add a hook for views to add additional UI in the tab title bar [#7438](https://github.com/rerun-io/rerun/pull/7438) +- Text fields in the selection panel now span the available width [#7487](https://github.com/rerun-io/rerun/pull/7487) +- Do not deselect on ESC when it was used to close some other UI element [#7548](https://github.com/rerun-io/rerun/pull/7548) +- Add UI for precisely picking an exact sequence time [#7673](https://github.com/rerun-io/rerun/pull/7673) +- Remove the feature flag for plot query clamping [#7664](https://github.com/rerun-io/rerun/pull/7664) + +#### 🎨 Renderer improvements +- Introduce image data conversion pipeline, taking over existing YUV conversions [#7640](https://github.com/rerun-io/rerun/pull/7640) + +#### 🧑‍💻 Dev-experience +- Add a command palette action to reset egui's memory (debug build only) [#7446](https://github.com/rerun-io/rerun/pull/7446) +- Add NOLINT block to `lint.py` [#7720](https://github.com/rerun-io/rerun/pull/7720) + ## [0.18.2](https://github.com/rerun-io/rerun/compare/0.18.1...0.18.2) - Even more bug fixes @@ -241,7 +336,7 @@ _All four tetrahedron meshes on this screen share the same vertices and are inst - Recommend install rerun-cli with `--locked` [#6868](https://github.com/rerun-io/rerun/pull/6868) - Remove `TensorBuffer::JPEG`, `DecodedTensor`, `TensorDecodeCache` [#6884](https://github.com/rerun-io/rerun/pull/6884) -#### 🪳Bug Fixes +#### 🪳 Bug fixes - Respect 0.0 for start and end boundaries of scalar axis [#6887](https://github.com/rerun-io/rerun/pull/6887) (thanks [@amidabucu](https://github.com/amidabucu)!) - Fix text log/document view icons [#6855](https://github.com/rerun-io/rerun/pull/6855) - Fix outdated use of view coordinates in `Spaces and Transforms` doc page [#6955](https://github.com/rerun-io/rerun/pull/6955) diff --git a/docs/content/howto/dataframe-api.md b/docs/content/howto/dataframe-api.md index 3a01ab4d3c4a..22c00d4bbe03 100644 --- a/docs/content/howto/dataframe-api.md +++ b/docs/content/howto/dataframe-api.md @@ -82,8 +82,6 @@ view = recording.view(index="frame_nr", contents={ A view has several APIs to further filter the rows it will return. - - #### Filtering by time range Rows may be filtered to keep only a given range of values from its index column: diff --git a/scripts/generate_changelog.py b/scripts/generate_changelog.py index 5ae09bcbb66b..d64252b5d521 100755 --- a/scripts/generate_changelog.py +++ b/scripts/generate_changelog.py @@ -28,6 +28,7 @@ OFFICIAL_RERUN_DEVS = [ "abey79", "emilk", + "gavrelina", "jleibs", "jprochazk", "nikolausWest", @@ -187,7 +188,7 @@ def main() -> None: labels = pr_info.labels if pr_info else [] - if "exclude from changelog" in labels: + if "include in changelog" not in labels: continue summary = f"{title} [#{pr_number}](https://github.com/{OWNER}/{REPO}/pull/{pr_number})" @@ -212,7 +213,7 @@ def main() -> None: added = False # Some PRs can show up under multiple sections: - if "🪵 Log-API" in labels: + if "🪵 Log & send APIs" in labels: log_api.append(summary) added = True else: @@ -284,7 +285,7 @@ def main() -> None: print_section("🌊 C++ API", cpp) print_section("🐍 Python API", python) print_section("🦀 Rust API", rust) - print_section("🪳 Bug Fixes", bugs) + print_section("🪳 Bug fixes", bugs) print_section("🌁 Viewer improvements", viewer) print_section("🚀 Performance improvements", performance) print_section("🧑‍🏫 Examples", examples)