Skip to content

Release 0.31.4#12739

Open
rerun-bot wants to merge 45 commits into
mainfrom
prepare-release-0.31.4
Open

Release 0.31.4#12739
rerun-bot wants to merge 45 commits into
mainfrom
prepare-release-0.31.4

Conversation

@rerun-bot
Copy link
Copy Markdown
Collaborator

@rerun-bot rerun-bot commented Apr 28, 2026

Next steps

  • Test the release

  • For alpha releases:

    • If a GH release should be published for this alpha (give extra love to alphas deployed to Rerun Cloud or when external testing is required):
      • Create the GitHub release manually from the UI
      • Stretch goal: generate a raw changelog and add it to the GH release with this disclaimer:
        DISCLAIMER: This is an unreviewed, automatically generated changelog. We only provide fully reviewed changelogs for final releases.
    • Merge or close the release PR
      • IFF the release job succeeds and the link checker is happy, you may merge the PR.
      • Otherwise, close the PR without merging. Cherrypick any interesting commit to main, but not the version bump one (it would introduce bad links).
  • For non-alpha releases:

    • For any added commits, run the release workflow in 'rc' mode again
    • After testing, ensure that this PR is mergeable to main, then run the release workflow in 'release' mode
    • Once the final release workflow finishes it will create a GitHub release for you. Then:
      • Sanity check the build artifacts:
        • pip install: does it install and run?
        • cargo install of cli tool: does it install and run?
        • C++ SDK zip: does it contain rerun_c for all platforms?
      • Edit and publish the GitHub release:
        • Do NOT create a GitHub release draft yourself! Let the release job do it.
        • Populate the release with the changelog and a nice header video/picture
        • Make sure Set as latest release is checked
        • Click Publish release
        • Once published, the release assets will sync to it automatically.
      • Update the google colab notebooks to install this version and re-execute the notebook.
      • Release a new version of gradio (@oxkitsune, @jprochazk)
      • Create a new branch from the prepare-release branch, rebase that one on main and sync it to reality so it can be merged.
      • (A few hours later) Check on the conda feedstock PR (ping Antoine, Nick and/or Jeremy in necessary)
  • Tests

    • Windows
    • Linux
    • MacOS

IsseW and others added 30 commits March 27, 2026 17:45
### Related
rerun-io/reality#94

### What
Groups collision geometry entity paths by geometry type. This makes it
easier to toggle the different primitive types vs meshes in large
models.

Before:

https://github.com/user-attachments/assets/3e804002-14eb-4d65-b20b-052fdc9371f8

After:

https://github.com/user-attachments/assets/aa36c809-bad4-46b6-a9da-d0687fcc53c9

### Testing
Manually convert droid with this branch.

### Compatibility
This will change the entity path hierarchy for people using our default
urdf loader moving forward but the named frames won't change.

Source-Ref: f5658bf9ab2f0007dbebb677cc3d1ae6988d94d5
### Related

https://discord.com/channels/1062300748202921994/1075873257124810852/1488203192914280630

### What
I still don't really understand how this change happened the first time
but adding mypy at least should help prevent this in the future.
I've added this as another example why we should have someone paying
more attention to python.

Source-Ref: 41e104404cc94df3bb7e3a6da800f4c612db570b
Our endpoint for the search index of our docs has changed. After a
redeploy search should work again on our website.

Source-Ref: 1fea73f8f8fd0ebe1bdc19f5bbd5eb2152b62ee3
Merges the list of supported decoders, lenses etc from `re_mcap` and
`re_data_loader`.

`foxglove` was missing from the CLI help (but still running with
defaults).

This is a bugfix. Improving the (internal/public) naming /
categorization of the decoders & lenses is out of scope for this PR.

Source-Ref: 2cbef56de7967cf6e57a300b3bf10b835f9180a6
<!--
Thank you for filing a pull request! We kindly ask you to:

1. Fill out this pull request template below, to make the review smoother.
2. Enable edits to your branch by our maintainers. This helps us to get your branch ready to merge. See here for more details:
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork
-->

### Related

Nothing
<!--
Include links to any related issues/PRs in a bulleted list, for example:
* Closes #1234
* Part of #1337
-->

