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

Merge upstream #10

Merged
merged 90 commits into from
Apr 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
1e84aa5
`arrow2_convert` primitive (de)serialization benchmarks (#1742)
teh-cmc Mar 31, 2023
731d941
Fix logged obb being displayed with half of the requested size (#1749)
BenjaminDev Apr 1, 2023
ef2b5dc
benchmarks for common vector ops across `smallvec`/`tinyvec`/std (#1747)
teh-cmc Apr 1, 2023
d5b68f2
Tracked 3D cameras lead now to on-hover rays in other space views tha…
Wumpf Apr 3, 2023
2728854
Improve dealing with raw buffers for texture read/write (#1744)
Wumpf Apr 3, 2023
4439309
`arrow2` erased refcounted clones benchmarks (#1745)
teh-cmc Apr 3, 2023
29a13ea
`arrow2` estimated_bytes_size benchmarks (#1743)
teh-cmc Apr 3, 2023
d94ca3d
Fix crash when trying to do picking on depth clouds
emilk Apr 4, 2023
bf27c8e
Readback depth from GPU picking (#1752)
Wumpf Apr 4, 2023
a479c0c
Add new ARKitScenes example (#1538)
pablovela5620 Apr 4, 2023
1946683
Fix log_obb usage (#1761)
emilk Apr 4, 2023
9c1babe
Python SDK: document that we also accept colors in 0-1 floats (#1740)
emilk Apr 4, 2023
7892098
Collapse space-view by default if there is only one child (#1762)
emilk Apr 4, 2023
1713e60
Always create the log_time timeline (#1763)
jleibs Apr 4, 2023
9310bd7
Columnar timepoints in data tables and during transport (#1767)
teh-cmc Apr 4, 2023
6c383c3
Fix undo/redo selection shortcut/action changing selection history wi…
Wumpf Apr 4, 2023
b9f1380
Don't initialize an SDK session if we are only going to be launching …
jleibs Apr 4, 2023
679e245
Allow torch tensors for log_rigid3 (#1769)
jleibs Apr 4, 2023
409dcd8
Option to show scene bounding box (#1770)
emilk Apr 4, 2023
5b590bb
Fix a whole lot of crashes, all at once (#1780)
emilk Apr 5, 2023
260c532
Add typing_extensions to requirements-doc.txt (#1786)
jleibs Apr 5, 2023
83cd229
auto_color class-ids if they are present (#1783)
jleibs Apr 5, 2023
a4f59b2
Don't run 3rd party bench suites on CI (#1787)
teh-cmc Apr 6, 2023
d6cce1c
Use copilot markers in PR template (#1784)
emilk Apr 6, 2023
3be747c
re_format: barebone support for custom formatting (#1776)
teh-cmc Apr 6, 2023
aedf1c0
Always send recording_id as part of LogMsg (#1778)
jleibs Apr 6, 2023
ab26a73
Refactor: Add new helper crate `re_log_encoding` (#1772)
emilk Apr 6, 2023
8ab1155
New example code for facebook research segment anything (#1788)
jleibs Apr 6, 2023
880cf8e
Implement `re_tuid::Tuid::random()` on web (#1796)
emilk Apr 8, 2023
e3f572f
ci: fix benchmarks (#1799)
teh-cmc Apr 8, 2023
49e260a
Add `minimal_options` example (`RerunArgs`) (#1773)
h3mosphere Apr 10, 2023
5c7f527
Add `pacman` support to `setup_web.sh` (#1797)
urholaukkarinen Apr 10, 2023
49d5de8
fix ci (cargo-deny): cargo update -p crossbeam-channel (#1806)
teh-cmc Apr 10, 2023
d852534
Compile with `panic = "abort"` (#1813)
emilk Apr 11, 2023
7d4514e
Add `rerun --strict`: crash if any warning or error is logged (#1812)
emilk Apr 11, 2023
c254e2f
Refactor: Remove `TensorTrait` (#1819)
emilk Apr 11, 2023
5da248d
End-to-end testing of python logging -> store ingestion (#1817)
emilk Apr 12, 2023
c472b07
Fix e2e test on CI: Don't try to re-build rerun-sdk (#1821)
emilk Apr 12, 2023
f7cdc66
Use gpu picking for points, streamline/share picking code some more (…
Wumpf Apr 12, 2023
fef1eda
CI: install pip requirements for Python e2e test
emilk Apr 12, 2023
43befc2
Process 2d points always in batches (#1820)
Wumpf Apr 12, 2023
48fda31
Fix CI syntax error
emilk Apr 12, 2023
668e56d
New option to disable persistent storage (#1825)
jleibs Apr 12, 2023
dd6f03e
New API to reset_time (#1826)
jleibs Apr 12, 2023
8b0aa2e
Datastore revamp 1: new indexing model & core datastructures (#1727)
teh-cmc Apr 12, 2023
893138b
Datastore revamp 2: serialization & formatting (#1735)
teh-cmc Apr 12, 2023
698e51b
Datastore revamp 3: efficient incremental stats (#1739)
teh-cmc Apr 12, 2023
6bd5323
Datastore revamp 4: sunset `MsgId` (#1785)
teh-cmc Apr 12, 2023
72de79e
Datastore revamp 5: (#1791)
teh-cmc Apr 12, 2023
b7bbe10
Datastore revamp 6: sunset `LogMsg` storage + save store to disk (#1795)
teh-cmc Apr 12, 2023
d2d83d7
Datastore revamp 7: garbage collection (#1801)
teh-cmc Apr 12, 2023
c181adf
Don't assert if inserting a rowid with a matching timepoint does not …
jleibs Apr 12, 2023
0f6e268
CI: Try installing the correct wheel on CI
emilk Apr 12, 2023
6bec48e
CI: try again with the CI
emilk Apr 12, 2023
1e2515c
re_query: up to date with latest data types and structures (#1828)
teh-cmc Apr 12, 2023
925f531
datastore: incremental metadata registry stats (#1833)
teh-cmc Apr 13, 2023
cb95f5e
RFC: datastore state of the union & end-to-end batching (#1610)
teh-cmc Apr 13, 2023
fd870f0
Python CI: use bash as shell
emilk Apr 13, 2023
9716235
Fix too many points crash (#1822)
Wumpf Apr 13, 2023
780fe1c
Use GPU picking for line(like) primitives, fix `interactive` flags (#…
Wumpf Apr 13, 2023
8ce2c89
CI: try to fix mac wheel build
emilk Apr 13, 2023
4ef2c07
Reduce memory used by staging belts on Web (#1836)
Wumpf Apr 13, 2023
24f22dc
CI: only test the x86_64 wheel on macos
emilk Apr 13, 2023
48d4f28
Always flush when we remove a sink (#1830)
jleibs Apr 13, 2023
437fe2b
GPU colormapping, first step (#1835)
emilk Apr 13, 2023
1211ef4
Test and handle all tensor dtypes as images (#1840)
emilk Apr 13, 2023
e8e2d9b
Install the rerun-sdk in CI using --no-index and split out linux whee…
jleibs Apr 14, 2023
fe7ac0e
GPU tensor colormapping (#1841)
emilk Apr 14, 2023
beffbc3
Show previews of colormaps when selecting them (#1846)
emilk Apr 14, 2023
d33dab6
Implement billinear filtering of textures (#1850)
emilk Apr 14, 2023
3cd534f
MVP Support for inline-rendering of Rerun within jupyter notebooks (#…
jleibs Apr 14, 2023
5dc9b61
Disable wheel tests for x86_64-apple-darwin (#1853)
jleibs Apr 14, 2023
13c96bb
Fix typos in notebook readme (#1852)
jleibs Apr 14, 2023
b4190d8
Fix the python build when running without web_viewer enabled (#1856)
jleibs Apr 14, 2023
666c0c6
Error instead of expect inside msg_encode. (#1857)
jleibs Apr 14, 2023
8d25b9e
Restore: New API to reset_time (#1826) (#1854)
jleibs Apr 14, 2023
625d2bd
Revert "Implement billinear filtering of textures (#1850)" (#1859)
jleibs Apr 14, 2023
c3a13db
Add Restart command and keyboard shortcut for moving time to start of…
h3mosphere Apr 15, 2023
69bf801
Fix shutdown race condition in `re_sdk_comms` client (#1861)
emilk Apr 15, 2023
7533ed2
Remove unused dependencies (#1863)
emilk Apr 15, 2023
43aa22c
Gpu picking for depth clouds (#1849)
Wumpf Apr 16, 2023
63f19e7
Remove manual depth projection from car and nyud examples (#1869)
emilk Apr 17, 2023
87906dc
Improve end-to-end testing slightly (#1862)
emilk Apr 17, 2023
adf9856
Re-enable bilinear interpolation again (#1860)
emilk Apr 17, 2023
c7f5cb6
Use GPU colormapping when showing images in the GUI (#1865)
emilk Apr 17, 2023
f35efec
Turn off benchmakrs comment on each PR (#1872)
emilk Apr 17, 2023
ccc20c2
Refactor: remove `GpuTexture2DHandle::invalid` (#1866)
emilk Apr 17, 2023
138165a
Update enumflags2 to non-yanked version (#1874)
emilk Apr 17, 2023
88c9748
Merge branch 'main' of github.com:rerun-io/rerun into merge-upstream
zrezke Apr 17, 2023
a32e773
fix stuff broken from merging upstream
zrezke Apr 17, 2023
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
10 changes: 10 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
### WHAT
copilot:summary

### WHY
<!-- author to complete -->

### HOW
copilot:walkthrough

### 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)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/labels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ jobs:
with:
mode: minimum
count: 1
labels: "📊 analytics, 🪳 bug, 🧑‍💻 dev experience, 📖 documentation, 💬 discussion, examples, 📉 performance, 🐍 python API, ⛃ re_datastore, 📺 re_viewer, 🔺 re_renderer, ⛴ release, 🦀 rust SDK, 🔨 testing, ui, 🕸️ web"
labels: "📊 analytics, 🪳 bug, 🧑‍💻 dev experience, dependencies, 📖 documentation, 💬 discussion, examples, 📉 performance, 🐍 python API, ⛃ re_datastore, 📺 re_viewer, 🔺 re_renderer, 🚜 refactor, ⛴ release, 🦀 rust SDK, 🔨 testing, ui, 🕸️ web"
236 changes: 196 additions & 40 deletions .github/workflows/python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,159 @@ jobs:
just py-requirements

# ---------------------------------------------------------------------------
# We need one wheel-build to be special so the other builds (namely mac arm) can use its rrd
# This copy-paste is awful, but we'll refactor the build soon.
wheels-linux:
if: github.event_name == 'push' || github.event.inputs.force_build_wheel
name: Build Python Wheels (Linux)
runs-on: ubuntu-latest
container:
image: rerunio/ci_docker:0.6
steps:
- uses: actions/checkout@v3

# These should already be in the docker container, but run for good measure. A no-op install
# should be fast, and this way things don't break if we add new packages without rebuilding
# docker
- name: Cache APT Packages
uses: awalsh128/[email protected]
with:
packages: ${{ env.UBUNTU_REQUIRED_PKGS }}
version: 2.0 # Increment this to pull newer packages
execute_install_scripts: true

- name: Set up cargo cache
uses: Swatinem/rust-cache@v2
with:
env-vars: CARGO CC CFLAGS CXX CMAKE RUST CACHE_KEY
# Don't update the cache -- it will be updated by the lint job
# TODO(jleibs): this job will likely run before rust.yml updates
# the cache. Better cross-job sequencing would be nice here
save-if: False

# These should already be in the docker container, but run for good measure. A no-op install
# should be fast, and this way things don't break if we add new packages without rebuilding
# docker
- run: pip install -r rerun_py/requirements-build.txt

# ----------------------------------------------------------------------------------

- name: Patch Cargo.toml for pre-release
if: github.ref == 'refs/heads/main'
# After patching the pre-release version, run cargo update.
# This updates the cargo.lock file with the new version numbers and keeps the wheel build from failing
run: |
python3 scripts/version_util.py --patch_prerelease
cargo update -w

- name: Version check for tagged-release
if: startsWith(github.ref, 'refs/tags/v')
# This call to version_util.py will assert version from Cargo.toml matches git tagged version vX.Y.Z
run: |
python3 scripts/version_util.py --check_version

- name: Store the expected version
# Find the current cargo version and store it in the GITHUB_ENV var: `expected_version`
shell: bash
run: |
echo "expected_version=$(python3 scripts/version_util.py --bare_cargo_version)" >> $GITHUB_ENV

- name: Build Wheel
uses: PyO3/maturin-action@v1
with:
maturin-version: "0.14.10"
manylinux: manylinux_2_31
container: off
command: build
args: |
--manifest-path rerun_py/Cargo.toml
--release
--target x86_64-unknown-linux-gnu
--no-default-features
--features pypi
--out pre-dist

- name: Install wheel dependencies
# First we install the dependencies manually so we can use `--no-index` when installing the wheel.
# This needs to be a separate step for some reason or the following step fails
# TODO(jleibs): pull these deps from pyproject.toml
# TODO(jleibs): understand why deps can't be installed in the same step as the wheel
shell: bash
run: |
pip install deprecated numpy>=1.23 pyarrow==10.0.1

- name: Install built wheel
# Now install the wheel using a specific version and --no-index to guarantee we get the version from
# the pre-dist folder. Note we don't use --force-reinstall here because --no-index means it wouldn't
# find the dependencies to reinstall them.
shell: bash
run: |
pip uninstall rerun-sdk
pip install rerun-sdk==${{ env.expected_version }} --no-index --find-links pre-dist

- name: Verify built wheel version
shell: bash
run: |
python3 -m rerun --version
which rerun
rerun --version

- name: Run unit tests
shell: bash
run: cd rerun_py/tests && pytest

- name: Run e2e test
shell: bash
run: RUST_LOG=debug scripts/run_python_e2e_test.py --no-build # rerun-sdk is already built and installed

- name: Unpack the wheel
shell: bash
run: |
mkdir unpack-dist
wheel unpack pre-dist/*.whl --dest unpack-dist

- name: Get the folder name
shell: bash
run: |
echo "pkg_folder=$(ls unpack-dist)" >> $GITHUB_ENV

- name: Cache RRD dataset
id: dataset
uses: actions/cache@v3
with:
path: examples/python/colmap/dataset/
# TODO(jleibs): Derive this key from the invocation below
key: colmap-dataset-colmap-fiat-v0

- name: Generate Embedded RRD file
shell: bash
# If you change the line below you should almost definitely change the `key:` line above by giving it a new, unique name
run: |
mkdir rrd
pip install -r examples/python/colmap/requirements.txt
python3 examples/python/colmap/main.py --dataset colmap_fiat --resize 800x600 --save rrd/colmap_fiat.rrd
cp rrd/colmap_fiat.rrd unpack-dist/${{ env.pkg_folder }}/rerun_sdk/rerun_demo/colmap_fiat.rrd

- name: Repack the wheel
shell: bash
run: |
mkdir dist
wheel pack unpack-dist/${{ env.pkg_folder }} --dest dist/

- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist

# All platforms are currently creating the same rrd file, upload one of them
- name: Save RRD artifact
uses: actions/upload-artifact@v3
with:
name: rrd
path: rrd

# ---------------------------------------------------------------------------
matrix-setup:
# Building all the wheels is expensive, so we only run this job when we push (to main or release tags),
# or if the job was manually triggered with `force_build_wheel` set to true.
Expand All @@ -85,42 +237,30 @@ jobs:

- id: set-matrix
shell: bash
# TODO(jleibs): figure out why tests are failing to complete on `x86_64-apple-darwin`
# See: https://github.com/rerun-io/rerun/pull/1853
run: |
matrix=()
matrix+=('{"platform": "macos", "target": "x86_64-apple-darwin", "runs_on": "macos-latest"},')
matrix+=('{"platform": "macos", "target": "aarch64-apple-darwin", "runs_on": "macos-latest"},')
matrix+=('{"platform": "windows", "target": "x86_64-pc-windows-msvc", "runs_on": "windows-latest-8-cores"},')
matrix+=('{"platform": "linux", "target": "x86_64-unknown-linux-gnu", "runs_on": "ubuntu-latest-16-cores", container: {"image": "rerunio/ci_docker:0.6"}}')
matrix+=('{"platform": "macos", "target": "x86_64-apple-darwin", "run_tests": false, "runs_on": "macos-latest" },')
matrix+=('{"platform": "macos", "target": "aarch64-apple-darwin", "run_tests": false, "runs_on": "macos-latest" },') # NOTE: we can't run tests on arm since our macos runner is x86_64
matrix+=('{"platform": "windows", "target": "x86_64-pc-windows-msvc", "run_tests": true, "runs_on": "windows-latest-8-cores"},')

echo "Matrix values: ${matrix[@]}"

echo "matrix={\"include\":[${matrix[@]}]}" >> $GITHUB_OUTPUT

wheels:
name: Build Python Wheels
needs: [lint, matrix-setup]
name: Build Remaining Python Wheels
needs: [lint, matrix-setup, wheels-linux]

strategy:
matrix: ${{fromJson(needs.matrix-setup.outputs.matrix)}}

runs-on: ${{ matrix.runs_on }}

container: ${{ matrix.container }}

steps:
- uses: actions/checkout@v3

# These should already be in the docker container, but run for good measure. A no-op install
# should be fast, and this way things don't break if we add new packages without rebuilding
# docker
- name: Cache APT Packages
if: matrix.platform == 'linux'
uses: awalsh128/[email protected]
with:
packages: ${{ env.UBUNTU_REQUIRED_PKGS }}
version: 2.0 # Increment this to pull newer packages
execute_install_scripts: true

- name: Set up cargo cache
uses: Swatinem/rust-cache@v2
with:
Expand All @@ -133,7 +273,6 @@ jobs:
# The pip-cache setup logic doesn't work in the ubuntu docker container
# That's probably fine since we bake these deps into the container already
- name: Setup python
if: matrix.platform != 'linux'
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
Expand Down Expand Up @@ -194,6 +333,12 @@ jobs:
run: |
python3 scripts/version_util.py --check_version

- name: Store the expected version
# Find the current cargo version and store it in the GITHUB_ENV var: `expected_version`
shell: bash
run: |
echo "expected_version=$(python3 scripts/version_util.py --bare_cargo_version)" >> $GITHUB_ENV

- name: Build Wheel
uses: PyO3/maturin-action@v1
with:
Expand All @@ -210,12 +355,36 @@ jobs:
--out pre-dist

- name: Install built wheel
if: ${{ matrix.run_tests }}
# First we install the dependencies manually so we can use `--no-index` when installing the wheel.
# Then install the wheel using a specific version and --no-index to guarantee we get the version from
# the pre-dist folder. Note we don't use --force-reinstall here because --no-index means it wouldn't
# find the dependencies to reinstall them.
# TODO(jleibs): pull these deps from pyproject.toml
shell: bash
run: |
pip uninstall rerun-sdk
pip install deprecated numpy>=1.23 pyarrow==10.0.1
pip install rerun-sdk==${{ env.expected_version }} --no-index --find-links pre-dist

- name: Verify built wheel version
if: ${{ matrix.run_tests }}
shell: bash
run: |
pip install rerun-sdk --find-links pre-dist --force-reinstall
python3 -m rerun --version
which rerun
rerun --version

- name: Run tests
- name: Run unit tests
if: ${{ matrix.run_tests }}
shell: bash
run: cd rerun_py/tests && pytest

- name: Run e2e test
if: ${{ matrix.run_tests }}
shell: bash
run: RUST_LOG=debug scripts/run_python_e2e_test.py --no-build # rerun-sdk is already built and installed

- name: Unpack the wheel
shell: bash
run: |
Expand All @@ -227,21 +396,16 @@ jobs:
run: |
echo "pkg_folder=$(ls unpack-dist)" >> $GITHUB_ENV

- name: Cache RRD dataset
id: dataset
uses: actions/cache@v3
- name: Download RRD
uses: actions/download-artifact@v3
with:
path: examples/python/colmap/dataset/
# TODO(jleibs): Derive this key from the invocation below
key: colmap-dataset-colmap-fiat-v0
name: rrd
path: rrd

- name: Generate Embedded RRD file
- name: Insert the rrd
shell: bash
# If you change the line below you should almost definitely change the `key:` line above by giving it a new, unique name
run: |
mkdir rrd
pip install -r examples/python/colmap/requirements.txt
python3 examples/python/colmap/main.py --dataset colmap_fiat --resize 800x600 --save rrd/colmap_fiat.rrd
cp rrd/colmap_fiat.rrd unpack-dist/${{ env.pkg_folder }}/rerun_sdk/rerun_demo/colmap_fiat.rrd

- name: Repack the wheel
Expand All @@ -256,14 +420,6 @@ jobs:
name: wheels
path: dist

# All platforms are currently creating the same rrd file, upload one of them
- name: Save RRD artifact
if: matrix.platform == 'linux'
uses: actions/upload-artifact@v3
with:
name: rrd
path: rrd

# ---------------------------------------------------------------------------

upload_rrd:
Expand Down
Loading