Remove sonic dash api submodule#109
Closed
yue-fred-gao wants to merge 3 commits into
Closed
Conversation
- remove sonic-dash-api-proto crate - remove sonicdb-derive crate (moved to swss-common) - remove SonicDbTable (moved to swss-common) - change dependent crates in each crates to use workspace dependency to avoid mismatched version
|
/azp run |
|
/azp run |
|
Same here @yue-fred-gao - is this one still a Draft? TY! |
There was a problem hiding this comment.
Pull request overview
This pull request removes the sonic-dash-api submodule and relocates related functionality to external repositories. The PR consolidates dependency management by moving from submodules and local crates to external Git dependencies, and standardizes all dependencies to use workspace configuration.
Changes:
- Removed sonic-dash-api submodule and local sonic-dash-api-proto crate, now fetched from sonic-dash-api repository
- Removed local sonicdb-derive crate and SonicDbTable trait from sonic-common, now provided by sonic-swss-common repository
- Migrated all dependencies to use workspace configuration (.workspace = true pattern)
- Updated all imports from
sonic_common::SonicDbTabletosonicdb::SonicDbTable - Removed submodule checkout from Azure Pipelines CI configuration
- Fixed prost-build method call from deprecated
compiletocompile_protos
Reviewed changes
Copilot reviewed 28 out of 29 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| Cargo.toml | Removed local crate definitions for sonic-dash-api-proto and sonicdb-derive; added workspace dependencies for sonic-dash-api-proto, sonicdb, and sonicdb-derive from external Git repositories |
| Cargo.lock | Updated dependency resolution (currently pointing to development branches) |
| .gitmodules | Removed sonic-dash-api submodule configuration |
| azure-pipelines.yml | Removed submodule checkout step |
| crates/*/Cargo.toml | Migrated all dependencies to workspace pattern |
| crates//src/.rs | Updated imports from sonic_common::SonicDbTable to sonicdb::SonicDbTable |
| crates/sonic-common/src/lib.rs | Removed SonicDbTable trait definition |
| crates/swbus-proto/build.rs | Fixed deprecated prost-build API usage |
Collaborator
Author
|
This PR is outdated by sonic-net/sonic-buildimage#24795. |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
why
currently, sonic-dash-ha adds sonic-dash-api as submodule to compile protos into rust structs. At the same time, both are submodules in sonic-buildimage. This creates unnecessary dependency and complexity. The solution is moving sonic-dash-api-proto crate into sonic-dash-api. sonic-dash-ha adds sonic-dash-api-proto as a dependent crate. At build time, it pulls the crate through git and the latter compiles protos on demand. This is similar to swss-common crate to sonic-dash-ha.
However, sonic-dash-api-proto depends on sonicdb-derive and sonic-common crates in sonic-dash-ha. To break the inter-dependency, we need to move sonicdb-derive and SonicDBTable in sonic-common, which is added to a new crate called sonicdb to another place. swss-common is the most natural location because it is a derive macro for SONiC db and it potentially can be used by other components in sonic.
what this PR does
dependency
This PR has dependency on sonic-net/sonic-dash-api#45 and sonic-net/sonic-swss-common#1077. It should be merged after them.