-
Notifications
You must be signed in to change notification settings - Fork 83
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into atomicjon/dataset_versions
- Loading branch information
Showing
140 changed files
with
14,957 additions
and
2,416 deletions.
There are no files selected for viewing
This file contains 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,88 @@ | ||
# An action for setting up poetry install with caching. | ||
# Using a custom action since the default action does not | ||
# take poetry install groups into account. | ||
# Action code from: | ||
# https://github.com/actions/setup-python/issues/505#issuecomment-1273013236 | ||
name: poetry-install-with-caching | ||
description: Poetry install with support for caching of dependency groups. | ||
|
||
inputs: | ||
python-version: | ||
description: Python version, supporting MAJOR.MINOR only | ||
required: true | ||
|
||
poetry-version: | ||
description: Poetry version | ||
required: true | ||
|
||
cache-key: | ||
description: Cache key to use for manual handling of caching | ||
required: true | ||
|
||
runs: | ||
using: composite | ||
steps: | ||
- uses: actions/setup-python@v5 | ||
name: Setup python ${{ inputs.python-version }} | ||
id: setup-python | ||
with: | ||
python-version: ${{ inputs.python-version }} | ||
|
||
- uses: actions/cache@v3 | ||
id: cache-bin-poetry | ||
name: Cache Poetry binary - Python ${{ inputs.python-version }} | ||
env: | ||
SEGMENT_DOWNLOAD_TIMEOUT_MIN: "1" | ||
with: | ||
path: | | ||
/opt/pipx/venvs/poetry | ||
# This step caches the poetry installation, so make sure it's keyed on the poetry version as well. | ||
key: bin-poetry-${{ runner.os }}-${{ runner.arch }}-py-${{ inputs.python-version }}-${{ inputs.poetry-version }} | ||
|
||
- name: Refresh shell hashtable and fixup softlinks | ||
if: steps.cache-bin-poetry.outputs.cache-hit == 'true' | ||
shell: bash | ||
env: | ||
POETRY_VERSION: ${{ inputs.poetry-version }} | ||
PYTHON_VERSION: ${{ inputs.python-version }} | ||
run: | | ||
set -eux | ||
# Refresh the shell hashtable, to ensure correct `which` output. | ||
hash -r | ||
# `actions/cache@v3` doesn't always seem able to correctly unpack softlinks. | ||
# Delete and recreate the softlinks pipx expects to have. | ||
rm /opt/pipx/venvs/poetry/bin/python | ||
cd /opt/pipx/venvs/poetry/bin | ||
ln -s "$(which "python$PYTHON_VERSION")" python | ||
chmod +x python | ||
cd /opt/pipx_bin/ | ||
ln -s /opt/pipx/venvs/poetry/bin/poetry poetry | ||
chmod +x poetry | ||
# Ensure everything got set up correctly. | ||
/opt/pipx/venvs/poetry/bin/python --version | ||
/opt/pipx_bin/poetry --version | ||
- name: Install poetry | ||
if: steps.cache-bin-poetry.outputs.cache-hit != 'true' | ||
shell: bash | ||
env: | ||
POETRY_VERSION: ${{ inputs.poetry-version }} | ||
PYTHON_VERSION: ${{ inputs.python-version }} | ||
# Install poetry using the python version installed by setup-python step. | ||
run: pipx install "poetry==$POETRY_VERSION" --python '${{ steps.setup-python.outputs.python-path }}' --verbose | ||
|
||
- name: Restore pip and poetry cached dependencies | ||
uses: actions/cache@v3 | ||
env: | ||
SEGMENT_DOWNLOAD_TIMEOUT_MIN: "4" | ||
with: | ||
path: | | ||
~/.cache/pip | ||
~/.cache/pypoetry/virtualenvs | ||
~/.cache/pypoetry/cache | ||
~/.cache/pypoetry/artifacts | ||
./.venv | ||
key: py-deps-${{ runner.os }}-${{ runner.arch }}-py-${{ inputs.python-version }}-poetry-${{ inputs.poetry-version }}-${{ inputs.cache-key }}-${{ hashFiles('./poetry.lock') }} |
This file contains 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 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,37 @@ | ||
name: py-baseline | ||
|
||
on: | ||
workflow_dispatch: | ||
push: | ||
branches: [main] | ||
paths: | ||
- "python/langsmith/**" | ||
|
||
env: | ||
POETRY_VERSION: "1.7.1" | ||
|
||
jobs: | ||
benchmark: | ||
runs-on: ubuntu-latest | ||
defaults: | ||
run: | ||
working-directory: python | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- run: SHA=$(git rev-parse HEAD) && echo "SHA=$SHA" >> $GITHUB_ENV | ||
- name: Set up Python 3.11 + Poetry ${{ env.POETRY_VERSION }} | ||
uses: "./.github/actions/poetry_setup" | ||
with: | ||
python-version: "3.11" | ||
poetry-version: ${{ env.POETRY_VERSION }} | ||
cache-key: py-benchi | ||
- name: Install dependencies | ||
run: poetry install --with dev | ||
- name: Run benchmarks | ||
run: OUTPUT=out/benchmark-baseline.json make -s benchmark | ||
- name: Save outputs | ||
uses: actions/cache/save@v4 | ||
with: | ||
key: ${{ runner.os }}-benchmark-baseline-${{ env.SHA }} | ||
path: | | ||
python/out/benchmark-baseline.json |
This file contains 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,71 @@ | ||
name: py-bench | ||
|
||
on: | ||
pull_request: | ||
paths: | ||
- "python/langsmith/**" | ||
|
||
env: | ||
POETRY_VERSION: "1.7.1" | ||
|
||
jobs: | ||
benchmark: | ||
runs-on: ubuntu-latest | ||
defaults: | ||
run: | ||
working-directory: python | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- id: files | ||
name: Get changed files | ||
uses: Ana06/[email protected] | ||
with: | ||
format: json | ||
- name: Set up Python 3.11 + Poetry ${{ env.POETRY_VERSION }} | ||
uses: "./.github/actions/poetry_setup" | ||
with: | ||
python-version: "3.11" | ||
poetry-version: ${{ env.POETRY_VERSION }} | ||
cache-key: py-bench | ||
- name: Install dependencies | ||
run: poetry install --with dev | ||
- name: Download baseline | ||
uses: actions/cache/restore@v4 | ||
with: | ||
key: ${{ runner.os }}-benchmark-baseline | ||
restore-keys: | | ||
${{ runner.os }}-benchmark-baseline- | ||
fail-on-cache-miss: true | ||
path: | | ||
python/out/benchmark-baseline.json | ||
- name: Run benchmarks | ||
id: benchmark | ||
run: | | ||
{ | ||
echo 'OUTPUT<<EOF' | ||
make -s benchmark | ||
echo EOF | ||
} >> "$GITHUB_OUTPUT" | ||
- name: Compare benchmarks | ||
id: compare | ||
run: | | ||
{ | ||
echo 'OUTPUT<<EOF' | ||
mv out/benchmark-baseline.json out/main.json | ||
mv out/benchmark.json out/changes.json | ||
poetry run pyperf compare_to out/main.json out/changes.json --table --group-by-speed | ||
echo EOF | ||
} >> "$GITHUB_OUTPUT" | ||
- name: Annotation | ||
uses: actions/github-script@v7 | ||
with: | ||
script: | | ||
const file = JSON.parse(`${{ steps.files.outputs.added_modified_renamed }}`)[0] | ||
core.notice(`${{ steps.benchmark.outputs.OUTPUT }}`, { | ||
title: 'Benchmark results', | ||
file, | ||
}) | ||
core.notice(`${{ steps.compare.outputs.OUTPUT }}`, { | ||
title: 'Comparison against main', | ||
file, | ||
}) |
This file contains 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 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 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,45 @@ | ||
name: "CI: Test Docker Compose" | ||
|
||
on: | ||
push: | ||
branches: [ main ] | ||
paths: | ||
pull_request: | ||
branches: [ main ] | ||
paths: | ||
- ".github/workflows/test_docker_compose.yml" | ||
- "python/langsmith/cli/docker-compose.yaml" | ||
|
||
|
||
concurrency: | ||
group: "test-docker-compose" | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
|
||
docker-compose: | ||
timeout-minutes: 10 | ||
runs-on: ubuntu-latest | ||
|
||
env: | ||
LANGSMITH_LICENSE_KEY: ${{ secrets.LANGSMITH_LICENSE_KEY }} | ||
API_KEY_SALT: test | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v1 | ||
|
||
- uses: KengoTODA/actions-setup-docker-compose@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Start containers | ||
working-directory: python/langsmith/cli | ||
run: docker compose up -d | ||
|
||
- name: sleep 30 seconds | ||
run: sleep 30 | ||
|
||
- name: Check backend health | ||
run: curl localhost:1980/api/info | ||
|
This file contains 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,35 @@ | ||
# Read the Docs configuration file | ||
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details | ||
|
||
# Required | ||
version: 2 | ||
|
||
formats: | ||
|
||
# Set the version of Python and other tools you might need | ||
build: | ||
os: ubuntu-22.04 | ||
tools: | ||
python: "3.11" | ||
commands: | ||
- mkdir -p $READTHEDOCS_OUTPUT | ||
- echo "Building docs" | ||
- pip install -U uv | ||
- uv venv | ||
- . .venv/bin/activate | ||
- uv pip install -r python/docs/requirements.txt | ||
- . .venv/bin/activate && cd python/docs && make clobber generate-api-rst html && cd ../.. | ||
- cp -r python/docs/_build/html $READTHEDOCS_OUTPUT | ||
# Build documentation in the docs/ directory with Sphinx | ||
sphinx: | ||
configuration: python/docs/conf.py | ||
|
||
# If using Sphinx, optionally build your docs in additional formats such as PDF | ||
# formats: | ||
|
||
# Optionally declare the Python requirements required to build your docs | ||
python: | ||
install: | ||
- requirements: python/docs/requirements.txt |
Oops, something went wrong.