### What

Just saw a typo, fixed a typo. Made sure that it's accurate in the code.
<!--
Make sure the PR title and labels are set to maximize their usefulness for the CHANGELOG,
and our `git log`.

If you have noticed any breaking changes, include them in the migration guide.

We track various metrics at <https://build.rerun.io>.

For maintainers:
* To run all checks from `main`, comment on the PR with `@rerun-bot full-check`.
* To deploy documentation changes immediately after merging this PR, add the `deploy docs` label.

For more details check the PR section on <https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md>.
-->

Source-Ref: 3a2080980539bdc71ae183cb417961bbd9e4bb51
### Related

- follow up to #12669

### What

That previous PR added the missing extensionless versions of the
signed-in/out pages but it didn't work since the right content type
wasn't set (apparently gsutil determines that based on the extension).
This one uploads them with the right header. The extensionless versions
are always uploaded to the root. Since these are not versioned, this is
fine. We just need to keep backwards compatibility in mind.

### Testing

Needs to be tested after being deployed.

Source-Ref: 5c1ed48b62be82465884000ec58a388f249f42e0
### Related

Fixes ci, broke in #1465

### What

Adds missing setup gcloud step

Source-Ref: 39700274d75bac3ea2941f5fcb3adf665edc0695
* Closes RR-4260

Instead of scaling UI points based on euclidean distance from the
camera, scaled based on distance along the camera forward axis.

A lot of snapshots were updated as part of this, but I think they all
look better.

<img width="400" height="300" alt="image"
src="https://github.com/user-attachments/assets/2adfa48f-c3e2-41ce-abb9-70d64ea68991"
/>

to

<img width="400" height="300" alt="image"
src="https://github.com/user-attachments/assets/d3d1e192-23b2-4eaf-bf88-93e1e2680850"
/>

for points with the same defined size.

(The size of the points line up with the size we logged in the second
image)

---------

Source-Ref: a8c75ecf4bc040ef35337166e513852f56a7c191
Co-authored-by: Michael Grupp <michael@rerun.io>
### Related

- this broke in
https://github.com/rerun-io/rerun/pull/11440/changes#diff-c1692cebd12ae18388823ecd8da2a92b5412e7af742a5290aaa60313f1c9128dR17-R20

### What

This was really confusing me when I was testing during the wasm bindgen
update.

Claudes first fix was to add chaining to the api, which I though was
neat, but there also is no other chaining api in that file so I wasn't
sure if that would make sense.

### Testing

Viewer shows up now.

Source-Ref: f389d9b501353f6cd26f9d946e3111b0291599d7
- Fixes an issue that caused the error "Failed to add all video stream
samples from chunk" to be spammed, because after a chunk interleaved
samples had been gc'd. And adds a regression test for this case.
- Removes a debug panic with an incorrect assumption. Video stream cache
can fetch a root that was split on ingestion and deliberately does so
when missing chunks. Then we hit this debug assert when a split chunk
has been gc'd and is then required again, but we still have some splits
loaded.

Source-Ref: a0c7a81569b161a3edc7fd22ded8bb91dec3e732
### Related

- fixes
https://linear.app/rerun/issue/RR-3974/wasm-compilation-failure-in-some-browsers

### What

This inlines the wasm size in the generated js code and uses it to show
a progress bar and confirm the downloaded size to show a proper error in
case not all data was transmitted.

Since the size is inlined, this will work for all users of rerun-js, and
doesn't need a special hosting setup to transfer the size via a custom
header (that's how it's currently done for the rerun.io viewer).

Progress and improved error:

https://github.com/user-attachments/assets/45ef6996-ad6c-48e0-a8ec-e6a570681eff

It still loads if for some reason the WASM_SIZE const is not set:

https://github.com/user-attachments/assets/68ce97db-5c69-4c96-9666-4d3f643a2b14

### Testing

Tested locally with the rerun-js viewer and the dataplatform viewer.

### Compatibility

No breaking changes.

Source-Ref: 524326579ed312205ef2e824b144751d76cbe1c8
### Related
- closes https://linear.app/rerun/issue/RR-4267/auth-in-js-package

