-
Notifications
You must be signed in to change notification settings - Fork 403
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/main' into emilk/improve-3d-scro…
…ll-to-zoom
- Loading branch information
Showing
754 changed files
with
52,012 additions
and
26,755 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,22 @@ | ||
### WHAT | ||
copilot:summary | ||
| ||
<!-- | ||
Open the PR up as a draft until you feel it is ready for a proper review. | ||
Do not make PR:s from your own `main` branch, as that makes it difficult for reviewers to add their own fixes. | ||
Add any improvements to the branch as new commits to make it easier for reviewers to follow the progress. All commits will be squashed to a single commit once the PR is merged into `main`. | ||
Make sure you mention any issues that this PR closes in the description, as well as any other related issues. | ||
### WHY | ||
<!-- author to complete --> | ||
To get an auto-generated PR description you can put "copilot:summary" or "copilot:walkthrough" anywhere. | ||
--> | ||
|
||
### HOW | ||
copilot:walkthrough | ||
### 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) | ||
|
||
<!-- | ||
Add any improvements to the branch as new commits to make it easier for reviewers to follow the progress. All commits will be squashed to a single commit once the PR is merged into `main`. | ||
--> | ||
<!-- This line will get updated when the PR build summary job finishes. --> | ||
PR Build Summary: {{ pr-build-summary }} | ||
|
||
<!-- This comment will be replaced by a link to the documentation preview --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
# 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/prelease/ | ||
- `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_build_web_demo.yml](reusable_build_web.yml) - This job builds the assets uploaded to `demo.rerun.io`. | ||
- `SOURCE_LINK_COMMIT_OVERRIDE` - If set, will replace the value of `<commit>` in the built app. This ensures that the | ||
source source code link in the built app always points to the pull request's `HEAD`. | ||
- [reusable_upload_web_demo.yml](reusable_upload_web_demo.yml) - This job uploads the `demo.rerun.io` assets to google cloud. By default this | ||
only uploads to: `demo.rerun.io/commit/<commit>/` | ||
- `MARK_PRERELEASE_FOR_MAINLINE` - If true, then the web assets will go to `demo.rerun.io/prelease/ | ||
- `MARK_TAGGED_VERSION` - If true, then the web assets will go to `demo.rerun.io/version/<RELEASE_VERSION>` | ||
- `RELEASE_VERSION` - If producing a release, the version number. | ||
- `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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
name: Documentation | ||
|
||
on: | ||
pull_request: | ||
push: | ||
branches: | ||
- "main" | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
spellcheck: | ||
name: Spellcheck | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: streetsidesoftware/cspell-action@v2 | ||
with: | ||
config: "docs/cspell.json" | ||
files: "docs/**/*.md" | ||
linkinator: | ||
name: linkinator | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: jprochazk/linkinator-action@main | ||
with: | ||
paths: "docs/**/*.md" | ||
linksToSkip: "https://crates.io/crates/rerun" | ||
retry: true | ||
retryErrors: true | ||
retryErrorsCount: 5 | ||
retryErrorsJitter: 2000 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
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: linux-wheel | ||
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 | ||
UPLOAD_COMMIT: false | ||
secrets: inherit | ||
|
||
build-web-demo-adhoc: | ||
name: 'Build Web Demo' | ||
needs: [min-test-wheel, build-web-adhoc] | ||
uses: ./.github/workflows/reusable_build_web_demo.yml | ||
with: | ||
CONCURRENCY: adhoc-web-${{ github.event.inputs.ADHOC_NAME }} | ||
WHEEL_ARTIFACT_NAME: linux-wheel | ||
secrets: inherit | ||
|
||
upload-web-demo: | ||
name: 'Upload Web Demo' | ||
needs: [build-web-demo-adhoc] | ||
uses: ./.github/workflows/reusable_upload_web_demo.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 }} | ||
UPLOAD_COMMIT: false | ||
secrets: inherit |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,143 @@ | ||
name: Build all artifacts for Release | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
RELEASE_VERSION: | ||
description: 'Release Version Number (Must match Cargo.toml)' | ||
type: string | ||
required: true | ||
|
||
jobs: | ||
|
||
build-linux: | ||
name: 'Linux: Build/Test Wheels' | ||
uses: ./.github/workflows/reusable_build_and_test_wheels.yml | ||
with: | ||
CONCURRENCY: manual-wheels-linux-prerelease | ||
PLATFORM: linux | ||
WHEEL_ARTIFACT_NAME: linux-wheel | ||
RRD_ARTIFACT_NAME: linux-rrd | ||
RELEASE_VERSION: ${{ github.event.inputs.RELEASE_VERSION }} | ||
secrets: inherit | ||
|
||
build-windows: | ||
name: 'Windows: Build/Test Wheels' | ||
uses: ./.github/workflows/reusable_build_and_test_wheels.yml | ||
with: | ||
CONCURRENCY: manual-wheels-windows-prerelease | ||
PLATFORM: windows | ||
WHEEL_ARTIFACT_NAME: windows-wheel | ||
RRD_ARTIFACT_NAME: '' | ||
RELEASE_VERSION: ${{ github.event.inputs.RELEASE_VERSION }} | ||
secrets: inherit | ||
|
||
build-macos-arm: | ||
name: 'Macos-Arm: Build/Test Wheels' | ||
uses: ./.github/workflows/reusable_build_and_test_wheels.yml | ||
with: | ||
CONCURRENCY: manual-wheels-macos-arm-prerelease | ||
PLATFORM: macos-arm | ||
WHEEL_ARTIFACT_NAME: macos-arm-wheel | ||
RRD_ARTIFACT_NAME: '' | ||
RELEASE_VERSION: ${{ github.event.inputs.RELEASE_VERSION }} | ||
secrets: inherit | ||
|
||
build-macos-intel: | ||
name: 'Macos-Intel: Build/Test Wheels' | ||
uses: ./.github/workflows/reusable_build_and_test_wheels.yml | ||
with: | ||
CONCURRENCY: manual-wheels-macos-intel-prerelease | ||
PLATFORM: macos-intel | ||
WHEEL_ARTIFACT_NAME: 'macos-intel-wheel' | ||
RRD_ARTIFACT_NAME: '' | ||
RELEASE_VERSION: ${{ github.event.inputs.RELEASE_VERSION }} | ||
secrets: inherit | ||
|
||
upload-wheels-linux: | ||
name: 'Linux: Upload Wheels' | ||
needs: [build-linux] | ||
uses: ./.github/workflows/reusable_upload_wheels.yml | ||
with: | ||
CONCURRENCY: manual-upload-wheels-linux-prerelease | ||
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-upload-wheels-windows-prerelease | ||
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-upload-wheels-macos-arm-prerelease | ||
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-upload-wheels-macos-intel-prerelease | ||
WHEEL_ARTIFACT_NAME: macos-intel-wheel | ||
RRD_ARTIFACT_NAME: linux-rrd | ||
secrets: inherit | ||
|
||
build-web: | ||
name: 'Build Web' | ||
uses: ./.github/workflows/reusable_build_web.yml | ||
with: | ||
CONCURRENCY: manual-dispatch-${{ github.run_id}} | ||
RELEASE_VERSION: ${{ github.event.inputs.RELEASE_VERSION }} | ||
secrets: inherit | ||
|
||
upload-web: | ||
name: 'Upload Web' | ||
needs: [build-linux, build-web] | ||
uses: ./.github/workflows/reusable_upload_web.yml | ||
with: | ||
CONCURRENCY: manual-dispatch-${{ github.run_id}} | ||
MARK_PRERELEASE_FOR_MAINLINE: false | ||
MARK_TAGGED_VERSION: true | ||
RRD_ARTIFACT_NAME: linux-rrd | ||
RELEASE_VERSION: ${{ github.event.inputs.RELEASE_VERSION }} | ||
secrets: inherit | ||
|
||
build-web-demo: | ||
name: 'Build Web Demo' | ||
needs: [build-linux, build-web] | ||
uses: ./.github/workflows/reusable_build_web_demo.yml | ||
with: | ||
CONCURRENCY: manual-dispatch-${{ github.run_id}} | ||
WHEEL_ARTIFACT_NAME: linux-wheel | ||
secrets: inherit | ||
|
||
upload-web-demo: | ||
name: 'Upload Web' | ||
needs: [build-web-demo] | ||
uses: ./.github/workflows/reusable_upload_web_demo.yml | ||
with: | ||
CONCURRENCY: manual-dispatch-${{ github.run_id}} | ||
MARK_PRERELEASE_FOR_MAINLINE: false | ||
MARK_TAGGED_VERSION: true | ||
RELEASE_VERSION: ${{ github.event.inputs.RELEASE_VERSION }} | ||
secrets: inherit | ||
|
||
generate-wheel-index: | ||
name: 'Generate Pip Index' | ||
needs: [upload-wheels-linux, upload-wheels-windows, upload-wheels-macos-arm, upload-wheels-macos-intel] | ||
uses: ./.github/workflows/reusable_pip_index.yml | ||
with: | ||
CONCURRENCY: manual-index-wheels-prerelease | ||
secrets: inherit |
Oops, something went wrong.