Skip to content

Remove sonic dash api submodule#109

Closed
yue-fred-gao wants to merge 3 commits into
sonic-net:masterfrom
yue-fred-gao:remove_sonic_dash_api
Closed

Remove sonic dash api submodule#109
yue-fred-gao wants to merge 3 commits into
sonic-net:masterfrom
yue-fred-gao:remove_sonic_dash_api

Conversation

@yue-fred-gao

Copy link
Copy Markdown
Collaborator

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

  • remove sonic-dash-api submodule
  • 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

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.

 - 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
@mssonicbld

Copy link
Copy Markdown

/azp run

@yue-fred-gao yue-fred-gao marked this pull request as draft September 10, 2025 17:39
@mssonicbld

Copy link
Copy Markdown

/azp run

@KrisNey-MSFT

Copy link
Copy Markdown

Same here @yue-fred-gao - is this one still a Draft? TY!

@zjswhhh zjswhhh marked this pull request as ready for review February 19, 2026 23:17
Copilot AI review requested due to automatic review settings February 19, 2026 23:17

Copilot AI left a comment

Copy link
Copy Markdown

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 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::SonicDbTable to sonicdb::SonicDbTable
  • Removed submodule checkout from Azure Pipelines CI configuration
  • Fixed prost-build method call from deprecated compile to compile_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

@yue-fred-gao

Copy link
Copy Markdown
Collaborator Author

This PR is outdated by sonic-net/sonic-buildimage#24795.

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.

4 participants