Skip to content

Livekit main - #690

Closed
rileyseaburg wants to merge 81 commits into
livekit:mainfrom
Evolving-Software:livekit-main
Closed

Livekit main#690
rileyseaburg wants to merge 81 commits into
livekit:mainfrom
Evolving-Software:livekit-main

Conversation

@rileyseaburg

Copy link
Copy Markdown

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:

  • Added a new .github/workflows/publish.yml workflow to automate bumping crate versions, publishing to the Quantum Forge registry, and creating GitHub releases, including test releases for verification.
  • Updated .cargo/config.toml to configure the Quantum Forge registry as a custom Cargo registry, including credential provider setup.
  • Added .nanpa/new-crate-registry.kdl to document the change for Quantum Forge registry publishing.

Continuous Integration (CI) and build workflow improvements:

  • Expanded the build workflow in .github/workflows/builds.yml to include additional package paths, and added a step to update rustup on Windows runners for improved toolchain reliability. [1] [2]
  • Removed a problematic remote build target from .nanpa/remote-target.kdl to prevent build issues.

Documentation and dependency management:

  • Added a new docs/abseil.md and corresponding section in README.md to clarify Abseil usage, configuration options, and troubleshooting for both bundled and system Abseil setups. [1] [2]

Code and changelog updates:

  • Made api_key, api_secret, and claims fields in AccessToken public in livekit-api/src/access_token.rs for improved access and flexibility.
  • Updated the egress client in livekit-api/src/services/egress.rs to support passing an explicit access token via headers for improved authentication handling. [1] [2] [3]
  • Updated libwebrtc crate version to 0.3.13 and added a changelog entry for tracking changes. [1] [2]
  • Simplified the build script in livekit-ffi/build.rs by removing the license copying logic. [1] [2]

Miscellaneous:

  • Added .nanpa/update-endpoint-for-egress.kdl to document an endpoint update for egress services.

root and others added 30 commits February 18, 2025 20:16
* 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
remove target not needed
rileyseaburg and others added 26 commits March 13, 2025 23:07
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…
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
Copilot AI review requested due to automatic review settings August 18, 2025 18:15
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
2 out of 5 committers have signed the CLA.

✅ bcherry
✅ typester
❌ root
❌ Copilot
❌ rileyseaburg


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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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: |

Copilot AI Aug 18, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
run: |

Copilot uses AI. Check for mistakes.
# 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"

Copilot AI Aug 18, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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"

Copilot uses AI. Check for mistakes.

-#define ABSL_OPTION_USE_STD_OPTIONAL 2
+#define ABSL_OPTION_USE_STD_OPTIONAL 0
+// Mark symbols as weak to avoid conflicts with V8

Copilot AI Aug 18, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The comment should use consistent formatting. Consider using a single + prefix for added lines in patch context.

Copilot uses AI. Check for mistakes.
Comment thread livekit-ffi/build.rs
}
_ => {
panic!("Unsupported target, {}", target_os);
println!("cargo:warning=Unsupported target OS: {}", target_os);

Copilot AI Aug 18, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[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.

Suggested change
println!("cargo:warning=Unsupported target OS: {}", target_os);
panic!("Unsupported target OS: {}", target_os);

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants