Skip to content

Commit 49886e3

Browse files
committed
Merge remote-tracking branch 'origin/main' into feature/cel-sampler
2 parents a6e408c + 754211b commit 49886e3

File tree

57 files changed

+1738
-312
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+1738
-312
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# this file exists so that Renovate can auto-update docker image versions that are then used elsewhere
2+
3+
FROM lycheeverse/lychee:sha-2aa22f8@sha256:2e3786630482c41f9f2dd081e06d7da1c36d66996e8cf6573409b8bc418d48c4 AS lychee

.github/scripts/link-check.sh

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
export MSYS_NO_PATHCONV=1 # for Git Bash on Windows
6+
7+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8+
ROOT_DIR="$SCRIPT_DIR/../.."
9+
DEPENDENCIES_DOCKERFILE="$SCRIPT_DIR/dependencies.Dockerfile"
10+
11+
# Parse command line arguments
12+
LOCAL_LINKS_ONLY=false
13+
TARGET=""
14+
15+
while [[ $# -gt 0 ]]; do
16+
case $1 in
17+
--local-links-only)
18+
LOCAL_LINKS_ONLY=true
19+
shift
20+
;;
21+
*)
22+
# Treat any other arguments as file paths
23+
TARGET="$TARGET $1"
24+
shift
25+
;;
26+
esac
27+
done
28+
29+
# Extract lychee version from dependencies.dockerfile
30+
LYCHEE_VERSION=$(grep "FROM lycheeverse/lychee:" "$DEPENDENCIES_DOCKERFILE" | sed 's/.*FROM lycheeverse\/lychee:\([^ ]*\).*/\1/')
31+
32+
if [[ -z "$TARGET" ]]; then
33+
TARGET="."
34+
fi
35+
36+
# Build the lychee command with optional GitHub token
37+
CMD="lycheeverse/lychee:$LYCHEE_VERSION --verbose --root-dir /data"
38+
39+
# Add GitHub token if available
40+
if [[ -n "$GITHUB_TOKEN" ]]; then
41+
CMD="$CMD --github-token $GITHUB_TOKEN"
42+
fi
43+
44+
if [[ "$LOCAL_LINKS_ONLY" == "true" ]]; then
45+
CMD="$CMD --scheme file --include-fragments"
46+
else
47+
CMD="$CMD --config .github/scripts/lychee-config.toml"
48+
fi
49+
50+
CMD="$CMD $TARGET"
51+
52+
# Determine if we should allocate a TTY
53+
DOCKER_FLAGS="--rm --init"
54+
if [[ -t 0 ]]; then
55+
DOCKER_FLAGS="$DOCKER_FLAGS -it"
56+
else
57+
DOCKER_FLAGS="$DOCKER_FLAGS -i"
58+
fi
59+
60+
# Run lychee with proper signal handling
61+
# shellcheck disable=SC2086
62+
exec docker run $DOCKER_FLAGS -v "$ROOT_DIR":/data -w /data $CMD

.github/scripts/lychee-config.toml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
timeout = 30
2+
retry_wait_time = 5
3+
max_retries = 6
4+
max_concurrency = 4
5+
6+
# Check link anchors
7+
include_fragments = true
8+
9+
# excluding links to pull requests and issues is done for performance
10+
# sonatype snapshots are currrently unbrowseable
11+
exclude = [
12+
"^https://github.com/open-telemetry/opentelemetry-java-contrib/(issues|pull)/\\d+$",
13+
'^https://central.sonatype.com/service/rest/repository/browse/maven-snapshots/io/opentelemetry/contrib/$',
14+
]
15+
16+

.github/workflows/assign-reviewers.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ jobs:
1818
pull-requests: write # for assigning reviewers
1919
runs-on: ubuntu-latest
2020
steps:
21-
- uses: open-telemetry/assign-reviewers-action@cb42e3ee14a59c01abccd401f126a0f4c3991cb3 # main
21+
- uses: open-telemetry/assign-reviewers-action@fcd27c5381c10288b23d423ab85473710a33389e # main
2222
with:
2323
config-file: .github/component_owners.yml

.github/workflows/build.yml

Lines changed: 69 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ on:
88
pull_request:
99
merge_group:
1010
workflow_dispatch:
11+
schedule:
12+
# Run daily at 7:30 AM UTC
13+
- cron: '30 7 * * *'
1114

1215
permissions:
1316
contents: read
@@ -36,29 +39,46 @@ jobs:
3639
run: ./gradlew build -x test
3740

3841
test:
39-
name: test (${{ matrix.test-java-version }})
40-
runs-on: ubuntu-latest
42+
name: Test
43+
runs-on: ${{ matrix.os }}
4144
strategy:
45+
fail-fast: false
4246
matrix:
47+
os:
48+
- macos-latest
49+
- macos-13
50+
- ubuntu-latest
51+
- windows-latest
4352
test-java-version:
4453
- 8
4554
- 11
4655
- 17
4756
- 21
4857
- 23
49-
fail-fast: false
58+
# macos-latest drops support for java 8 temurin. Run java 8 on macos-13. Run java 11, 17, 21 on macos-latest.
59+
exclude:
60+
- os: macos-latest
61+
test-java-version: 8
62+
- os: macos-13
63+
test-java-version: 11
64+
- os: macos-13
65+
test-java-version: 17
66+
- os: macos-13
67+
test-java-version: 21
68+
- os: macos-13
69+
test-java-version: 23
5070
steps:
5171
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
5272

53-
- id: setup-test-java
54-
name: Set up JDK ${{ matrix.test-java-version }} for running tests
73+
- id: setup-java-test
74+
name: Set up Java ${{ matrix.test-java-version }} for tests
5575
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
5676
with:
57-
# using zulu because new releases get published quickly
58-
distribution: zulu
77+
distribution: temurin
5978
java-version: ${{ matrix.test-java-version }}
6079

61-
- name: Set up JDK for running Gradle
80+
- id: setup-java
81+
name: Set up Java for build
6282
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
6383
with:
6484
distribution: temurin
@@ -71,9 +91,9 @@ jobs:
7191
- name: Gradle test
7292
run: >
7393
./gradlew test
74-
-PtestJavaVersion=${{ matrix.test-java-version }}
75-
-Porg.gradle.java.installations.paths=${{ steps.setup-test-java.outputs.path }}
76-
-Porg.gradle.java.installations.auto-download=false
94+
"-PtestJavaVersion=${{ matrix.test-java-version }}"
95+
"-Porg.gradle.java.installations.paths=${{ steps.setup-java-test.outputs.path }}"
96+
"-Porg.gradle.java.installations.auto-download=false"
7797
7898
integration-test:
7999
runs-on: ubuntu-latest
@@ -101,8 +121,15 @@ jobs:
101121
name: integration-test-results
102122
path: jmx-metrics/build/reports/tests/integrationTest
103123

104-
markdown-link-check:
105-
uses: ./.github/workflows/reusable-markdown-link-check.yml
124+
link-check:
125+
# merge group and push events are excluded to avoid unnecessary CI failures
126+
# (these failures will instead be captured by the daily scheduled run)
127+
#
128+
# release branches are excluded to avoid unnecessary maintenance if external links break
129+
# (and also because the README.md might need update on release branches before the release
130+
# download has been published)
131+
if: github.event_name != 'merge_group' && github.event_name != 'push' && !startsWith(github.ref_name, 'release/')
132+
uses: ./.github/workflows/reusable-link-check.yml
106133

