Skip to content

Add native Ruby eval support - #139

Open
Doug Guthrie (dpguthrie) wants to merge 2 commits into
mainfrom
feat/ruby-runtime-support
Open

Doug Guthrie (dpguthrie) wants to merge 2 commits into
mainfrom
feat/ruby-runtime-support

Conversation

@dpguthrie

@dpguthrie Doug Guthrie (dpguthrie) commented Sep 15, 2026

Copy link
Copy Markdown

Ruby evals cannot currently use the action's PR diff report. This adds runtime: ruby with direct Ruby and Bundler execution, using one explicit entrypoint that can run and report multiple evals.

The release includes:

  • strict runtime/package-manager validation and single-entrypoint handling, including paths with spaces and actionable missing executable errors
  • a Ruby-specific process path that leaves existing Node, Python, and Go command behavior unchanged
  • adapter-side normalization for Ruby's public REST summaries, including nullable comparison deltas
  • a complete examples/ruby workflow, deterministic eval, server-backed reporting helper, and helper tests
  • documentation for Ruby 3.2+, explicit baselines, evaluator/process failure behavior, and the ignored terminate_on_failure input
  • the rebuilt checked-in action bundle

The example keeps reporting application-owned for this first release. An optional follow-up in braintrust-sdk-ruby can own the server-backed summary method and JSONL reporter, centralizing flush/readiness retries, endpoint/auth selection, and serialization so users no longer copy the helper. This action change does not depend on that SDK work.

Validation:

  • pnpm --dir eval run all (format, lint, 16 tests, package)
  • ruby examples/ruby/test/braintrust_report_test.rb (8 tests, 25 assertions)
  • ruby -c examples/ruby/evals/run.rb
  • ruby -c examples/ruby/scripts/braintrust_report.rb
  • YAML parsing for action.yml and examples/ruby/ruby.yml
  • git diff --check
  • live GitHub Actions run: bundle exec ruby evals/run.rb produced a linked eval-action-ruby-ci report with a 100% Exact_match score and server metrics

Before publishing a release tag, complete the remaining live synthetic acceptance for an explicit comparison baseline, improvement/regression counts, execution failures, and push behavior.

Closes #86

@github-actions

github-actions Bot commented Sep 15, 2026

Copy link
Copy Markdown

Braintrust eval report

Say Hi Bot Python (abhijeet@braintrustdata.com-1789502231)

Name Average Improvements Regressions
Scores
Levenshtein 77.8% (+0pp) - -
Metrics
Llm_calls 0 (+0) - -
Tool_calls 0 (+0) - -
Errors 0 (+0) - -
Llm_errors 0 (+0) - -
Tool_errors 0 (+0) - -
Prompt_tokens 0tok (+0tok) - -
Prompt_cached_tokens 0tok (+0tok) - -
Prompt_cache_creation_tokens 0tok (+0tok) - -
Prompt_cache_creation_5m_tokens 0tok (+0tok) - -
Prompt_cache_creation_1h_tokens 0tok (+0tok) - -
Completion_tokens 0tok (+0tok) - -
Completion_reasoning_tokens 0tok (+0tok) - -
Total_tokens 0tok (+0tok) - -
Duration 0s (+0s) - 2 🔴

@github-actions

github-actions Bot commented Sep 15, 2026

Copy link
Copy Markdown

Braintrust eval report

Say Hi Bot Python (abhijeet@braintrustdata.com-1789502234)

Name Average Improvements Regressions
Scores
Levenshtein 77.8% (+0pp) - -
Metrics
Llm_calls 0 (+0) - -
Tool_calls 0 (+0) - -
Errors 0 (+0) - -
Llm_errors 0 (+0) - -
Tool_errors 0 (+0) - -
Prompt_tokens 0tok (+0tok) - -
Prompt_cached_tokens 0tok (+0tok) - -
Prompt_cache_creation_tokens 0tok (+0tok) - -
Prompt_cache_creation_5m_tokens 0tok (+0tok) - -
Prompt_cache_creation_1h_tokens 0tok (+0tok) - -
Completion_tokens 0tok (+0tok) - -
Completion_reasoning_tokens 0tok (+0tok) - -
Total_tokens 0tok (+0tok) - -
Duration 0s (0s) 2 🟢 -

@github-actions

github-actions Bot commented Sep 15, 2026

Copy link
Copy Markdown

Braintrust eval report

Console logging (HEAD-1789502242)

Name Average Improvements Regressions
Scores
Levenshtein 100% (+0pp) - -
Metrics
Llm_calls 0 (+0) - -
Tool_calls 0 (+0) - -
Errors 0 (+0) - -
Llm_errors 0 (+0) - -
Tool_errors 0 (+0) - -
Prompt_tokens 0tok (+0tok) - -
Prompt_cached_tokens 0tok (+0tok) - -
Prompt_cache_creation_tokens 0tok (+0tok) - -
Prompt_cache_creation_5m_tokens 0tok (+0tok) - -
Prompt_cache_creation_1h_tokens 0tok (+0tok) - -
Completion_tokens 0tok (+0tok) - -
Completion_reasoning_tokens 0tok (+0tok) - -
Total_tokens 0tok (+0tok) - -
Duration 0s (0s) 7 🟢 1 🔴