### What

Implements a new login option on rerun-js. By default this is not set
and will hide the login buttons in the viewer. Token auth can still be
used.
If set, the redirect url and signed out url needs to be hosted with the
viewer (depending on how the customer hosts rerun-js) and needs to pass
these urls in the login option.
I decided to make the urls a required arg, otherwise the user might just
set `login: true` and be confused why it doesn't work. Making the urls
configurable is also more flexible, e.g. if they host the viewer on a
subpath or /signed-in is already used by their web app.

### Testing

Tested locally, login works on pixi run rerun-web, and testing rerun-js
without login hid the button as expected:

<img width="421" height="359" alt="image"
src="https://github.com/user-attachments/assets/c3e30249-9548-4059-b4f6-0aa70759e6c7"
/>

### Compatibility

Removes the login button for rerun-js users, while it was shown
previously. But since it was broken before this doesn't really break
compatibility.

Source-Ref: 5193d4f0dea98617d1a134fb7866f881ec03096b
### Related

* Closes RR-4311
* Introduced by #1175

### What

We used to only test for view time ranges in 2D, which is why we didn't
realize the regression after speeding up 3D point clouds.

This fixes the regression and adds 3D test cases.

### Testing

> [!IMPORTANT]
> The snapshot test in the commits show the difference.

---------

Source-Ref: 91867b3c2d4257b308075a4b6b8d4d1d08ed2e67
Co-authored-by: ntjohnson1 <24689722+ntjohnson1@users.noreply.github.com>
rerun-bot and others added 14 commits April 8, 2026 08:11
If a `CoordinateFrame` component is specified with an empty string frame
ID, we can't use it meaningfully. It explicitly opts into a named
coordinate frame, but the frame name is empty. So far, we ended up
treating `""` as a transform root.

- improve documentation (so far: no docu about empty string special
case)
- improve warning/error (logged once + reported in selection panel)
- don't treat it as a transform root
(avoids also triggering the debug-assert observed in the ticket linked
below)

Falling back to implicit transform relationship is __not__ a viable
alternative. The presence of a `CoordinateFrame` indicates that implicit
is __not__ desired, and we should also not mix concepts e.g. for
ROS/MCAP (see link below).

- #12718
- context on why falling back to implicit would be bad:
#12663 (comment)

(see repro MCAP I attached to the linked ticket)
<img width="1714" height="1027" alt="image"
src="https://github.com/user-attachments/assets/f8bc0e03-6817-4509-a257-3c593f3dfd58"
/>

Only improves this special case. Existing other use cases aren't
affected and their tests should pass.

Source-Ref: 1d8a66a045dd1bcfd68e3120461dc9115eba3944
### Related

* Closes RR-4331

### What

The active recordings time control should be used here, not the store
context's time control.

Source-Ref: 8293dd58c665028b37ddbd631df69fd3016c98b4
<!--
Thank you for filing a pull request! We kindly ask you to:

1. Fill out this pull request template below, to make the review smoother.
2. Enable edits to your branch by our maintainers. This helps us to get your branch ready to merge. See here for more details:
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork
-->

### Related

Closes #12699

<!--
Include links to any related issues/PRs in a bulleted list, for example:
* Closes #1234
* Part of #1337
-->

### What

This change removes what I believe to be very confusing behavior for the spacebar that constantly trips me up. While not a large sample size, I asked my coworkers if this also bothered them, and the common response I got was "yes this is confusing, but I've learned to never press spacebar at any point." For whatever reason, I haven't been able to learn that, and so I kept losing my location in the timeline.

This change does not add a way to get to following mode, because it's already been added since the original discussion happened: Alt+→

I removed a big explanation comment that justified the current behavior, if you deem that there should be a replacement comment, I can add one.

<!--
Make sure the PR title and labels are set to maximize their usefulness for the CHANGELOG,
and our `git log`.

If you have noticed any breaking changes, include them in the migration guide.

We track various metrics at <https://build.rerun.io>.

For maintainers:
* To run all checks from `main`, comment on the PR with `@rerun-bot full-check`.
* To deploy documentation changes immediately after merging this PR, add the `deploy docs` label.

For more details check the PR section on <https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md>.
-->

Source-Ref: b807d6067a2afe576126ee4154e07983e1a60283
### Related

- follow up of rerun-io/reality#1339

### What

A datafusion minor was released with a fix for the above issue, removing
the need of the patch.

### Testing

Not tested yet

### Compatibility

No breaking changes

Source-Ref: 47752d06d6be7e327c7a9a58c9b719e607f090d0
Source-Ref: b5831e0c94878bce72a1501dee77522b7e0cfb68
(cherry picked from commit a312a99)
<!--
Thank you for filing a pull request! We kindly ask you to:

1. Fill out this pull request template below, to make the review smoother.
2. Enable edits to your branch by our maintainers. This helps us to get your branch ready to merge. See here for more details:
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork
-->

### Related

<!--
Include links to any related issues/PRs in a bulleted list, for example:
* Closes #1234
* Part of #1337
-->
Closes #12728

### What

<!--
Make sure the PR title and labels are set to maximize their usefulness for the CHANGELOG,
and our `git log`.

If you have noticed any breaking changes, include them in the migration guide.

We track various metrics at <https://build.rerun.io>.

For maintainers:
* To run all checks from `main`, comment on the PR with `@rerun-bot full-check`.
* To deploy documentation changes immediately after merging this PR, add the `deploy docs` label.

For more details check the PR section on <https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md>.
-->
Add `follow_if_http` support to `@rerun-io/web-viewer-react`.

This updates the React wrapper so the `follow_if_http` prop is passed through to the underlying web viewer when opening HTTP `.rrd` sources.

Source-Ref: 548483a313c6bae788594f287be764026d9c5044
(cherry picked from commit 93c4202)
### Related

* Closes RR-4153.
* Closes RR-4365.
* Closes RR-4366.
* Follow-up RR-4404.

### What

We used to only call `on_new_store` when observing a `LogMsg`, within
`receive_log_msg`. `on_new_store` makes sure the opening of a recording
is properly handled, but `DataSourceMessage::RrdManifest*` can also lead
to the creation of new stores. This PR makes sure that the
`on_new_store` is called for these message types too.

In addition, we only call `go_to_dataset_data` if we observe a recording
log message, which in turn sends time commands, which can by accident
create stores again without book-keeping, via
`load_blueprint_and_caches` in `run_system_command`.

Because we now setup the store correctly with all the required
book-keeping, the default blueprint is now properly handled as well.

Source-Ref: 18c4737ca1d092de010444920b64637f650e906e
### Related

* Fixes #12736

### What

We gated on `has_data` for schema updates. Since the schema doesn't
change later on that's just wrong since we have no way of knowing when
there _is_ data by just looking at the schema updates.
Instead of making this needlessly complicated I figured that the
presence of (e.g.) empty box arrays should still be visualizable since
clearly there's an intent of showing boxes!
(note that we show empty arrays on required components poorly right now
in the ui, but that's for another time!)

Source-Ref: 5ac003e8cadf92da7c1f9f439f84127c1e1a19cb
Source-Ref: 910afe08825443523cd9f1d02459926e1f6e539e
@rerun-bot rerun-bot added ⛴ release Related to shipping or publishing exclude from changelog PRs with this won't show up in CHANGELOG.md labels Apr 28, 2026
@rerun-bot
Copy link
Copy Markdown
Collaborator Author

Version 0.31.4 published successfully.

artifact install
web app
wheels pip install rerun-sdk==0.31.4
crates cargo install rerun-cli@0.31.4 --locked
npm npm install @rerun-io/web-viewer@0.31.4
docs
py docs
rs docs
cpp_sdk zip

@rerun-bot
Copy link
Copy Markdown
Collaborator Author

The GitHub release draft for 0.31.4 can be found in the release list.

Add a description, changelog, and a nice header video/picture, then click 'Publish release'.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

exclude from changelog PRs with this won't show up in CHANGELOG.md ⛴ release Related to shipping or publishing

Projects

None yet

Development

Successfully merging this pull request may close these issues.