Repository navigation
ci: make /evals compare a PR with its base by default - #1402
Caleb Evans (calebevans-ab) wants to merge 7 commits into
Conversation
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
|
Note 📝 PR Converted to Draft More info...Thank you for creating this PR. As a policy to protect our engineers' time, Airbyte requires all PRs to be created first in draft status. Your PR has been automatically converted to draft status in respect for this policy. As soon as your PR is ready for formal review, you can proceed to convert the PR to "ready for review" status by clicking the "Ready for review" button at the bottom of the PR page. To skip draft status in future PRs, please include |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. 💡 Show Tips and TricksTesting This PyAirbyte VersionYou can test this version of PyAirbyte using the following: # Run PyAirbyte CLI from this branch:
uvx --from 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1792195132-evals-compare' pyairbyte --help
# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1792195132-evals-compare'PR Slash CommandsAirbyte Maintainers can execute the following slash commands on your PR:
📚 Show Repo GuidanceHelpful ResourcesCommunity SupportQuestions? Join the #pyairbyte channel in our Slack workspace. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2fb9dd6e42
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "Codex (@codex) review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".
Code coverage overviewLanguages: Python Python / code-coverage/pytest-no-creds
View coverage of the 10 most impacted files.
Python / code-coverage/pytest
View coverage of the 10 most impacted files.
Python / code-coverage/pytest-unit
Line coverage data for the main branch is not yet available. View coverage of the 10 most covered files.
ℹ️ Calculations represent line coverage. Results may change as calculations are updated. Updated |
/evals compare=true to compare a PR's evals with its base/evals compare=... to compare a PR's evals with its base or any target
|
Codex (@codex) review |
|
Codex Review: Didn't find any major issues. 🚀 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback". |
/evals compare=... to compare a PR's evals with its base or any target/evals compare a PR with its base by default
|
Codex (@codex) review |
|
Codex Review: Didn't find any major issues. You're on a roll. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback". |
Summary
TL;DR: Plain
/evalsnow compares the PR with its base branch, running only the scenarios for the MCP tools the PR changed, and posts a before/after table as the PR comment./evals full=truecompares on the full suite./evals compare=<target>compares with a release, commit, branch or another PR instead (e.g.compare=main,compare=1.0.0-rc.33,compare=#1399)./evals compare=falseruns only the PR and posts a full results comment (headline, what ran, per-harness counts, one row per failing trial) instead of one line.evals-command.ymlgets acompareinput that defaults totrueand acceptstrue,falseor a target matching^#?[A-Za-z0-9][A-Za-z0-9_./-]*$. Anything else fails. A target is dispatched as-f compare=true -f compare_to=<target>to cloud-mcp-evalsevals.yml(airbytehq/cloud-mcp-evals#65, which needs to merge first).comparison-<run_id>artifact and posts that Markdown viabody-path, plus a link to the full run.compare=false, the report step downloads thecomment-<run_id>artifact (rendered by cloud-mcp-evals Feat: Add BigQuery cache support; Fix: IPython rendering bug when using a TTY #65) and posts it as-is. If the artifact isn't there, it falls back to the old one-line summary.full=,ref=andcompare=are removed from the free-form arguments. The rest still goes torun_args./evalsCLI arguments through to Cloud MCP evals #1401'srun_argspassthrough ontomain. ci: pass/evalsCLI arguments through to Cloud MCP evals #1401 merged intorelease-candidate/v1, but slash commands run frommain, so neither change works until it's here.full=true,compare=<target>andcompare=false, and say to write options as--repeats 3, not--repeats=3(the dispatcher treatskey=valuetokens as workflow inputs).Verification:
actionlintpasses. The mode-parsing step was checked withtrue,false,main,#1399and1.0.0-rc.33, withfull=trueand without it, andbad;rmis rejected. The compare and non-compare comment bodies were checked against real comparison output. The non-compare comment path was simulated locally with a stubbedgh: with thecomment-<run_id>artifact it postscomment.mdunchanged; without it, it falls back to the one-line summary built from run 38980034242's evidence. No real/evalscomment has run yet, because the slash command dispatches cloud-mcp-evals frommain, where #65 isn't merged.Link to Devin session: https://app.devin.ai/sessions/db7acb18b78e45c48bbd1d265dc3e254
Requested by: Caleb Evans (@calebevans-ab)