FEAT: Add cross-repo CI support for BCP development#401
Closed
bewithgaurav wants to merge 6 commits intomainfrom
Closed
FEAT: Add cross-repo CI support for BCP development#401bewithgaurav wants to merge 6 commits intomainfrom
bewithgaurav wants to merge 6 commits intomainfrom
Conversation
- Add Depends-On section to PR template for linking mssql-tds PRs - Add download-mssql-tds-artifacts.yml template for cross-project artifact download - Integrate template into macOS, Linux, and Alpine test jobs - Add scripts/build-py-core.sh for local development workflow
| # Check for Rust toolchain | ||
| if ! command -v cargo &> /dev/null; then | ||
| echo "ERROR: Rust toolchain not found. Please install Rust:" | ||
| echo " curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh" |
Check notice
Code scanning / devskim
Curl: Hard-coded SSL/TLS Protocol Note
| # Check for Rust toolchain | ||
| if ! command -v cargo &> /dev/null; then | ||
| echo "ERROR: Rust toolchain not found. Please install Rust:" | ||
| echo " curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh" |
Check notice
Code scanning / devskim
Generic: Hard-coded SSL/TLS Protocol Note
📊 Code Coverage Report
Diff CoverageDiff: main...HEAD, staged and unstaged changesNo lines with coverage information in this diff. 📋 Files Needing Attention📉 Files with overall lowest coverage (click to expand)mssql_python.pybind.logger_bridge.hpp: 58.8%
mssql_python.pybind.logger_bridge.cpp: 59.2%
mssql_python.row.py: 66.2%
mssql_python.helpers.py: 67.5%
mssql_python.pybind.ddbc_bindings.cpp: 69.4%
mssql_python.pybind.ddbc_bindings.h: 71.7%
mssql_python.pybind.connection.connection.cpp: 73.6%
mssql_python.ddbc_bindings.py: 79.6%
mssql_python.pybind.connection.connection_pool.cpp: 79.6%
mssql_python.connection.py: 84.1%🔗 Quick Links
|
- Replace grep -P (Perl regex) with sed for macOS compatibility - Fix GITHUB_TOKEN variable expansion in bash - Add debug output for troubleshooting API responses
Simplifies the script and avoids YAML escaping issues with embedded Python
- Check if GITHUB_TOKEN is set and warn if missing - Try unauthenticated request as fallback (public repo) - Show API response for debugging
The token was being rejected by Microsoft enterprise policy. Public repos can be accessed without authentication.
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.
Work Item / Issue Reference
Cross-Repo Dependency (BCP Development Only)
Uncomment and fill in if this PR depends on changes in mssql-tds repo.
The CI pipeline will automatically download mssql-py-core artifacts from the linked PR.
Depends-On: mssql-tds#6683
Summary
This pull request introduces comprehensive support for cross-repo development between the
mssql-pythonandmssql-tdsrepositories, specifically to enable coordinated development and CI validation of the BCP (Bulk Copy Program) feature using Rust bindings. The changes span developer documentation, CI pipeline enhancements, template additions, and new developer tooling scripts. The core improvements allow PRs inmssql-pythonto automatically detect and consume build artifacts from linked PRs inmssql-tds, streamlining the workflow for parallel feature development across the two repos.Key changes include:
Cross-Repo CI Integration:
download-mssql-tds-artifacts.yml) that parses the PR description for aDepends-On: mssql-tds#<PR_NUMBER>directive, fetches the corresponding build artifacts from themssql-tdsAzure DevOps pipeline, and extracts the Rust-built.sofiles into themssql_python/directory for all supported platforms. This template is conditionally invoked in the main PR validation pipeline for Linux, Alpine, and MacOS jobs. [1] [2] [3] [4] [5] [6]Developer Workflow Improvements:
scripts/build-py-core.sh) for building and installing the Rust-basedmssql-py-corebindings from a siblingmssql-tdscheckout. The script supports both standard and editable installs, and includes error handling and environment checks to ensure a smooth developer experience.Documentation and Template Updates:
docs/plan-crossRepoDevBcp.prompt.md) that outlines the steps for cross-repo BCP development, including local setup, CI flow, artifact publishing, and folder structure expectations.mssql-tds.These changes collectively enable parallel feature development, robust CI validation of cross-repo dependencies, and a smoother onboarding experience for contributors working on the BCP feature across both repositories.