Livekit main - #690
Conversation
* Update protocol and add SendDataRequest nonce * changeset * typo
* implement track permission updates * fixed locks * fix build * formatting * changeset
* Fix race condition in rpc invocation * nanpa * fix * nanpa * cgo * sm
* set to workspace * fix livekit-runtime
Add latest updates
add latest updates
remove target not needed
Remove target
remove another
Remove git-fetch-with-cli configuration from publish workflow
Update cargo registry index to use sparse protocol in publish workflow
Update cargo registry index URL to use API version in configuration
…dential providers and fix package change detection
Update cargo configuration and publish workflow to include global cre…
…in branch pushes and merged PRs
Co-authored-by: rileyseaburg <48305658+rileyseaburg@users.noreply.github.com>
…ntation Co-authored-by: rileyseaburg <48305658+rileyseaburg@users.noreply.github.com>
Fix Windows MSVC Abseil compatibility and exception handling in webrtc-sys
…20-09-35Z chore: release
|
root seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
There was a problem hiding this comment.
Pull Request Overview
This pull request introduces infrastructure for publishing crates to the Quantum Forge registry, improves Windows MSVC and Abseil compatibility in webrtc-sys, enhances CI workflows, and makes targeted API improvements. The changes focus on registry integration, build system robustness, and documentation.
- Added automated publishing workflow and registry configuration for Quantum Forge
- Enhanced webrtc-sys with comprehensive Windows MSVC support and flexible Abseil configuration options
- Updated egress client API to support explicit access token authentication via headers
Reviewed Changes
Copilot reviewed 23 out of 25 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/publish.yml |
New automated workflow for version bumping, publishing to Quantum Forge registry, and GitHub releases |
.cargo/config.toml |
Registry configuration for Quantum Forge with credential provider setup |
webrtc-sys/build.rs |
Major refactor adding Windows MSVC support and flexible Abseil configuration (system/custom/bundled) |
webrtc-sys/Cargo.toml |
Version bump and new Abseil-related feature flags |
livekit-api/src/services/egress.rs |
Updated egress client to accept explicit access tokens via Authorization headers |
livekit-api/src/access_token.rs |
Made AccessToken fields public for improved API access |
docs/abseil.md |
New comprehensive documentation for Abseil usage and configuration |
Comments suppressed due to low confidence (1)
webrtc-sys/build.rs:108
- The command contains "curl" which appears to be a typo. It should likely be just
echo "$CHANGED_FILES"to check if any files match the package pattern.
return;
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| PUBLISHED_CRATES: ${{ needs.publish.outputs.published_crates }} | ||
| run: | |
There was a problem hiding this comment.
The job create_releases is defined twice (lines 251 and 287), which will cause a YAML parsing error. The second definition will override the first one.
| run: | |
| # Record that we published livekit | ||
| echo "published_crates=livekit" >> $GITHUB_OUTPUT | ||
| else | ||
| echo "Skipping publishing for non-push, non-merged PR, or non-main branch events" |
There was a problem hiding this comment.
This cargo publish command is duplicated in the create_releases job when it should only be in the publish job. This will cause the same crate to be published twice.
| echo "Skipping publishing for non-push, non-merged PR, or non-main branch events" | |
| echo "This is a push to main branch - creating GitHub release" | |
| # For push events, create a GitHub release (publishing is handled in the publish job) | |
| elif [[ "${{ github.event_name }}" == "pull_request" && "${{ github.event.pull_request.merged }}" == "true" ]]; then | |
| echo "This is a merged PR to main branch - creating GitHub release" | |
| else | |
| echo "Skipping release creation for non-push, non-merged PR, or non-main branch events" |
|
|
||
| -#define ABSL_OPTION_USE_STD_OPTIONAL 2 | ||
| +#define ABSL_OPTION_USE_STD_OPTIONAL 0 | ||
| +// Mark symbols as weak to avoid conflicts with V8 |
There was a problem hiding this comment.
[nitpick] The comment should use consistent formatting. Consider using a single + prefix for added lines in patch context.
| } | ||
| _ => { | ||
| panic!("Unsupported target, {}", target_os); | ||
| println!("cargo:warning=Unsupported target OS: {}", target_os); |
There was a problem hiding this comment.
[nitpick] Changed from panic! to println! warning, but the build should probably still fail for truly unsupported targets to avoid silent failures. Consider using panic! for actually unsupported platforms.
| println!("cargo:warning=Unsupported target OS: {}", target_os); | |
| panic!("Unsupported target OS: {}", target_os); |
This pull request introduces several improvements and infrastructure changes to support publishing crates to the Quantum Forge registry, updates the build and CI workflows, and makes targeted code and documentation updates. The main themes are registry integration, CI workflow enhancements, and improved documentation for dependencies.
Registry integration and publishing infrastructure:
.github/workflows/publish.ymlworkflow to automate bumping crate versions, publishing to the Quantum Forge registry, and creating GitHub releases, including test releases for verification..cargo/config.tomlto configure the Quantum Forge registry as a custom Cargo registry, including credential provider setup..nanpa/new-crate-registry.kdlto document the change for Quantum Forge registry publishing.Continuous Integration (CI) and build workflow improvements:
.github/workflows/builds.ymlto include additional package paths, and added a step to updaterustupon Windows runners for improved toolchain reliability. [1] [2].nanpa/remote-target.kdlto prevent build issues.Documentation and dependency management:
docs/abseil.mdand corresponding section inREADME.mdto clarify Abseil usage, configuration options, and troubleshooting for both bundled and system Abseil setups. [1] [2]Code and changelog updates:
api_key,api_secret, andclaimsfields inAccessTokenpublic inlivekit-api/src/access_token.rsfor improved access and flexibility.livekit-api/src/services/egress.rsto support passing an explicit access token via headers for improved authentication handling. [1] [2] [3]libwebrtccrate version to0.3.13and added a changelog entry for tracking changes. [1] [2]livekit-ffi/build.rsby removing the license copying logic. [1] [2]Miscellaneous:
.nanpa/update-endpoint-for-egress.kdlto document an endpoint update for egress services.