feat(source-postgres,source-mysql): add local e2e prove-fix test harness skills#82249
feat(source-postgres,source-mysql): add local e2e prove-fix test harness skills#82249sophiecuiy wants to merge 1 commit into
Conversation
…ess skills Co-Authored-By: sophie.cui@airbyte.io <sophie.cui@airbyte.io>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. 💡 Show Tips and TricksPR Slash CommandsAirbyte Maintainers (that's you!) can execute the following slash commands on your PR:
📚 Show Repo GuidanceHelpful Resources
|
|
Caution Review failedAn error occurred during the review process. Please try again later. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
|
What
Adds connector-local e2e test-harness skills for
source-postgresandsource-mysql, modeled on the existingsource-mssql-e2e-testsharness. These are the per-engine evidence engine for the new database-source/ai-prove-fixplaybook (db_prove_fix.mdinairbytehq/ai-skills: https://github.com/airbytehq/ai-skills/pull/608) — they let Devin (or a maintainer) stand up a throwaway local DB, apply an authored SQL fixture, and run protocol commands against a PR image vs a control image to prove a fix, without touching customer data.Requested by Sophie Cui (sophiecuiy).
Each skill lives under
airbyte-integrations/connectors/source-<engine>/.agents/skills/source-<engine>-e2e-tests/with the same script contract as mssql:How
Faithful ports of the mssql scripts, adapted per engine:
postgres:16withwal_level=logical+ WAL sender/slot headroom so a CDC repro can add a logical replication slot without a restart. Readiness viapg_isready;apply-sql.shpipes intopsqlover the trust-auth unix socket.mysql:8.0with--binlog-format=ROW --binlog-row-image=FULL+ GTIDs for CDC; readiness via aSELECT 1probe;apply-sql.shusesMYSQL_PWDto avoid the plaintext-password warning.ssl_mode: {mode: disable}+replication_method: {method: Standard}; MySQLssl_mode: {mode: preferred}+replication_method: {method: STANDARD}.run-protocol-cmd.shadds comparison mode on top of the mssql single-version wrapper: settingCONTROL_VERSION=<tag>drops--skip-compare=Trueand adds--control-image=airbyte/source-<engine>:<tag>, producing the side-by-sideSPEC/CHECK/DISCOVER/READdiff the prove-fix playbook consumes. Default (noCONTROL_VERSION) is single-version, exactly like mssql.Docs-only/harness files — no connector runtime code changes.
Review guide
source-postgres/.agents/skills/source-postgres-e2e-tests/SKILL.mdandsource-mysql/.agents/skills/source-mysql-e2e-tests/SKILL.md— the two skill entrypoints; engine-specific gotchas are documented at the bottom of each.scripts/run-protocol-cmd.sh(both) — the only script that diverges from mssql (addsCONTROL_VERSIONcomparison mode).scripts/start-backend.sh(both) — CDC-ready backend flags.Local verification (both engines, against published images on this machine):
start-backend.sh→ container healthy; directpsql/mysqlquery returns the 3 fixture rows.render-config.sh→ bridge IP substituted into a valid config.run-protocol-cmd.sh check→airbyte/source-postgres:3.8.1andairbyte/source-mysql:3.53.1both returnCONNECTION_STATUS: SUCCEEDED, wrapper exit code 0.run-protocol-cmd.sh discover(postgres) →samplestream discovered withid/label.Note on versioning
The merged mssql harness PR (#77775) added
.agents/skills/with nodockerImageTagbump or changelog row, so this PR follows that precedent (no runtime change, no release intended). Happy to add a patch bump + changelog rows to both connectors if the connector-CI matrix detector requires it.User Impact
None for end users — this only adds maintainer/agent test tooling under
.agents/.Can this PR be safely reverted and rolled back?
Link to Devin session: https://app.devin.ai/sessions/33ca2c4f3fe040659c79757d590f2c30