microsoft / microsoft/mssql-rs

Reduce duplication in ODBC/nextest CI target lists and arm64 test template

Open
#138 0 comments 1 reaction 2 assignees View on GitHub

@saurabh500 is already working on this.

Since Jul 29, 2026.

  • #154 by @copilot-swe-agent — open
technical-debt
Dominant language
Rust
Stars
53
Forks
14
Avg merge
1d 15h
Merged PRs (30d)
137

Description

Follow-up from review of #127 (David Engel). These are non-blocking maintainability items intentionally deferred so as not to churn the now-green ODBC CI pipeline.

### 1. Duplicated distro target lists in `validation-stages.yml`
The Alpine and deb/rhel `targets:` blocks are repeated across shared-mode and per-job-mode, for both the nextest and ODBC matrices (6+ near-identical copies). Adding or removing a distro currently requires editing many places and invites drift.

**Idea:** hoist each target list into a reusable variable / YAML anchor or a parameter default.

### 2. ~130-line block duplicated in `test-matrix-odbc-template-arm64.yml`
The shared-mode and per-job-mode `steps:` sequences differ only in how `container`/`entry`/sentinel names are sourced. Hard to factor further within ADO template constraints, but worth tracking so future edits to one path stay in sync with the other.

### 3. (optional) `build_e2e.sh` driver-name single source of truth
`build_e2e.sh` previously wrote `OUT_DIR/DRIVER_FILE` while `run_e2e.sh --skip-build` re-derived the name from `uname`. The dead write was removed in #127, but the two scripts still independently derive the driver library name. Consider consuming a single staged value in `run_e2e.sh` so the name has one source of truth.

Context: https://github.com/microsoft/mssql-rs/pull/127

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.