Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.11 forwardport (things on release branch that should go to main) #4358

Closed
wants to merge 17 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,12 @@ jobs:
run: |
node rerun_js/web-viewer/scripts/version.mjs ${{ steps.versioning.outputs.current }}

- name: Update rerun_c version
shell: bash
# Configuring CMake is enough to change the version on rerun.h!
run: |
cmake -B build -S .

- run: taplo fmt
shell: bash

Expand Down Expand Up @@ -224,7 +230,6 @@ jobs:
release-version: ${{ needs.version.outputs.current }}
concurrency: ${{ github.ref_name }}
linux-wheel-name: linux-wheel
linux-rrd-name: linux-rrd
release-commit: ${{ needs.version.outputs.release-commit }}
secrets: inherit

Expand All @@ -237,7 +242,6 @@ jobs:
release-commit: ${{ needs.version.outputs.release-commit }}
concurrency: ${{ github.ref_name }}
wheel-artifact-name: linux-wheel
rrd-artifact-name: linux-rrd
update-latest: ${{ inputs.release-type == 'final' }}
secrets: inherit

Expand Down
16 changes: 5 additions & 11 deletions .github/workflows/reusable_publish_npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,20 +58,14 @@ jobs:
workload_identity_provider: ${{ secrets.GOOGLE_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}

- name: Install dependencies
shell: bash
run: |
node rerun_js/web-viewer/scripts/install.mjs

- name: Build package
shell: bash
run: |
node rerun_js/web-viewer/scripts/build.mjs
- uses: prefix-dev/setup-pixi@v0.3.0
with:
pixi-version: v0.6.0

- name: Publish package
- name: Publish packages
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
shell: bash
run: |
node rerun_js/web-viewer/scripts/publish.mjs
pixi run node rerun_js/web-viewer/scripts/publish.mjs

24 changes: 0 additions & 24 deletions .github/workflows/reusable_publish_web.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@ on:
description: "Name of the wheel to use when running examples"
type: string
required: true
rrd-artifact-name:
description: "Name of the .rrd file to use for app.rerun.io"
type: string
required: true
update-latest:
description: "Whether to update the latest version of demo/app"
type: boolean
Expand Down Expand Up @@ -87,12 +83,6 @@ jobs:
name: ${{ inputs.wheel-artifact-name }}
path: wheel

- name: Download .rrd for app.rerun.io
uses: actions/download-artifact@v3
with:
name: ${{ inputs.rrd-artifact-name }}
path: rrd

- name: Install Python dependencies and wheel
shell: bash
run: |
Expand Down Expand Up @@ -121,13 +111,6 @@ jobs:
run: |
pixi run python3 scripts/ci/build_demo_app.py --skip-build

- name: Upload .rrd for app.rerun.io
uses: google-github-actions/upload-cloud-storage@v1
with:
path: "rrd"
destination: "rerun-example-rrd/version/${{ inputs.release-version }}"
parent: false

- name: Upload app.rerun.io (versioned)
uses: google-github-actions/upload-cloud-storage@v1
with:
Expand All @@ -149,12 +132,6 @@ jobs:
destination: "rerun-demo/version/${{ inputs.release-version }}"
parent: false

- name: Publish app.rerun.io
if: inputs.update-latest
shell: bash
run: |
gsutil -m cp -r 'gs://rerun-example-rrd/version/${{ inputs.release-version }}/*' gs://rerun-example-rrd/version/latest

- name: Publish app.rerun.io
if: inputs.update-latest
shell: bash
Expand All @@ -166,4 +143,3 @@ jobs:
shell: bash
run: |
gsutil -m cp -r 'gs://rerun-demo/version/${{ inputs.release-version }}/*' gs://rerun-demo/version/latest

5 changes: 0 additions & 5 deletions .github/workflows/reusable_publish_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,6 @@ on:
description: "Name of the wheel built for linux"
type: string
required: true
linux-rrd-name:
description: "Name of the .rrd file built for linux"
type: string
required: true
release-commit:
description: "Which commit to build+publish"
type: string
Expand Down Expand Up @@ -215,4 +211,3 @@ jobs:
with:
command: upload
args: --skip-existing wheels/*

83 changes: 83 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,89 @@

## [Unreleased](https://github.com/rerun-io/rerun/compare/latest...HEAD)

## [0.11.0](https://github.com/rerun-io/rerun/compare/0.10.1...0.11.0)

### Overview & Highlights

- 🌊 C++ SDK improvements
- [Reference docs are live!](https://ref.rerun.io/docs/cpp/)
- 2x-5x faster logging
- CMake install support and other CMake setup improvements
- Support for custom components & archetypes
- Zero copy logging for images, various API improvements
- 📈 Visual History -> Visual Time Range
- Time series plots can now limit its query to a range
- Much more powerful UI, allowing query ranges relative to time cursor
- 🕸️ The viewer can now be easily embedded in your web apps via our [npm package](https://www.npmjs.com/package/@rerun-io/web-viewer)
- 🐍 ⚠️ Legacy Python API now removed, check the [migration guide](https://github.com/rerun-io/rerun/issues/723) if you're not using `rr.log` yet
- 🦀 The new `StoreSubscriber` trait allows to be notified of all changes in the datastore. This can be used to build custom indices and trigger systems, and serves as a foundation for upcoming performance improvements. Check out [our example](https://github.com/rerun-io/rerun/blob/main/examples/rust/custom_store_subscriber/README.md) for more information.

⚠️ Known issues on Visual Time Range:
- Time cursor [sometimes stops scrolling correctly](https://github.com/rerun-io/rerun/issues/4246) on plot window
- Still [doesn't work with transforms](https://github.com/rerun-io/rerun/issues/723)

Special thanks to @dvad & @dangush for contributing!

### Details

#### 🌊 C++ SDK
- Support std::chrono types for `set_time` on `rerun::RecordingStream` [#4134](https://github.com/rerun-io/rerun/pull/4134)
- Improve rerun_cpp readme & CMakeLists.txt [#4126](https://github.com/rerun-io/rerun/pull/4126)
- Replace the many parameters of `rerun::spawn` / `rerun::RecordingStream::spawn` with a `struct` [#4149](https://github.com/rerun-io/rerun/pull/4149)
- Make on TextLogLevel PascalCase (instead of SCREAMING CASE) to avoid clashes with preprocessor defines [#4152](https://github.com/rerun-io/rerun/pull/4152)
- Reduce rerun_c library size (by depending on fewer unnecessary crates) [#4147](https://github.com/rerun-io/rerun/pull/4147)
- Fix unnecessary includes in code generated headers [#4132](https://github.com/rerun-io/rerun/pull/4132)
- Doxygen documentation & many doc improvements [#4191](https://github.com/rerun-io/rerun/pull/4191)
- Rename `rerun::ComponentBatch` to `rerun::Collection` (and related constructs) [#4236](https://github.com/rerun-io/rerun/pull/4236)
- Use `rerun::Collection` almost everywhere we'd use `std::vector` before [#4247](https://github.com/rerun-io/rerun/pull/4247)
- Significantly improve C++ logging performance by using C FFI instead of arrow IPC [#4273](https://github.com/rerun-io/rerun/pull/4273)
- Further improve C++ logging for many individual log calls by introducing a component type registry [#4296](https://github.com/rerun-io/rerun/pull/4296)
- All C++ datatypes & components now implement a new Loggable trait [#4305](https://github.com/rerun-io/rerun/pull/4305)
- Add C++ Custom Component example [#4309](https://github.com/rerun-io/rerun/pull/4309)
- Expose Rerun source/include dir in CMakeLists.txt (`RERUN_CPP_SOURCE_DIR`) [#4313](https://github.com/rerun-io/rerun/pull/4313)
- Support cmake install [#4326](https://github.com/rerun-io/rerun/pull/4326)
- Export TensorBuffer & TensorDimension to rerun namespace [#4331](https://github.com/rerun-io/rerun/pull/4331)
- C++ SDK sanity checks now header/source version against rerun_c binary version [#4330](https://github.com/rerun-io/rerun/pull/4330)
- Allow creating Image/Tensor/DepthImage/SegmentationImage directly from shape & pointer [#4345](https://github.com/rerun-io/rerun/pull/4345)

#### 🐍 Python SDK
- Python: remove legacy APIs [#4037](https://github.com/rerun-io/rerun/pull/4037)
- Remove deprecated `rerun_demo` package [#4293](https://github.com/rerun-io/rerun/pull/4293)
- Python: don't catch `KeyboardInterrupt` and `SystemExit` [#4333](https://github.com/rerun-io/rerun/pull/4333) (thanks [@Dvad](https://github.com/Dvad)!)

#### 🪳 Bug Fixes
- Fix line & points (& depth clouds points) radii being unaffected by scale & projection via Pinhole [#4199](https://github.com/rerun-io/rerun/pull/4199)
- Fix inaccessible entities being incorrectly added to space view [#4226](https://github.com/rerun-io/rerun/pull/4226)
- Silence spammy blueprint warnings and validate blueprint on load [#4303](https://github.com/rerun-io/rerun/pull/4303)
- Fix markdown heading size [#4178](https://github.com/rerun-io/rerun/pull/4178)

#### 🌁 Viewer Improvements
- Add command to copy direct link to fully qualified URL [#4165](https://github.com/rerun-io/rerun/pull/4165)
- Implement recording/last-modified-at aware garbage collection [#4183](https://github.com/rerun-io/rerun/pull/4183)

#### 🖼 UI Improvements
- Improve Visible History to support more general time queries [#4123](https://github.com/rerun-io/rerun/pull/4123)
- Add support for Visible History to time series space views [#4179](https://github.com/rerun-io/rerun/pull/4179)
- Make Visible History UI more ergonomic and show inherited values [#4222](https://github.com/rerun-io/rerun/pull/4222)
- Display Visible History on timeline when the mouse hovers the UI [#4259](https://github.com/rerun-io/rerun/pull/4259)
- Improve the Selection Panel with better title, context, and Space View key properties [#4324](https://github.com/rerun-io/rerun/pull/4324)

#### 🕸️ Web
- Put web viewer on `npm` [#4003](https://github.com/rerun-io/rerun/pull/4003)
- Auto-switch port when getting AddrInUse error [#4314](https://github.com/rerun-io/rerun/pull/4314) (thanks [@dangush](https://github.com/dangush)!)
- Generate per-PR web apps [#4341](https://github.com/rerun-io/rerun/pull/4341)

#### 🧑‍💻 Dev-experience
- Simple logging benchmarks for C++ & Rust [#4181](https://github.com/rerun-io/rerun/pull/4181)
- New debug option to show the blueprint in the streams view [#4189](https://github.com/rerun-io/rerun/pull/4189)
- Use pixi over setup scripts on CI + local dev [#4302](https://github.com/rerun-io/rerun/pull/4302)
- Run deploy docs jobs serially [#4232](https://github.com/rerun-io/rerun/pull/4232)
- fix windows test config on main [#4242](https://github.com/rerun-io/rerun/pull/4242)

#### 🗣 Refactors
- `StoreView` -> `StoreSubscriber` [#4234](https://github.com/rerun-io/rerun/pull/4234)
- `DataStore` introduce `StoreEvent`s [#4203](https://github.com/rerun-io/rerun/pull/4203)
- `DataStore` introduce `StoreView`s [#4205](https://github.com/rerun-io/rerun/pull/4205)

## [0.10.1](https://github.com/rerun-io/rerun/compare/0.10.0...0.10.1)

Expand Down
11 changes: 7 additions & 4 deletions RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,15 @@ This document describes the current release and versioning strategy. This strate


## Release Cadence
New Rerun versions are released every two weeks. Sometimes we do out-of-schedule patch releases.
New Rerun versions are released every four weeks. Sometimes we do out-of-schedule patch releases.


## Library versioning and release cadence
Each release include new versions of:
* All rust crates
* The Python SDK
* The Rust SDK
* All rust crates
* The C++ SDK

We use semantic versioning. All versions are increased in lockstep, with a minor version bump each time (`0.1.0`, `0.2.0`, `0.3.0`, …).

Expand Down Expand Up @@ -46,7 +47,7 @@ If we are doing a patch release, we do a branch off of the latest release tag (e
2. ### Create a release branch.

The name should be:
- `release-0.x.y` for final releases.
- `release-0.x.y` for final releases and their release candidates.
- `release-0.x.y-alpha.N` where `N` is incremented from the previous alpha,
or defaulted to `1` if no previous alpha exists.

Expand All @@ -60,7 +61,7 @@ If we are doing a patch release, we do a branch off of the latest release tag (e
- A one-line summary of the release
- A multi-line summary of the release
- A gif showing a major new feature
- Run `git tag -d latest && git fetch --tags ; pip install GitPython && scripts/generate_changelog.py`
- Run `pip install GitPython && scripts/generate_changelog.py`
- Edit PR descriptions/labels to improve the generated changelog
- Copy-paste the results into `CHANGELOG.md`.
- Editorialize the changelog if necessary
Expand All @@ -78,6 +79,8 @@ If we are doing a patch release, we do a branch off of the latest release tag (e

- `rc` if the branch name is `release-x.y.z`.
This will create a pull request for the release, and publish a release candidate.
1
- `final` for the final public release

![Image showing the Run workflow UI. It can be found at https://github.com/rerun-io/rerun/actions/workflows/release.yml](https://github.com/rerun-io/rerun/assets/1665677/6cdc8e7e-c0fc-4cf1-99cb-0749957b8328)

Expand Down
2 changes: 1 addition & 1 deletion crates/re_types_builder/src/codegen/docs/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ fn object_page(reporter: &Reporter, object: &Object, object_map: &ObjectMap) ->
object.name,
object.kind.plural_snake_case(),
object.name,
"?speculative-link", // speculative_marker // TODO(#4267): C++ is not yet released
speculative_marker,
);
putln!(
page,
Expand Down
2 changes: 1 addition & 1 deletion crates/re_viewer/data/quick_start_guides/cpp_connect.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ FetchContent_MakeAvailable(rerun_sdk)
This will download a bundle with pre-built Rerun C static libraries for most desktop platforms,
all Rerun C++ sources and headers, as well as CMake build instructions for them.
By default this will in turn download & build [Apache Arrow](https://arrow.apache.org/)'s C++ library which is required to build the Rerun C++.
See [Install arrow-cpp](https://ref.rerun.io/docs/cpp/latest/md__arrow__cpp__install.html?speculative-link) to learn more about this step and how to use an existing install.
To learn more about how Rerun's CMake script can be configured, see [CMake Setup in Detail](https://ref.rerun.io/docs/cpp/stable/md__2home_2runner_2work_2rerun_2rerun_2rerun__cpp_2cmake__setup__in__detail.html) in the C++ reference documentation.

Make sure you link with `rerun_sdk`:
```cmake
Expand Down
6 changes: 3 additions & 3 deletions docs/content/getting-started/cpp.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ FetchContent_MakeAvailable(rerun_sdk)
This will download a bundle with pre-built Rerun C static libraries for most desktop platforms,
all Rerun C++ sources and headers, as well as CMake build instructions for them.
By default this will in turn download & build [Apache Arrow](https://arrow.apache.org/)'s C++ library which is required to build the Rerun C++.
See [Install arrow-cpp](https://ref.rerun.io/docs/cpp/latest/md__arrow__cpp__install.html?speculative-link) to learn more about this step and how to use an existing install.
See [Install arrow-cpp](https://ref.rerun.io/docs/cpp/stable/md__2home_2runner_2work_2rerun_2rerun_2rerun__cpp_2arrow__cpp__install.html) to learn more about this step and how to use an existing install.

Currently, Rerun SDK works with C++17 or newer, so you need to add this property to your target:

Expand Down Expand Up @@ -129,7 +129,7 @@ Rerun tick and log our first non-trivial dataset.
If you'd rather learn from examples, check out the [example gallery](/examples) for some more realistic examples, or browse the [Types](../reference/types.md) section for more simple examples of how to use the main datatypes.
There's also a stand-alone example that shows [interop with Eigen and OpenCV](https://github.com/rerun-io/cpp-example-opencv-eigen).

To learn more about how to work with your own types, check the [Custom Collection Adapter](https://github.com/rerun-io/rerun/tree/latest/examples/cpp/custom_collection_adapter?speculative-link) example on how to zero-copy adapt to Rerun types
To learn more about how to work with your own types, check the [Custom Collection Adapter](https://github.com/rerun-io/rerun/tree/latest/examples/cpp/custom_collection_adapter) example on how to zero-copy adapt to Rerun types
and the [Use custom data](../howto/extend/custom-data.md) page for completely custom types.

To learn more about how to configure the C++ SDK's CMake file, check [CMake Setup in Detail](https://ref.rerun.io/docs/cpp/latest/md__cmake__setup__in__detail.html?speculative-link) .
To learn more about how to configure the C++ SDK's CMake file, check [CMake Setup in Detail](https://ref.rerun.io/docs/cpp/stable/md__2home_2runner_2work_2rerun_2rerun_2rerun__cpp_2cmake__setup__in__detail.html).
3 changes: 2 additions & 1 deletion docs/content/getting-started/logging-cpp.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ You should have already [installed the viewer](installing-viewer.md).

We assume you have a working C++ toolchain and are using `CMake` to build your project. For this example
we will let Rerun download build [Apache Arrow](https://arrow.apache.org/)'s C++ library itself.
See [Install arrow-cpp](https://ref.rerun.io/docs/cpp/latest/md__arrow__cpp__install.html?speculative-link) to learn more about this step and how to use an existing install.
To learn more about how Rerun's CMake script can be configured, see [CMake Setup in Detail](https://ref.rerun.io/docs/cpp/stable/md__2home_2runner_2work_2rerun_2rerun_2rerun__cpp_2cmake__setup__in__detail.html) in the C++ reference documentation.


## Setting up your CMakeLists.txt

Expand Down
4 changes: 2 additions & 2 deletions docs/content/getting-started/logging-python.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ archetypes altogether.

For more information on how the rerun data model works, refer to our section on [Entities and Components](../concepts/entity-component.md).

Our [Python SDK](https://ref.rerun.io/docs/python) integrates with the rest of the Python ecosystem: the points and colors returned by [`build_color_spiral`](https://ref.rerun.io/docs/python/stable/common/utilities/?speculative-link#rerun.utilities.data.build_color_spiral) in this example are vanilla `numpy` arrays.
Our [Python SDK](https://ref.rerun.io/docs/python) integrates with the rest of the Python ecosystem: the points and colors returned by [`build_color_spiral`](https://ref.rerun.io/docs/python/stable/common/demo_utilities/#rerun.utilities.data.build_color_spiral) in this example are vanilla `numpy` arrays.
Rerun takes care of mapping those arrays to actual Rerun components depending on the context (e.g. we're calling [`rr.Points3D`](https://ref.rerun.io/docs/python/stable/common/archetypes/#rerun.archetypes.Points3D) in this case).

### Entities & hierarchies
Expand Down Expand Up @@ -174,7 +174,7 @@ rr.log(
)
```

Once again, although we are getting fancier and fancier with our [`numpy` incantations](https://ref.rerun.io/docs/python/stable/common/utilities/?speculative-link#rerun.utilities.util.bounce_lerp),
Once again, although we are getting fancier and fancier with our [`numpy` incantations](https://ref.rerun.io/docs/python/stable/common/demo_utilities/#rerun.utilities.util.bounce_lerp),
there is nothing new here: it's all about building out `numpy` arrays and feeding them to the Rerun API.

<picture>
Expand Down
2 changes: 1 addition & 1 deletion docs/content/getting-started/rust.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Add the following code to your `main.rs`
use rerun::{demo_util::grid, external::glam};

fn main() -> Result<(), Box<dyn std::error::Error>> {
let rec = rerun::RecordingStreamBuilder::new("rerun_example_minimal").spawn(None)?;
let rec = rerun::RecordingStreamBuilder::new("rerun_example_minimal").spawn()?;

let points = grid(glam::Vec3::splat(-10.0), glam::Vec3::splat(10.0), 10);
let colors = grid(glam::Vec3::ZERO, glam::Vec3::splat(255.0), 10)
Expand Down
2 changes: 1 addition & 1 deletion docs/content/reference/cpp.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: 🌊 C++ APIs
order: 9
redirect: https://ref.rerun.io/docs/cpp?speculative-link
redirect: https://ref.rerun.io/docs/cpp
---

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading