Skip to content

Commit

Permalink
v0.0.1 of DepthaiViewer, WIP (#1)
Browse files Browse the repository at this point in the history
* node graph scaffolding and a bit of depthai integration

* remove import

* left, right  + depth

* fix fps sliders for mono cams

* partial refactor, partially added support for device selection.

* pc support + currently selected device fixes

* reafactor subscriptions to api, doesn't work too well, trouble with syncing the ui with the backend

* Partially migrated to websockets for the api

* finish moving to websockets for the config api

* fix issues after merge, retry websocket connections

* fix ws thread not exiting

* sleep for 1 sec before trying to reconnect

* Ai support + imu support + rotate camera + bug fixes (#9)

* ai support + update pipeline on device select

* quick fix depth

* set subs when selecting device

* rename to Depthai Viewer, use changed() for config ui, disable ui when device not selected

* added age gender detection

* added mobilenet support

* pointcloud support

* Toggle subs from visible (#4)

* very bad implementation of toggling subscriptions based on space view visibility TODO: less cloning and stuff

* better implementation and actually seems to work

* fix windows not resizing properly when size gets smaller

* fix issues with 3d when resizing scene bbox, only force 2d to always have the size of self.scene_bbox

* Nuked Subscriptions struct, just use Vec<ChannelId>, much nicer, much better aswell, also fixed subscriptions for channels that need some time to actually show up, it all feels a bit hacky tho

* Toggle subs from visible (#5)

* very bad implementation of toggling subscriptions based on space view visibility TODO: less cloning and stuff

* better implementation and actually seems to work

* fix windows not resizing properly when size gets smaller

* fix issues with 3d when resizing scene bbox, only force 2d to always have the size of self.scene_bbox

* Nuked Subscriptions struct, just use Vec<ChannelId>, much nicer, much better aswell, also fixed subscriptions for channels that need some time to actually show up, it all feels a bit hacky tho

* fix incorrect despawn of entity paths

* remove todo comment

* Fix ws not sending messages, fix stutter every 2s (#6)

* very bad implementation of toggling subscriptions based on space view visibility TODO: less cloning and stuff

* better implementation and actually seems to work

* fix windows not resizing properly when size gets smaller

* fix issues with 3d when resizing scene bbox, only force 2d to always have the size of self.scene_bbox

* Nuked Subscriptions struct, just use Vec<ChannelId>, much nicer, much better aswell, also fixed subscriptions for channels that need some time to actually show up, it all feels a bit hacky tho

* fix incorrect despawn of entity paths

* remove todo comment

* error handling

* fix websocket not sending pipeline, hotfix more or less might keep

* change back to unbounded

* Imu support (#8)

* add imu logging, exclude it from regular space views

* fix imu logging

* POC imu plotting

* Imu accelerometer and gyroscope plotting

* add orientation to imu log, make device id a String

* fix imu charts layout

* imu log add magnetometer

* fix right panel ui as much as it makes sense to fix rn

* sadly idk how to create Option::None in pyarrow for the magnetometer field

* imu logging fixed, magnetometer value is now None when not logged

* fix plot scrolling

* Merge upstream (#10)

* `arrow2_convert` primitive (de)serialization benchmarks (rerun-io#1742)

* arrow2_convert primitive benchmarks

* addressing PR comments

* Fix logged obb being displayed with half of the requested size (rerun-io#1749)

* benchmarks for common vector ops across `smallvec`/`tinyvec`/std (rerun-io#1747)

* benchmarks for common vector ops

* handle N=1

* Tracked 3D cameras lead now to on-hover rays in other space views that show the same camera but don't track it. (rerun-io#1751)

In the same way as a 2D scene causes a on-hover ray in all space views that contain the space camera at which the 2D view "sits".

* Improve dealing with raw buffers for texture read/write (rerun-io#1744)

* Replace TextureRowDataInfo with the more versatile Texture2DBufferInfo

* comment & naming fixes

* `arrow2` erased refcounted clones benchmarks (rerun-io#1745)

* arrow2 erased refcounted clone benchmarks

* lint

* addressing PR comments

* dude

* `arrow2` estimated_bytes_size benchmarks (rerun-io#1743)

* arrow2 estimated_bytes_size benchmarks

* cleanup

* Fix crash when trying to do picking on depth clouds

* Readback depth from GPU picking (rerun-io#1752)

* gpu picking in the viewer picks up depth now
* WebGL workarounds

* Add new ARKitScenes example (rerun-io#1538)

Co-authored-by: Nikolaus West <[email protected]>
Co-authored-by: Emil Ernerfeldt <[email protected]>

* Fix log_obb usage (rerun-io#1761)

* Make sure all log_obb uses uses half_size correctly

* Remove outdated link from README

* Fix docstring of save

* Force named arguments of log_scalar

* Add link to --memory-limit docs

* update ros example

* Python SDK: document that we also accept colors in 0-1 floats (rerun-io#1740)

* Python SDK: document that we also accept colors in 0-1 floats

* Assume float colors to be in gamma-space, and document that

* Update arkitscenes example

* Fix bug

* typo

* py-format

* Collapse space-view by default if there is only one child (rerun-io#1762)

* Always create the log_time timeline (rerun-io#1763)

* Columnar timepoints in data tables and during transport (rerun-io#1767)

* columnar timepoints

* self review

* Fix undo/redo selection shortcut/action changing selection history without changing selection (rerun-io#1765)

* Fix undo/redo selection shortcut/action changing selection history without changing selection
Fixes rerun-io#1172

* typo fix

* Don't initialize an SDK session if we are only going to be launching the app (rerun-io#1768)

* Allow torch tensors for log_rigid3 (rerun-io#1769)

* Option to show scene bounding box (rerun-io#1770)

* Include depth clouds in bounding box calculation

* Don't wrap text when showing bbox in ui

* Handle projective transforms

* Nicer selection view: don't wrap second column too early

* Add checkbox to show the scene bounding box

* Fix a whole lot of crashes, all at once (rerun-io#1780)

* Add typing_extensions to requirements-doc.txt (rerun-io#1786)

* auto_color class-ids if they are present (rerun-io#1783)

* auto_color class-ids if they are present

* Update log line in segmentation demo

* Avoid tuple structs

* Don't run 3rd party bench suites on CI (rerun-io#1787)

* dont run 3rd party bench suites on CI

* typo

* and other annoyances

* Use copilot markers in PR template (rerun-io#1784)

* Use copilot markers in PR template

* remove poem

Co-authored-by: Clement Rey <[email protected]>

---------

Co-authored-by: Clement Rey <[email protected]>

* re_format: barebone support for custom formatting (rerun-io#1776)

* implement barebone support for custom formatting and apply to Tuid

* unwrap

* <ERR> rather than []

* use re_tuid

* Always send recording_id as part of LogMsg (rerun-io#1778)

* Always send recording_id as part of LogMsg

* Rename build_chunk_from_components -> build_data_table_from_components

* Don't make RecordingInfo optional

* Always default the recording id

* Log an error if we hit the initialization issue

* Refactor: Add new helper crate `re_log_encoding` (rerun-io#1772)

* CI: Check `rerun` with --no-default features and/or with --features sdk

* Create a new helper crate re_transport containing stream_rrd_from_http

* Fix warnings

* Move file sink to re_transport

* wasm compilation fix

* Move LogMsg encoding/decoding into re_transport

* Fix typo

* Fix web build

* Fix tests

* Remove a lot of unused dependencies with `cargo machete`

* Build fix

* Clarify

* Rename the crate to re_log_encoding

* better docstring

Co-authored-by: Jeremy Leibs <[email protected]>

* better readme

Co-authored-by: Jeremy Leibs <[email protected]>

---------

Co-authored-by: Jeremy Leibs <[email protected]>

* New example code for facebook research segment anything (rerun-io#1788)

* New example code for facebook research segment anything

* Add segmentation workaround for users still on 0.4.0

* Images should use class-id as label

* Add an alternative tensor-based view

* Implement `re_tuid::Tuid::random()` on web (rerun-io#1796)

* Implement `re_tuid::Tuid::random()` on web

* Fix bad error message

* ci: fix benchmarks (rerun-io#1799)

* workflow: just run --all

* datastore: skip bucket permutations etc on CI

* i give up, just replace re_log_types by re_log_encoding

* Add `minimal_options` example (`RerunArgs`) (rerun-io#1773)

* Allows connecting to remote server through rerun's RerunArgs.

Co-authored-by: Clement Rey <[email protected]>

* Add `pacman` support to `setup_web.sh` (rerun-io#1797)

Co-authored-by: Clement Rey <[email protected]>

* fix ci (cargo-deny): cargo update -p crossbeam-channel (rerun-io#1806)

* Compile with `panic = "abort"` (rerun-io#1813)

* Compile with `panic = "abort"`

This PR sets `panic = "abort"` for both debug and release builds.

This cuts down the `rerun` binary size in release builds from
29.9 MB to 22.7 MB - a 25% reduction!

## Details
The default panic behavior in Rust is to unwind the stack.
This leads to a lot of extra code bloat, and some missed
opportunities for optimization.

The benefit is that one can let a thread die without crashing the whole
application, and one can use `std::panic::catch_unwind` as a kind of
try-catch block.

We don't make use of these features at all (at least not intentionally),
and so are paying a cost for something we don't need.

I would also argue that a panic SHOULD lead to a hard crash unless
you are building an Erlang-like robust actor system where you use
defensive programming to protect against programmer errors
(all panics are programmer errors - user errors should use `Result`).

* Quiet clippy

* Add `rerun --strict`: crash if any warning or error is logged (rerun-io#1812)

* Add `rerun --strict`: crash if any warning or error is logged

Part of rerun-io#1483

* Can't doc-test private functions

* Refactor: Remove `TensorTrait` (rerun-io#1819)

* Refactor: Remove `TensorTrait`

We don't need it anymore

* End-to-end testing of python logging -> store ingestion (rerun-io#1817)

* Sort the arguments to `rerun`

* Pass on `LogMsg::Goodbye` just like any other message

* Add `rerun --test-receive`

* `just py-build --quiet` is now possible

* Add scripts/run_python_e2e_test.py

* replace `cargo r -p rerun` with `python3 -m rerun`

* lint and explain choice of examples

* Add to CI

* check returncode

* Fix e2e test on CI: Don't try to re-build rerun-sdk (rerun-io#1821)

* Use gpu picking for points, streamline/share picking code some more (rerun-io#1814)

* use gpu picking for picking points
* gpu based picking no longer works like a fallback but integrates with other picking sources
* fix incorrect cursor rounding for picking
* refactor picking context to be a pub struct with exposed state
* unify ui picking method for 2d & 3d space views
* less indentation for picking method
* picking rect size is dynamically chosen
* fix accidental z scaling in projection correction for picking & make cropped_projection_from_projection easier to read

* CI: install pip requirements for Python e2e test

* Process 2d points always in batches (rerun-io#1820)

* Fix CI syntax error

* New option to disable persistent storage (rerun-io#1825)

* New option to disable persistent storage

* New API to reset_time (rerun-io#1826)

* Datastore revamp 1: new indexing model & core datastructures (rerun-io#1727)

* Datastore revamp 2: serialization & formatting (rerun-io#1735)

* Datastore revamp 3: efficient incremental stats (rerun-io#1739)

* Datastore revamp 4: sunset `MsgId` (rerun-io#1785)

* Datastore revamp 5: (rerun-io#1791)

* Datastore revamp 6: sunset `LogMsg` storage + save store to disk (rerun-io#1795)

* Datastore revamp 7: garbage collection (rerun-io#1801)

* Don't assert if inserting a rowid with a matching timepoint does not create a conflict (rerun-io#1832)

* CI: Try installing the correct wheel on CI

* CI: try again with the CI

* re_query: up to date with latest data types and structures (rerun-io#1828)

* No more raw arrays for primary components

* Don't need to carry around component names no more

* Cluster keys are now raw-array-less and _not_ optional anymore

* that is done indeed

* helpers

* datastore: incremental metadata registry stats (rerun-io#1833)

* add profile scopes for stats

* implement incremental metadata registry stats

* lint

* future proofing comment

* RFC: datastore state of the union & end-to-end batching  (rerun-io#1610)

* add batching rfc

* Update design/batching.md

Co-authored-by: Emil Ernerfeldt <[email protected]>

* Update design/batching.md

Co-authored-by: Emil Ernerfeldt <[email protected]>

* Update design/batching.md

Co-authored-by: Emil Ernerfeldt <[email protected]>

* Update design/batching.md

Co-authored-by: Emil Ernerfeldt <[email protected]>

* qa component instances vs. instance keys

* no sticky

* qa are there any special components & non-integer instance keys

* give some clue about cell incompatibility

* temporary constructs

* zstd is already setup

* more planning

* date and links

---------

Co-authored-by: Emil Ernerfeldt <[email protected]>

* Python CI: use bash as shell

* Fix too many points crash (rerun-io#1822)

* Simplify point cloud builder and fix crash on too many points
Fixes rerun-io#1779
* faster point cloud population by not chaining iterators with default values

* Use GPU picking for line(like) primitives, fix `interactive` flags (rerun-io#1829)

* line strip builder no longer has user data, exposes picking id instead (not implemented yet)
* handle interactive object property when evaluating picking code
* take line strip builder directly when building up line draw data
* finish implementing picking for lines
* remove unused iter_strips_with_vertices
* Simplify picking handling now that there are a lot less types. Labels & textured rects are always picked now, fixes rerun-io#1021

* CI: try to fix mac wheel build

* Reduce memory used by staging belts on Web (rerun-io#1836)

In particular this prevents crashing with out of memory on a run-away belt memory usage caused by failure to unmap buffers. A bit concerningly, the fix uses our knowledge of how `wgpu::Device::poll` is broken in the current wgpu version.

I took the opportunity to sharpens the definition of `HardwareTier` a bit.

* CI: only test the x86_64 wheel on macos

* Always flush when we remove a sink (rerun-io#1830)

Whenever we disconnect (or implicitly disconnect by swapping a sink) we should flush the pending messages. Additionally disconnect and flush calls both require releasing the GIL (for the same reason as shutdown previously).

* GPU colormapping, first step (rerun-io#1835)

* Add TextureManager2D::get_or_create_with

* Small code cleanup

* Add code to upload a Tensor to a GPU texture

* Add helper method Tensor::image_height_width_depth

* Minor code cleanup (multiplicative_tint)

* Hook up color textures via the new path

* Refactor: introduce ColormappedTexture

* Start working on an uint sampler

* merge fix

* Dumb colormapping of depth textures!

* Use turbo for depth maps (and single-channel images :grimace:)

* Use grayscale for luminance

* ColorMap -> Colormap

* Apply annotation context colormaps

* Support sint textures too

* cleanup

* merge fix

* Fix RGB images

* More cleanup

* Better error-handlign and nicer error message

* Clean up the SAMPLE_TYPE with constants

* Nicer shader interface

* Better error handling

* Remove dead code

* Self-review cleanup

* Fix bug in shader when sampling sint textures

* Use textureSampleLevel

* Apply a gamma to the image (unused as of now)

* image_height_width_channels

* fix various review comments

* Optimize narrow_f64_to_f32s: avoid one allocation

* Test and handle all tensor dtypes as images (rerun-io#1840)

* Support i64 and u64 tensors

* api_demo: log all image types

* Don't even print out the contents of a tensor

* Handle unfilterable float textures

* fix typo

* py-format

* Simplify is_float_filterable

* Add a helper function pad_and_narrow_and_cast

* Reuse existing image

* Exclude image_tensors demo from default api_demo

* Still run all api demos in e2e test

* pyformat

* Install the rerun-sdk in CI using --no-index and split out linux wheel build to run first. (rerun-io#1838)

* Install the rerun-sdk by the expected version

* Fix comment

* typo

* Use --no-index when installing the rerun wheel

* Use the cargo_version, not the new_version

* Split dependency install into its own step

* Don't use force-reinstall

* Refactor setting of expected_version variable.

* Use bash when setting env

* Always run the linux job first and use its rrds for the other wheels

* GPU tensor colormapping (rerun-io#1841)

* Refactor: introduce struct SliceSelection

* Refactor: use SliceSelection inside of ViewTensorState

* MVP of tensor colormapping on GPU

* Remove old ui code

* Support 64-bit tensors by narrowing to f32

* Allow more colormap options

* Clippy

* Report range errors instead of ignoring them

* Sort colormaps

* Shorten function name

* Create module gpu_bridge

* Move some code around

* Simnplify API

* Create ViewBuilder::new

* Fix missing colon in lint.py

* fix typos and formatting

* Disable texture filtering options for tensors for now

* Update docstrings

* Add profile scopes

* ViewBuilder cleanup

* Make ViewBuilder::setup non-Option

* Remove Result from thing that cannot fail

* Fix colormap numbering

* review cleanup

* pass in debug_name

* Unify the `range` function

* typo

* Show previews of colormaps when selecting them (rerun-io#1846)

* Make infallible version of get_or_create_texture

* Show colormap previews in UI

* Spelling

* Implement billinear filtering of textures (rerun-io#1850)

* Implement opt-in billinear filtering of textures

* bilinear

* MVP Support for inline-rendering of Rerun within jupyter notebooks (rerun-io#1798) (rerun-io#1834) (rerun-io#1844)

* Introduce the ability to push an rrd binary via iframe.contentWindow.postMessage
* New API to output the current buffered messages as a cell in jupyter
* Example notebook with the cube demo
* Track that we need to send another recording msg after draining the backlog
* Dynamically resolve the app location based on git commit. Allow override to use self-hosted assets
* Add some crude timeout logic in case the iframe fails to load
* Don't persist app state in notebooks
* Introduce new MemoryRecording for use with Jupyter notebooks (rerun-io#1834)
* Refactor the relationship between the assorted web / websocket servers (rerun-io#1844)
* Rename RemoteViewerServer to WebViewerSink
* CLI arguments for specifying ports
* Proper typing for the ports

* Disable wheel tests for x86_64-apple-darwin (rerun-io#1853)

* Fix typos in notebook readme (rerun-io#1852)

* Fix the python build when running without web_viewer enabled (rerun-io#1856)

* Error instead of expect inside msg_encode. (rerun-io#1857)

* Restore: New API to reset_time (rerun-io#1826) (rerun-io#1854)

* Revert "Implement billinear filtering of textures (rerun-io#1850)" (rerun-io#1859)

This reverts commit d33dab6.

* Add Restart command and keyboard shortcut for moving time to start of timeline (rerun-io#1802)

* Add Restart button to timeline UI. This sets the timeline back to zero.

* Adds Restart Command & Timeline Command

* Adds Ctrl-Shift-Space keyboard modifier

* Remove restart button from timeline UI.

* Use cmd(Key::LeftArrow) as key combo for restart timeline.

* Add TimeControl::restart to restart the current timeline.

* Use this from the kb_shortcut function

* fix some code nits

---------

Co-authored-by: Emil Ernerfeldt <[email protected]>

* Fix shutdown race condition in `re_sdk_comms` client (rerun-io#1861)

* Wait for encoder to shut down before shutting down the other threads

* Remove unused dependencies (rerun-io#1863)

* Gpu picking for depth clouds (rerun-io#1849)

* wip

* allow for hovering depth clouds via gpu picking

* Use `[x, y]: [u32; 2]` as argument

---------

Co-authored-by: Emil Ernerfeldt <[email protected]>

* Remove manual depth projection from car and nyud examples (rerun-io#1869)

* Remove manual depth projection from car and nyud examples

* revert change to cube.ipynb

* revert changes to cube.ipynb

* third times a charm for cube.ipynb

* Improve end-to-end testing slightly (rerun-io#1862)

* CI: Run e2e tests with RUST_LOG=debug

* Move installing of pip packaged from CI to e2e script

* Re-enable bilinear interpolation again (rerun-io#1860)

* Revert "Revert "Implement billinear filtering of textures (rerun-io#1850)" (rerun-io#1859)"

This reverts commit 625d2bd.

* Split rectangle.wgsl into fragme/vertex parts to work around naga bug

* Use GPU colormapping when showing images in the GUI (rerun-io#1865)

* Cleanup: move Default close to the struct definition

* Simplify code: use if-let-else-return

* Simplify code: no need for Arc

* Add EntityDataUi so that the Tensor ui function knows entity path

* Better naming: selection -> item

* Simplify code: no optional tensor stats

* Less use of anyhow

* Use GPU colormapping when showing tensors in GUI

* Link to issue

* Optimize pad_to_four_elements for debug builds

* Refactor: simpler arguments to show_zoomed_image_region_area_outline

* Fix missing meter argument

* Refactor: break up long function

* Less use of Arc

* Pipe annotation context to the hover preview

* Simplify `AnnotationMap::find`

* Use new GPU colormapper for the hover-zoom-in tooltip

* Refactor

* Add helper function for turning a Tensor into an image::DynamicImage

* Fix warning on web builds

* Add helper function `Tensor::could_be_dynamic_image`

* Implement click-to-copy and click-to-save for tensors without egui

* Convert histogram to the new system

* Remove the TensorImageCache

* Fix TODO formatting

* bug fixes and cleanups

* Rename some stuff

* Build-fix

* Simplify some code

* Turn off benchmakrs comment on each PR (rerun-io#1872)

* Refactor: remove `GpuTexture2DHandle::invalid` (rerun-io#1866)

* Refactor TexturedRect

* Remove GpuTexture2DHandle::invalid

* `GpuTexture2DHandle` is always valid

* spacing

* Update enumflags2 to non-yanked version (rerun-io#1874)

* Update enumflags2 to non-yanked version
```
❯ cargo update -p enumflags2
    Updating crates.io index
    Updating enumflags2 v0.7.5 -> v0.7.7
    Updating enumflags2_derive v0.7.4 -> v0.7.7
    Updating proc-macro2 v1.0.47 -> v1.0.56
    Updating quote v1.0.21 -> v1.0.26
      Adding syn v2.0.15
```

Unfortunately this adds the syn v2 dependency for some platforms

* Updating dependencies is a valid label
* cargo deny: check more platforms

* fix stuff broken from merging upstream

---------

Co-authored-by: Clement Rey <[email protected]>
Co-authored-by: benjamin de charmoy <[email protected]>
Co-authored-by: Andreas Reich <[email protected]>
Co-authored-by: Emil Ernerfeldt <[email protected]>
Co-authored-by: Pablo Vela <[email protected]>
Co-authored-by: Nikolaus West <[email protected]>
Co-authored-by: Jeremy Leibs <[email protected]>
Co-authored-by: h3mosphere <[email protected]>
Co-authored-by: Urho Laukkarinen <[email protected]>

* expose depth config, get available sensor resolutions for the selected device

* move removing entities to a place where the removal will always be tried, not just when expanding space view header

* added depth alignment

* added stream enabled buttons

* Depth cloud textures are now cached frame-to-frame (rerun-io#1913)

* Depth cloud textures are now cached frame-to-frame
Simplified logic a bit by enforcing F32 texture conversion (there was a u16 path for native only)

* doc fix

* naming consistency, format check, remove unnecessary scaling

* improve depth cloud texture check

* fixes after merging

* Smooth out scroll wheel input for camera zooming (rerun-io#1920)

* Always spawn instead of fork in multiprocessing example (rerun-io#1922)

* Add `--num-frames` arg to canny (webcam) example (rerun-io#1923)

* fix formatting issues

* rerun format fix

* fix spelling

* lint check fixes

* mypy

* some more lint fixes

* some more fixes for python lint checks

* Collect extra egui features into the main Cargo.toml (rerun-io#1926)

* just rs-run-all

* `just py-run-all-{native|web|rrd}` (rerun-io#1927)

* make all python examples handle unknown arguments gracefully

* just py-run-all-{native|web|rrd}

* bump version

* comment out clang

* Join threads at end of multi-threading example (rerun-io#1934)

* Add argument parsing to the rerun_demo (rerun-io#1925)

* More robust wait for exit condition during .serve() (rerun-io#1939)

* More robust wait for exit condition during .serve()

* lint

* Use zipfile python library instead of `unzip` command in arkitscene (rerun-io#1936)

* Use zipfile python library instead of `unzip` command in arkitscene
Windows doesn't have unzip!

* Nit: import sort order

---------

Co-authored-by: Nikolaus West <[email protected]>

* Fix annotation images sometimes drawn in the background. (rerun-io#1933)

This caused fairly ugly rendering whenever that happened. Also cleaned up redundant image/textured_rect defintions in spatial scene buildup

* Fix backslashes in arkitscene rigid transformation path (rerun-io#1938)

* Fix backslashes in arkitscene rigid transformation path
Should be fixed properly by rerun-io#1937

* Use PosixPath instead of .replace("\\", "/")

---------

Co-authored-by: Nikolaus West <[email protected]>

* Fix hover/select highlights when picking single points in a scene with multiple point clouds (rerun-io#1942)

Batch vertex offset for single highlights wasn't correctly computed. Different parts of the code made different assumptions what offsets referred to

* Fix hovering depth clouds (rerun-io#1943)

We didn't add to `scene.primitives.image`. Instead of adding to this list, it is instead now no longer needed for picking since we can very easily query for tensor again.

* change python workflow for testing purposes, remove windows and macos wheels

* add back one macos so the matrix is valid

* 2.5GB before GC kick in on web (rerun-io#1944)

* change name to depthai-viewer

* change pip install/uninstalls from rerun-sdk to depthai-viewer

* change all occurances of rerun-sdk to depthai-viewer

* change windows runner to windows-latest for now when using my personal gh

* Release `0.5.0` (rerun-io#1919)

* changelog

* 0.5.0-alpha.0

* more changelog

* re_format: fix implicit recursive feature flags

* publish_crates.sh: fix crate ordering

* Join threads at end of multi-threading example (rerun-io#1934)

* Add argument parsing to the rerun_demo (rerun-io#1925)

* More robust wait for exit condition during .serve() (rerun-io#1939)

* More robust wait for exit condition during .serve()

* lint

* Use zipfile python library instead of `unzip` command in arkitscene (rerun-io#1936)

* Use zipfile python library instead of `unzip` command in arkitscene
Windows doesn't have unzip!

* Nit: import sort order

---------

Co-authored-by: Nikolaus West <[email protected]>

* Fix annotation images sometimes drawn in the background. (rerun-io#1933)

This caused fairly ugly rendering whenever that happened. Also cleaned up redundant image/textured_rect defintions in spatial scene buildup

* Fix backslashes in arkitscene rigid transformation path (rerun-io#1938)

* Fix backslashes in arkitscene rigid transformation path
Should be fixed properly by rerun-io#1937

* Use PosixPath instead of .replace("\\", "/")

---------

Co-authored-by: Nikolaus West <[email protected]>

* changelog

* Fix hover/select highlights when picking single points in a scene with multiple point clouds (rerun-io#1942)

Batch vertex offset for single highlights wasn't correctly computed. Different parts of the code made different assumptions what offsets referred to

* changelog

* Fix hovering depth clouds (rerun-io#1943)

We didn't add to `scene.primitives.image`. Instead of adding to this list, it is instead now no longer needed for picking since we can very easily query for tensor again.

* changelog

* 2.5GB before GC kick in on web (rerun-io#1944)

* changelog

* 0.5.0

---------

Co-authored-by: Jeremy Leibs <[email protected]>
Co-authored-by: Andreas Reich <[email protected]>
Co-authored-by: Nikolaus West <[email protected]>

* Fix imu plots scrolling past their container

* fix bottom/top panel sizing after showing the spinner on config setting

* Lint error names in `map_err` (rerun-io#1948)

* Lint: Properly name errors in `map_err`

* Use correct names for errors

* fix config and stats tabs not being able to be viewed at the same time, renamed stats to IMU

* New dispatch-only workflow for running the lint-job (rerun-io#1950)

* Fix secret in dispatch_lint.yml

* Only maintain a single manual-dispatch job for testing workflows

* apply button, have to make it look a bit nicer, but will do that when I fix scrolling in device configuration panel

* Bump hyper version due to RUSTSEC-2023-0034 (rerun-io#1951)

* Add other build parameterizations to manual_dispatch.yml

* Use proper if gates on the manual_dispatch.yml jobs

* Add ability to save cache to manual_disaptch.yml

* Standard case of inputs

* Add manual step for packaging to 'manual_dispatch.yml'

* add back panels when the underlying subscription reappears

* Fix crash for missing class ids causing zero sized texture (rerun-io#1947)

* Fix crash for missing class ids causing zero sized texture
Two things fixed actually:
* texture manager now checks for zero sized texture, this ripples out in a lot more error handling
* class id texture texture handles not having any classes gracefully

* Use Display for all errors

* typo

* Better naming of error

* Better docs and names

* Fix off-by-one error

* some use of `context`, change which error is implicitly converted on texture manager2d

---------

Co-authored-by: Emil Ernerfeldt <[email protected]>

* fixes LR stream subscriptions (maybe breaks panels reappearing after sub is gone) (#15)

* make config ui scrollable, fix padding

* Move clippy_wasm/clippy.toml to under scripts (rerun-io#1949)

* Move clippy_wasm/clippy.toml to under scripts

This is just to clean up the root a bit, and to move it closer
to where it is actually used.

* Fix comment typo

---------

Co-authored-by: Andreas Reich <[email protected]>

* change crate version to 0.6.0-alpha.0 (rerun-io#1952)

* New workflow_dispatch for building wheels for a PR

* initial light mode, luxonis depthai viewer

* Rename build_wheels_for_pr.yml -> manual_build_wheels_for_pr.yml

* Fix run-wasm crash on trying to wait for server (rerun-io#1959)

This ruined my dev experience for re_renderer examples a bit. Not sure what made the previous hack stop working, might be a timing issue. It ended up crashing the `cargo_run_wasm` web server

* Update egui to latest and wgpu to 0.16 (rerun-io#1958)

* update to wgpu 0.16 and egui using this version

* shader fixup for type aliases and rectangle shader

* shader signed/unsigned shenanigans

* more signed/unsigned issues

* fix texture component count

* fix picking layer depth readback crash on web

* patch wgpu

* better texture size estimate

* fix patches

* Handle leaking of prerelease into alpha version (rerun-io#1953)

* Make device config panel remember it's height throughout loading

* hide time panel, make ai model dropdown wider

* Fix incorrect memory usage stats for destroyed on-creation-mapped buffers (rerun-io#1963)

We actually don't have anywhere where we discard this kind of buffer yet, but if we would the stats would be wrong (noticed while doing quick & dirty experiments on the staging belt)

* New manual workflow for running benches

* Introduce new reusable workflow jobs and cleanup manual trigger (rerun-io#1954)

There are 8 reusable workflow "components" that we can use to build different scenarios:

reusable_checks.yml - These are all the checks that run to ensure the code is formatted,
reusable_bench.yml - This job runs the benchmarks to check for performance regressions.
reusable_deploy_docs- This job deploys the python and rust documentation to https://ref.rerun.io
reusable_build_and_test_wheels.yml - This job builds the wheels, runs the
end-to-end test, and produces a sample RRD. The artifacts are accessible via GitHub artifacts, but not otherwise
uploaded anywhere.
reusable_upload_wheels.yml- This job uploads the wheels to google cloud
reusable_build_web.yml - This job builds the wasm artifacts for the web.
reusable_upload_web.yml - This job uploads the web assets to google cloud. By default this
only uploads to: app.rerun.io/commit/<commit>/
reusable_pr_summary.yml - This job updates the PR summary with the results of the CI run.
Example summary can be found at:
https://storage.googleapis.com/rerun-builds/pull_request/1954/index.html
This also introduces a manual_dispatch.yml helper as a convenience for testing these workflows and their different parameterizations.

* New manual workflow for adhoc web builds

* Use new CI workflows for pull-request and merge to main (rerun-io#1955)

on_pull_request.yml includes the following pieces:
 - reusable_checks.yml -- Run all of the lints, code-formatting, tests, etc.
 - reusable_build_and_test_wheels.yml -- Configured in a "minimal" mode with SDK includes end-to-end test and produces an rrd.
 - reusable_build_web.yml -- Verifies we can build the wasm
 - reusable_upload_web.yml -- Uploads the RRD and Wasm to app.rerun.io to confirm the demo works as well as support notebook testing.
 - reusable_pr_summary.yml -- Create a manifest page with a link to the

on_push_main.yml includes the following pieces:
 - reusable_checks.yml -- Run all of the lints, code-formatting, tests, etc.
 - reusable_bench.yml -- Run the benchmarks
 - reusable_build_and_test_wheels.yml -- Builds wheels for all platforms
 - reusable_upload_wheel.yml -- Uploads the all the wheels to gcloud
 - reusable_build_web.yml -- Builds the wasm bundle
 - reusable_upload_web.yml -- Uploads the RRD and Wasm to app.rerun.io
 - reusable_pip_index.yml -- Generates a pip index page which can be used to install packages with, e.g.

* Fix name of on_push_main.yml

* Fix usage of long commit in generate_prerelease_pip_index.py

* Try making pull-request workflows non-concurrent (rerun-io#1970)

* Try making pull-request workflows non-concurrent

* Concurrency groups for push_main as well

* Each sub-workflow needs its own name or they fight

* Another attempt to make jobs non-concurrent on a per-PR basis (rerun-io#1974)

* Another attempt to make jobs non-concurrent on a per-PR basis

* Move concurrency into the reusable job

* Jobs with duplicated instances still need separate concurrency keys based on platform

* Round to nearest color_index when doing color mapping (rerun-io#1969)

* Full (experimental) WebGPU support (rerun-io#1965)

* always build with unstable web sys apis

* Make shader Tint friendly

* expose webgl feature flag on re_renderer & re_viewer

* fix bug link on negative hexadecimal

* hardware tier is now created from wgpu adapter

* sort out build flags for webgpu & document building webviewer

* introduce shader text replacement workarounds to workaround current chrome issue

* latest egui master

* typo fix

* doc fixes, use if cfg! instead of attribute cfg

* move backend to rerun

* If there's a `{{ pr-build-summary }}` in the PR description, update it. (rerun-io#1971)

* If there's a `{{ pr-build-summary }}`  in the PR description, update it.

* Add comment to the PR template

* Add pull-requests permission to pr_summary job

* Run the cube notebook on PR (rerun-io#1972)

* Run the cube notebook on PR

* Add notebooks to the build summary

* Use the new concurrency model

* reformat py files

* reformat

* fix pylint errors

* Add ability to manually run a web build to upload to an adhoc name (rerun-io#1966)

* Add ability to manually run a web build to upload to an adhoc name

* Pass through ADHOC_NAME

* Add a concurrency criteria for the new adhoc job

* Make input description more explicit

* change entity paths

* merged wip albedo colormap into latest depth_cloud

* remove pointclouds generated in sdk

* fix compiler error, trying to compile frame.close for wasm

* Default to albedo texture for depth cloud, added support for mono albedo textures

* restart backend on failure, added oak_cam.device.close seems to really close the cam

* py lint fix

* don't run notebooks

* remove run-notebook dependency

---------

Co-authored-by: Clement Rey <[email protected]>
Co-authored-by: benjamin de charmoy <[email protected]>
Co-authored-by: Andreas Reich <[email protected]>
Co-authored-by: Emil Ernerfeldt <[email protected]>
Co-authored-by: Pablo Vela <[email protected]>
Co-authored-by: Nikolaus West <[email protected]>
Co-authored-by: Jeremy Leibs <[email protected]>
Co-authored-by: h3mosphere <[email protected]>
Co-authored-by: Urho Laukkarinen <[email protected]>
Co-authored-by: Nikolaus West <[email protected]>
  • Loading branch information
11 people authored May 3, 2023
1 parent 0de0edf commit aa076d1
Show file tree
Hide file tree
Showing 226 changed files with 9,821 additions and 3,588 deletions.
16 changes: 16 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,19 @@ run-wasm = "run --release --package run_wasm --"
# Some of our build.rs files only run if this is set,
# so that we don't run them on cargo publish or on users machines.
IS_IN_RERUN_WORKSPACE = "yes"


# [target.x86_64-unknown-linux-gnu]
# linker = "clang"
# rustflags = [
# "-C",
# "link-arg=-fuse-ld=/usr/bin/mold",
# "-C",
# "split-debuginfo=unpacked",
# ]
# web_sys_unstable_apis is required to enable the web_sys clipboard API which egui_web uses,
# https://rustwasm.github.io/wasm-bindgen/api/web_sys/struct.Clipboard.html
# as well as WebGPU apis.
# https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html
[target.wasm32-unknown-unknown]
rustflags = ["--cfg=web_sys_unstable_apis"]
9 changes: 7 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,10 @@ To get an auto-generated PR description you can put "copilot:summary" or "copilo
### What

### Checklist
* [ ] I have read and agree to [Contributor Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and the [Code of Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [ ] I've included a screenshot or gif (if applicable)

- [ ] I have read and agree to [Contributor Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and the [Code of Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
- [ ] I've included a screenshot or gif (if applicable)

<!-- This line will get updated when the PR build summary job finishes. -->

PR Build Summary: {{ pr-build-summary }}
66 changes: 66 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Overview

Our CI workflows make heavy usage of [Reusable Workflows](https://docs.github.com/en/actions/using-workflows/reusing-workflows). These reusable workflows can then be tested manually via the `manual_dispatch.yml` workflow.
Or integrated into CI jobs such has `on_pull_request.yml` or `on_main.yml`.

By convention:
- All reusable workflows start with the `reusable_` prefix.
- All workflows that are triggered via `workflow_dispatch` start with the `manual_` prefix.
- All workflows that are triggered via an event start with the `on_` prefix.
- `on_pull_request` is triggered on pull requests.
- `on_push_main` is triggered on pushes to the main branch.

If you are going to be doing any editing of workflows, the
[VS Code extension](https://marketplace.visualstudio.com/items?itemName=cschleiden.vscode-github-actions)
for GitHub Actions is highly recommended.

## Reusable Workflows
- [reusable_checks.yml](reusable_checks.yml) - These are all the checks that run to ensure the code is formatted,
linted, and tested. This job produces no artifacts other than a pass/fail criteria for the build.
- `SAVE_CACHE` - If true, the rust cache will be saved. Generally we only do this for builds on `main`
- [reusable_bench.yml](reusable_bench.yml) - This job runs the benchmarks to check for performance regressions.
- `SAVE_BENCH` - If true, then the benchmark results are saved to update https://ref.rerun.io/dev/bench/
- [reusable_deploy_docs](reusable_deploy_docs.yml) - This job deploys the python and rust documentation to https://ref.rerun.io
- `PY_DOCS_VERSION_NAME` - The name to use for versioning the python docs. This should generally match the version in
`Cargo.toml`.
- `UPDATE_LATEST` - If true, then the docs will be deployed to `latest/` as well as the versioned directory.
- [reusable_build_and_test_wheels.yml](reusable_build_and_test_wheels.yml) - This job builds the wheels, runs the
end-to-end test, and produces a sample RRD. The artifacts are accessible via GitHub artifacts, but not otherwise
uploaded anywhere.
- `MATURIN_FEATURE_FLAGS` - The feature flags to pass to maturin.
- `PLATFORM` - Which platform to build for: `linux`, `macos-arm`, `macos-intel`, or `windows`.
- `RELEASE_VERSION` - If producing a release, the version number. This must match the version in `Cargo.toml`.
- `RRD_ARTIFACT_NAME` - Intermediate name of the GitHub rrd artifact for passing to `reusable_upload_wheels.yml`
- `SAVE_CACHE` - If true, the rust cache will be saved. Generally we only do this for builds on `main`
- `WHEEL_ARTIFACT_NAME` - Intermediate name of the GitHub wheel artifact for passing to `reusable_upload_wheels.yml`
- [reusable_upload_wheels.yml](reusable_upload_wheels.yml) - This job uploads the wheels to google cloud
- `RRD_ARTIFACT_NAME` - Intermediate name of the GitHub rrd artifact. This should match the name passed to
`reusable_build_and_test_wheels.yml`
- `WHEEL_ARTIFACT_NAME` - Intermediate name of the GitHub wheel artifact. This should match the name passed to
`reusable_build_and_test_wheels.yml`
- [reusable_build_web.yml](reusable_build_web.yml) - This job builds the wasm artifacts for the web.
- `RELEASE_VERSION` - If producing a release, the version number. This must match the version in `Cargo.toml`.
- [reusable_upload_web.yml](reusable_upload_web.yml) - This job uploads the web assets to google cloud. By default this
only uploads to: `app.rerun.io/commit/<commit>/`
- `MARK_PRERELEASE_FOR_MAINLINE` - If true, then the web assets will go to `app.rerun.io/preleease/
- `MARK_TAGGED_VERSION` - If true, then the web assets will go to `app.rerun.io/version/<RELEASE_VERSION>`
- `RELEASE_VERSION` - If producing a release, the version number.
- `RRD_ARTIFACT_NAME` - Intermediate name of the GitHub rrd artifact. This should match the name passed to
`reusable_build_and_test_wheels.yml`
- `UPLOAD_COMMIT_OVERRIDE` - If set, will replace the value of `<commit>`. This is necessary because we want pull
request builds associated with their originating commit, even if the web-build happens on an ephemeral merge-commit.
- [reusable_pr_summary.yml](reusable_pr_summary.yml) - This job updates the PR summary with the results of the CI run.
- This summary can be found at:
`https://build.rerun.io/pr/<PR_NUMBER>/`
- `PR_NUMBER` - The PR number to update. This will generally be set by the `on_pull_request.yml` workflow using:
`${{github.event.pull_request.number}}`

## Manual Workflows
- [manual_dispatch](manual_dispatch.yml) - This workflow is used to manually trigger the assorted reusable workflows for
testing.
- See the workflow file for the list of parameters.
- [manual_build_wheels_for_pr.yml](manual_build_wheels_for_pr.yml) - This workflow can be dispatched on a branch and
will build all of the wheels for the associated pull-request. Uses:
- [reusable_build_and_test_wheels.yml](reusable_build_and_test_wheels.yml)
- [reusable_upload_wheels.yml](reusable_upload_wheels.yml)
- [reusable_pr_summary.yml](reusable_pr_summary.yml)
48 changes: 48 additions & 0 deletions .github/workflows/manual_adhoc_web.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Run an adhoc web build

on:
workflow_dispatch:
inputs:
EXTRA_FLAGS:
type: string
description: 'Extra flags to pass to `re_build_web_viewer`'
required: false
default: ''
ADHOC_NAME:
type: string
description: 'Name of the stored adhoc build'
required: true

jobs:

min-test-wheel:
name: 'Minimum Test Wheel'
# The upload-web job uses the min-test-wheel to get the RRD
uses: ./.github/workflows/reusable_build_and_test_wheels.yml
with:
CONCURRENCY: adhoc-web-${{ github.event.inputs.ADHOC_NAME }}
PLATFORM: linux
MATURIN_FEATURE_FLAGS: '--no-default-features --features extension-module'
WHEEL_ARTIFACT_NAME: ''
RRD_ARTIFACT_NAME: linux-rrd-fast
secrets: inherit

build-web-adhoc:
name: 'Build Web'
uses: ./.github/workflows/reusable_build_web.yml
with:
CONCURRENCY: adhoc-web-${{ github.event.inputs.ADHOC_NAME }}
EXTRA_FLAGS: ${{ github.event.inputs.EXTRA_FLAGS }}
secrets: inherit

upload-web:
name: 'Upload Web'
needs: [min-test-wheel, build-web-adhoc]
uses: ./.github/workflows/reusable_upload_web.yml
with:
CONCURRENCY: adhoc-web-${{ github.event.inputs.ADHOC_NAME }}
MARK_PRERELEASE_FOR_MAINLINE: false
MARK_TAGGED_VERSION: false
ADHOC_NAME: ${{ github.event.inputs.ADHOC_NAME }}
RRD_ARTIFACT_NAME: linux-rrd-fast
secrets: inherit
129 changes: 129 additions & 0 deletions .github/workflows/manual_build_wheels_for_pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
name: Build and Upload Wheels for PR

on:
workflow_dispatch:

jobs:

check-for-pr:
runs-on: ubuntu-latest
outputs:
PR_NUMBER: ${{ steps.get_pr.outputs.PR_NUMBER }}
steps:
- name: Check if commit belongs to a PR
id: get_pr
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
pr_number=$(curl --silent --header "Authorization: Bearer ${GITHUB_TOKEN}" \
--url "https://api.github.com/repos/${GITHUB_REPOSITORY}/commits/${GITHUB_SHA}/pulls" \
| jq '.[] | .number')
if [ -z "$pr_number" ]; then
echo "No PR associated with this commit"
exit 1
else
echo "Commit is associated with PR: $pr_number"
echo "PR_NUMBER=$pr_number" >> "$GITHUB_OUTPUT"
fi
build-linux:
needs: [check-for-pr]
name: 'Linux: Build/Test Wheels'
uses: ./.github/workflows/reusable_build_and_test_wheels.yml
with:
CONCURRENCY: manual-wheels-linux-${{ needs.check-for-pr.outputs.PR_NUMBER }}
PLATFORM: linux
WHEEL_ARTIFACT_NAME: linux-wheel
RRD_ARTIFACT_NAME: linux-rrd
secrets: inherit

build-windows:
needs: [check-for-pr]
name: 'Windows: Build/Test Wheels'
uses: ./.github/workflows/reusable_build_and_test_wheels.yml
with:
CONCURRENCY: manual-wheels-windows-${{ needs.check-for-pr.outputs.PR_NUMBER }}
PLATFORM: windows
WHEEL_ARTIFACT_NAME: windows-wheel
RRD_ARTIFACT_NAME: ''
secrets: inherit

build-macos-arm:
needs: [check-for-pr]
name: 'Macos-Arm: Build/Test Wheels'
uses: ./.github/workflows/reusable_build_and_test_wheels.yml
with:
CONCURRENCY: manual-wheels-macos-arm-${{ needs.check-for-pr.outputs.PR_NUMBER }}
PLATFORM: macos-arm
WHEEL_ARTIFACT_NAME: macos-arm-wheel
RRD_ARTIFACT_NAME: ''
secrets: inherit

build-macos-intel:
needs: [check-for-pr]
name: 'Macos-Intel: Build/Test Wheels'
uses: ./.github/workflows/reusable_build_and_test_wheels.yml
with:
CONCURRENCY: manual-wheels-macos-intel-${{ needs.check-for-pr.outputs.PR_NUMBER }}
PLATFORM: macos-intel
WHEEL_ARTIFACT_NAME: 'macos-intel-wheel'
RRD_ARTIFACT_NAME: ''
secrets: inherit

upload-wheels-linux:
name: 'Linux: Upload Wheels'
needs: [build-linux]
uses: ./.github/workflows/reusable_upload_wheels.yml
with:
CONCURRENCY: manual-wheels-linux-${{ needs.check-for-pr.outputs.PR_NUMBER }}
WHEEL_ARTIFACT_NAME: linux-wheel
RRD_ARTIFACT_NAME: linux-rrd
secrets: inherit

upload-wheels-windows:
name: 'Windows: Upload Wheels'
needs: [build-linux, build-windows]
uses: ./.github/workflows/reusable_upload_wheels.yml
with:
CONCURRENCY: manual-wheels-windows-${{ needs.check-for-pr.outputs.PR_NUMBER }}
WHEEL_ARTIFACT_NAME: windows-wheel
RRD_ARTIFACT_NAME: linux-rrd
secrets: inherit

upload-wheels-macos-arm:
name: 'Macos-Arm: Upload Wheels'
needs: [build-linux, build-macos-arm]
uses: ./.github/workflows/reusable_upload_wheels.yml
with:
CONCURRENCY: manual-wheels--macos-arm-${{ needs.check-for-pr.outputs.PR_NUMBER }}
WHEEL_ARTIFACT_NAME: macos-arm-wheel
RRD_ARTIFACT_NAME: linux-rrd
secrets: inherit

upload-wheels-macos-intel:
name: 'Macos-Intel: Upload Wheels'
needs: [build-linux, build-macos-intel]
uses: ./.github/workflows/reusable_upload_wheels.yml
with:
CONCURRENCY: manual-wheels-macos-intel-${{ needs.check-for-pr.outputs.PR_NUMBER }}
WHEEL_ARTIFACT_NAME: macos-intel-wheel
RRD_ARTIFACT_NAME: linux-rrd
secrets: inherit

generate-wheel-index:
name: 'Generate Pip Index'
needs: [check-for-pr, upload-wheels-linux, upload-wheels-windows, upload-wheels-macos-arm, upload-wheels-macos-intel]
uses: ./.github/workflows/reusable_pip_index.yml
with:
CONCURRENCY: manual-wheels-${{ needs.check-for-pr.outputs.PR_NUMBER }}
secrets: inherit

update-pr-summary:
name: 'Update PR Summary'
needs: [check-for-pr, upload-wheels-linux, upload-wheels-windows, upload-wheels-macos-arm, upload-wheels-macos-intel]
uses: ./.github/workflows/reusable_pr_summary.yml
with:
CONCURRENCY: manual-wheels-${{ needs.check-for-pr.outputs.PR_NUMBER }}
PR_NUMBER: ${{ needs.check-for-pr.outputs.PR_NUMBER}}
secrets: inherit
Loading

0 comments on commit aa076d1

Please sign in to comment.