My Evaluation (HEAD-1789502242)

Name Average Improvements Regressions
Scores
Exact match 100% (+0pp) - -
Metrics
Llm_calls 0 (+0) - -
Tool_calls 0 (+0) - -
Errors 0 (+0) - -
Llm_errors 0 (+0) - -
Tool_errors 0 (+0) - -
Prompt_tokens 10tok (+0tok) - -
Prompt_cached_tokens 0tok (+0tok) - -
Prompt_cache_creation_tokens 0tok (+0tok) - -
Prompt_cache_creation_5m_tokens 0tok (+0tok) - -
Prompt_cache_creation_1h_tokens 0tok (+0tok) - -
Completion_tokens 2tok (+0tok) - -
Completion_reasoning_tokens 0tok (+0tok) - -
Total_tokens 12tok (+0tok) - -
Duration 0.62s (-0.25s) 1 🟢 -

Say Hi Bot (HEAD-1789502242)

Name Average Improvements Regressions
Scores
Levenshtein 100% (+0pp) - -
Metrics
Llm_calls 0 (+0) - -
Tool_calls 0 (+0) - -
Errors 0 (+0) - -
Llm_errors 0 (+0) - -
Tool_errors 0 (+0) - -
Prompt_tokens 0tok (+0tok) - -
Prompt_cached_tokens 0tok (+0tok) - -
Prompt_cache_creation_tokens 0tok (+0tok) - -
Prompt_cache_creation_5m_tokens 0tok (+0tok) - -
Prompt_cache_creation_1h_tokens 0tok (+0tok) - -
Completion_tokens 0tok (+0tok) - -
Completion_reasoning_tokens 0tok (+0tok) - -
Total_tokens 0tok (+0tok) - -
Duration 1s (0s) 18 🟢 -

@github-actions

github-actions Bot commented Sep 15, 2026

Copy link
Copy Markdown

Braintrust eval report

Say Hi Bot (HEAD-1789502238)

Name Average Improvements Regressions
Scores
Levenshtein 100% (+0pp) - -
Metrics
Llm_calls 0 (+0) - -
Tool_calls 0 (+0) - -
Errors 0 (+0) - -
Llm_errors 0 (+0) - -
Tool_errors 0 (+0) - -
Prompt_tokens 0tok (+0tok) - -
Prompt_cached_tokens 0tok (+0tok) - -
Prompt_cache_creation_tokens 0tok (+0tok) - -
Prompt_cache_creation_5m_tokens 0tok (+0tok) - -
Prompt_cache_creation_1h_tokens 0tok (+0tok) - -
Completion_tokens 0tok (+0tok) - -
Completion_reasoning_tokens 0tok (+0tok) - -
Total_tokens 0tok (+0tok) - -
Duration 1s (0s) 20 🟢 -

@github-actions

github-actions Bot commented Sep 15, 2026

Copy link
Copy Markdown

Braintrust eval report

Say Hi Bot (HEAD-1789502247)

Name Average Improvements Regressions
Scores
Levenshtein 100% (+0pp) - -
Metrics
Llm_calls 0 (+0) - -
Tool_calls 0 (+0) - -
Errors 0 (+0) - -
Llm_errors 0 (+0) - -
Tool_errors 0 (+0) - -
Prompt_tokens 0tok (+0tok) - -
Prompt_cached_tokens 0tok (+0tok) - -
Prompt_cache_creation_tokens 0tok (+0tok) - -
Prompt_cache_creation_5m_tokens 0tok (+0tok) - -
Prompt_cache_creation_1h_tokens 0tok (+0tok) - -
Completion_tokens 0tok (+0tok) - -
Completion_reasoning_tokens 0tok (+0tok) - -
Total_tokens 0tok (+0tok) - -
Duration 1s (+0s) - 20 🔴

@github-actions

github-actions Bot commented Sep 15, 2026

Copy link
Copy Markdown

Braintrust eval report

eval-action-ruby-ci (uppercase-35016210959-1)

Name Average Improvements Regressions
Scores
Exact_match 100% - -
Metrics
Llm_calls 0 - -
Tool_calls 0 - -
Errors 0 - -
Llm_errors 0 - -
Tool_errors 0 - -
Prompt_tokens 0tok - -
Prompt_cached_tokens 0tok - -
Prompt_cache_creation_tokens 0tok - -
Prompt_cache_creation_5m_tokens 0tok - -
Prompt_cache_creation_1h_tokens 0tok - -
Completion_tokens 0tok - -
Completion_reasoning_tokens 0tok - -
Total_tokens 0tok - -
Duration 0.22s - -

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.

Ruby Runtime?

1 participant