-
Notifications
You must be signed in to change notification settings - Fork 1
Release v2.6.0: Answer API, Speakeasy removal, flattened API surface #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
20 commits
Select commit
Hold shift + click to select a range
75115cd
Release v2.6.0: Answer API, Speakeasy removal, flattened API surface
tyler5673 0d03806
Address review feedback: fix MIGRATION anchor, CONTRIBUTING test cmd,…
tyler5673 fbc37fe
Clean up: delete stale generate-sdk skill, fix overlay comment in tes…
tyler5673 c892ed3
Fix MIGRATION: remove misleading 'reverted to keyed' language
tyler5673 4e7f7e5
Remove stale Speakeasy/overlay references from active files
tyler5673 730ce7d
Fix MIGRATION header: search endpoint didn't change, only the method
tyler5673 19cd6f6
Address review feedback: dataclass field, pip install, pytest-xdist, …
tyler5673 49ee6d6
Fix string comparison in _populate_from_globals: use != instead of is…
tyler5673 82f3ead
CI: exclude performance tests from test workflow
tyler5673 f3be297
CI: fix mock server health check and remove -x flag
tyler5673 97d6d8d
Add SDK drift check against You.com OpenAPI specs
tyler5673 28d37fc
Add POST /v1/answer route to Go mock server + mock server tests
tyler5673 4554bdb
Address review feedback: drift check permissions + context manager
tyler5673 8802f31
Add comprehensive CI checks + schema drift detection
tyler5673 bd6f97c
Address 6 review findings: client cleanup, security serializer, docs,…
tyler5673 2570ab5
Address 2 P1 review findings: async client close + server_url docs
tyler5673 3c1bbb7
Fix doc inaccuracies: host split, error count, mockserver refs
tyler5673 a6f698f
Remove stale lite references from FinanceResearchEffort docstrings
tyler5673 23903a8
Address review findings: drift reliability, test leaks, dep bounds
tyler5673 a6ed49c
Release as 3.0.0: fail-fast auth, lifecycle + normalization fixes
tyler5673 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| version: 2 | ||
| updates: | ||
| # The project resolves with uv and commits uv.lock; the `pip` ecosystem reads | ||
| # pyproject.toml but leaves the lockfile stale, so use `uv` instead. | ||
| - package-ecosystem: uv | ||
| directory: / | ||
| schedule: | ||
| interval: weekly | ||
| open-pull-requests-limit: 5 | ||
| groups: | ||
| dev-dependencies: | ||
| dependency-type: development | ||
| - package-ecosystem: github-actions | ||
| directory: / | ||
| schedule: | ||
| interval: weekly | ||
| open-pull-requests-limit: 5 |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,118 @@ | ||
| name: drift-check | ||
|
|
||
| on: | ||
| schedule: | ||
| # Every Monday at 9:00 UTC | ||
| - cron: "0 9 * * 1" | ||
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: read | ||
| issues: write | ||
|
|
||
| concurrency: | ||
| group: drift-check | ||
| cancel-in-progress: false | ||
|
|
||
| jobs: | ||
| drift-check: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Set up Python | ||
| uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: "3.12" | ||
|
|
||
| - name: Install SDK | ||
| run: | | ||
| python -m pip install --upgrade pip | ||
| pip install -e . | ||
|
|
||
| # Exit codes (see scripts/check_drift.py): 0 no drift, 1 drift, | ||
| # 2 specs unreachable, 3 the check itself is broken. Keeping these | ||
| # distinct is what stops a traceback from being filed as "drift". | ||
| - name: Run drift check | ||
| id: drift | ||
| run: | | ||
| set +e | ||
| OUTPUT=$(python scripts/check_drift.py --strict --verbose 2>&1) | ||
| EXIT_CODE=$? | ||
| echo "$OUTPUT" | ||
| # Random delimiter: a fixed "EOF" would break if it appeared in the output. | ||
| DELIM="drift_$(openssl rand -hex 8)" | ||
| { | ||
| echo "DRIFT_OUTPUT<<${DELIM}" | ||
| echo "$OUTPUT" | ||
| echo "${DELIM}" | ||
| } >> "$GITHUB_ENV" | ||
| echo "exit_code=$EXIT_CODE" >> "$GITHUB_OUTPUT" | ||
| exit 0 | ||
|
|
||
| - name: Report or update drift issue | ||
| if: steps.drift.outputs.exit_code == '1' | ||
| env: | ||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| DRIFT_OUTPUT: ${{ env.DRIFT_OUTPUT }} | ||
| RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | ||
| run: | | ||
| set -euo pipefail | ||
| gh label create drift --color FBCA04 \ | ||
| --description "SDK drift from OpenAPI specs" 2>/dev/null || true | ||
|
|
||
| # Build the body in a file so the fenced block isn't indented by the | ||
| # surrounding YAML block scalar (indented fences don't render). | ||
| { | ||
| echo "The drift check found differences between the You.com OpenAPI specs and the SDK." | ||
| echo | ||
| echo '```' | ||
| echo "${DRIFT_OUTPUT}" | ||
| echo '```' | ||
| echo | ||
| echo "Run \`python scripts/check_drift.py --verbose\` locally to reproduce." | ||
| echo | ||
| echo "[Workflow run](${RUN_URL})" | ||
| } > drift-body.md | ||
|
|
||
| # Update the existing issue instead of filing a duplicate every week. | ||
| EXISTING=$(gh issue list --label drift --state open \ | ||
| --json number --jq '.[0].number // empty') | ||
| if [ -n "${EXISTING}" ]; then | ||
| echo "Updating existing drift issue #${EXISTING}" | ||
| gh issue comment "${EXISTING}" --body-file drift-body.md | ||
| else | ||
| gh issue create \ | ||
| --title "SDK drift detected: OpenAPI specs vs SDK surface" \ | ||
| --body-file drift-body.md \ | ||
| --label drift | ||
| fi | ||
|
|
||
| - name: Report fetch error | ||
| if: steps.drift.outputs.exit_code == '2' | ||
| run: | | ||
| echo "::warning::Drift check could not fetch the OpenAPI specs (transient, not drift)." | ||
| echo "${DRIFT_OUTPUT}" | ||
| env: | ||
| DRIFT_OUTPUT: ${{ env.DRIFT_OUTPUT }} | ||
|
|
||
| # A broken checker is worse than drift: it reports "no drift" forever. | ||
| # Fail the job so the run goes red and someone looks at it. | ||
| - name: Fail on broken drift check | ||
| if: steps.drift.outputs.exit_code != '0' && steps.drift.outputs.exit_code != '1' && steps.drift.outputs.exit_code != '2' | ||
| run: | | ||
| echo "::error::Drift check exited ${{ steps.drift.outputs.exit_code }} — the check itself failed." | ||
| echo "${DRIFT_OUTPUT}" | ||
| exit 1 | ||
| env: | ||
| DRIFT_OUTPUT: ${{ env.DRIFT_OUTPUT }} | ||
|
|
||
| - name: Close stale drift issues | ||
| if: steps.drift.outputs.exit_code == '0' | ||
| env: | ||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| run: | | ||
| # No drift this run, so anything still open has been resolved. | ||
| gh issue list --label drift --state open --json number --jq '.[].number' | while read -r num; do | ||
| gh issue close "$num" --comment "No drift detected in the latest check. Closing." | ||
| done | ||
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.