Skip to content

feat(langchain): add ChatAnthropic support to langchain instrumentation #800

feat(langchain): add ChatAnthropic support to langchain instrumentation

feat(langchain): add ChatAnthropic support to langchain instrumentation #800

Workflow file for this run

# This action requires that any PR targeting the main branch should add a
# changelog fragment file in a .changelog/ directory under the affected
# package. If a changelog entry is not required, add the "Skip Changelog"
# label to disable this action.
name: changelog
on:
pull_request:
types: [opened, synchronize, reopened, labeled, unlabeled]
branches:
- main
permissions:
contents: read
jobs:
changelog:
runs-on: ubuntu-latest
if: >-
${{
!contains(github.event.pull_request.labels.*.name, 'dependencies') &&
!contains(github.event.pull_request.labels.*.name, 'Skip Changelog')
}}
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0
- name: Fetch base branch
run: git fetch origin ${{ github.base_ref }} --depth=1
- name: Ensure no direct changes to CHANGELOG.md
run: |
if [[ $(git diff --name-only FETCH_HEAD -- '**/CHANGELOG.md') ]]
then
echo "CHANGELOG.md files should not be directly modified."
echo "Please add a changelog fragment file to the affected package's .changelog/ directory instead."
echo "See CONTRIBUTING.md for details."
echo ""
echo "Or add the \"Skip Changelog\" label if this job should be skipped."
false
fi
- name: Check for changelog fragment
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
fragments=$(git diff --diff-filter=A --name-only FETCH_HEAD -- '**/.changelog/*' | grep -v '/\.gitignore$' || true)
if [[ -z "$fragments" ]]; then
echo "No changelog fragment found for this PR."
echo ""
echo "Add a file named <package>/.changelog/${PR_NUMBER}.<type>"
echo "where <type> is one of: added, changed, deprecated, removed, fixed"
echo ""
echo "See CONTRIBUTING.md for details."
echo ""
echo "Or add the \"Skip Changelog\" label if this job should be skipped."
exit 1
fi
invalid=()
while IFS= read -r f; do
base=$(basename "$f")
if [[ ! "$base" =~ ^([0-9]+)\.(added|changed|deprecated|removed|fixed)$ ]]; then
invalid+=("$f (expected <PR_NUMBER>.<type>; type one of added, changed, deprecated, removed, fixed)")
continue
fi
if [[ "${BASH_REMATCH[1]}" != "${PR_NUMBER}" ]]; then
invalid+=("$f (PR number ${BASH_REMATCH[1]} does not match this PR's number ${PR_NUMBER})")
fi
done <<< "$fragments"
if (( ${#invalid[@]} > 0 )); then
echo "Invalid changelog fragment(s):"
for msg in "${invalid[@]}"; do
echo " $msg"
done
exit 1
fi
echo "Found changelog fragment(s):"
echo "$fragments"
- name: Set up Python
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: "3.14"
- name: Set up uv
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
- name: Preview changelogs
run: |
set -eu
for pkg in instrumentation/* util/opentelemetry-util-genai; do
[ -f "$pkg/pyproject.toml" ] || continue
grep -q "tool.towncrier" "$pkg/pyproject.toml" || continue
echo "=== $pkg ==="
(cd "$pkg" && uvx --from towncrier==25.8.0 towncrier build --draft --version Unreleased)
done