107134
markdown-lint-check:
108135
uses: ./.github/workflows/reusable-markdown-lint.yml
@@ -125,7 +152,7 @@ jobs:
125152
# and so would not short-circuit if used in the second-last position
126153
name: publish-snapshots${{ (github.ref_name != 'main' || github.repository != 'open-telemetry/opentelemetry-java-contrib') && ' (skipped)' || '' }}
127154
needs:
128-
# intentionally not blocking snapshot publishing on markdown-link-check or misspell-check
155+
# intentionally not blocking snapshot publishing on link-check or misspell-check
129156
- build
130157
- integration-test
131158
runs-on: ubuntu-latest
@@ -178,3 +205,31 @@ jobs:
178205
)
179206
)
180207
run: exit 1 # fail
208+
209+
workflow-notification:
210+
permissions:
211+
contents: read
212+
issues: write
213+
if: (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && always()
214+
needs:
215+
- build
216+
- test
217+
- integration-test
218+
- link-check
219+
- markdown-lint-check
220+
- misspell-check
221+
- shell-script-check
222+
- publish-snapshots
223+
uses: ./.github/workflows/reusable-workflow-notification.yml
224+
with:
225+
success: >-
226+
${{
227+
needs.build.result == 'success' &&
228+
needs.test.result == 'success' &&
229+
needs.integration-test.result == 'success' &&
230+
needs.link-check.result == 'success' &&
231+
needs.markdown-lint-check.result == 'success' &&
232+
needs.misspell-check.result == 'success' &&
233+
needs.shell-script-check.result == 'success' &&
234+
needs.publish-snapshots.result == 'success'
235+
}}

.github/workflows/codeql.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1
5151

5252
- name: Initialize CodeQL
53-
uses: github/codeql-action/init@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
53+
uses: github/codeql-action/init@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
5454
with:
5555
languages: ${{ matrix.language }}
5656
# using "latest" helps to keep up with the latest Kotlin support
@@ -65,6 +65,6 @@ jobs:
6565
run: ./gradlew assemble --no-build-cache --no-daemon
6666

6767
- name: Perform CodeQL analysis
68-
uses: github/codeql-action/analyze@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
68+
uses: github/codeql-action/analyze@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
6969
with:
7070
category: "/language:${{matrix.language}}"

.github/workflows/ossf-scorecard.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,18 @@ jobs:
2323
with:
2424
persist-credentials: false
2525

26+
- uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
27+
id: create-token
28+
with:
29+
# analyzing classic branch protections requires a token with admin read permissions
30+
# see https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
31+
# and https://github.com/open-telemetry/community/issues/2769
32+
app-id: ${{ vars.OSSF_SCORECARD_APP_ID }}
33+
private-key: ${{ secrets.OSSF_SCORECARD_PRIVATE_KEY }}
34+
2635
- uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
2736
with:
37+
repo_token: ${{ steps.create-token.outputs.token }}
2838
results_file: results.sarif
2939
results_format: sarif
3040
publish_results: true
@@ -42,6 +52,6 @@ jobs:
4252
# Upload the results to GitHub's code scanning dashboard (optional).
4353
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
4454
- name: "Upload to code-scanning"
45-
uses: github/codeql-action/upload-sarif@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
55+
uses: github/codeql-action/upload-sarif@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
4656
with:
4757
sarif_file: results.sarif
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Reusable - Link check
2+
3+
on:
4+
workflow_call:
5+
6+
permissions:
7+
contents: read
8+
9+
jobs:
10+
link-check:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
14+
with:
15+
fetch-depth: 0 # needed for merge-base below
16+
17+
- name: Link check - relative links (all files)
18+
if: github.event_name == 'pull_request'
19+
env:
20+
GITHUB_TOKEN: ${{ github.token }}
21+
run: ./.github/scripts/link-check.sh --local-links-only
22+
23+
- name: Get modified files
24+
if: github.event_name == 'pull_request'
25+
id: modified-files
26+
run: |
27+
merge_base=$(git merge-base origin/${{ github.base_ref }} HEAD)
28+
# Using lychee's default extension filter here to match when it runs against all files
29+
modified_files=$(git diff --name-only $merge_base...${{ github.event.pull_request.head.sha }} \
30+
| grep -E '\.(md|mkd|mdx|mdown|mdwn|mkdn|mkdown|markdown|html|htm|txt)$' \
31+
| tr '\n' ' ' || true)
32+
echo "files=$modified_files" >> $GITHUB_OUTPUT
33+
echo "Modified files: $modified_files"
34+
35+
- name: Link check - all links (modified files only)
36+
if: github.event_name == 'pull_request' && steps.modified-files.outputs.files != ''
37+
env:
38+
GITHUB_TOKEN: ${{ github.token }}
39+
run: ./.github/scripts/link-check.sh ${{ steps.modified-files.outputs.files }}
40+
41+
- name: Link check - all links (all files)
42+
if: github.event_name != 'pull_request'
43+
env:
44+
GITHUB_TOKEN: ${{ github.token }}
45+
run: ./.github/scripts/link-check.sh

.github/workflows/reusable-markdown-link-check.yml

Lines changed: 0 additions & 23 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,26 @@
22

33
## Unreleased
44

5+
## Version 1.47.0 (2025-07-04)
6+
7+
### Disk buffering
8+
9+
- Shared storage
10+
([#1912](https://github.com/open-telemetry/opentelemetry-java-contrib/pull/1912))
11+
- Implementing ExtendedLogRecordData
12+
([#1918](https://github.com/open-telemetry/opentelemetry-java-contrib/pull/1918))
13+
- Add missing EventName to disk-buffering LogRecordDataMapper
14+
([#1950](https://github.com/open-telemetry/opentelemetry-java-contrib/pull/1950))
15+
516
### GCP authentication extension
617

718
- Update the internal implementation such that the required headers are retrieved
819
from the Google Auth Library instead of manually constructing and passing them.
920
([#1860](https://github.com/open-telemetry/opentelemetry-java-contrib/pull/1860))
21+
- Add metrics support to auth extension
22+
([#1891](https://github.com/open-telemetry/opentelemetry-java-contrib/pull/1891))
23+
- Update ConfigurableOptions to read from ConfigProperties
24+
([#1904](https://github.com/open-telemetry/opentelemetry-java-contrib/pull/1904))
1025

1126
### Inferred spans
1227

0 commit comments

Comments
 (0)