Skip to content

Commit d8cb4ef

Browse files
authored
Merge branch 'main' into hf/06b-audio-upload
2 parents 56286b9 + 1abb300 commit d8cb4ef

58 files changed

Lines changed: 10098 additions & 5109 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
👋 Thanks for your first contribution to Texera, @{{author}}!
2+
3+
If you're looking for a good place to start, browse issues labeled [`starter-task`](https://github.com/{{owner}}/{{repo}}/issues?q=is%3Aissue+is%3Aopen+label%3Astarter-task); they're scoped to be approachable for newcomers.
4+
5+
You can drive common housekeeping yourself by commenting one of these commands on its own line:
6+
7+
- **Issues.** Comment `/take` to assign an open issue to yourself, or `/untake` to release it. You can find unclaimed work with the search filter `is:issue is:open no:assignee`.
8+
- **Sub-issues.** To link issues into a parent/child hierarchy, comment `/sub-issue #5166 #5222` on the parent to attach those children (or `/unsub-issue #5166 #5222` to detach them). From a child issue, comment `/parent-issue #5166` to set its parent, or `/unparent-issue` to clear it (the current parent is detected automatically). References may be written as `#5166` or as a bare `5166`; cross-repository references are not supported.
9+
- **Pull requests (author only).** Comment `/request-review @user` to request a review from someone, or `/unrequest-review @user` to withdraw that request.
10+
11+
Each command must match exactly: `/take this` will not work, only `/take` does. For the full contribution flow, see [CONTRIBUTING.md](https://github.com/{{owner}}/{{repo}}/blob/main/CONTRIBUTING.md).

.github/workflows/build.yml

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -229,12 +229,17 @@ jobs:
229229
sbt scalafmtCheckAll \
230230
"scalafixAll --check" \
231231
WorkflowExecutionService/dist
232-
- name: Unzip amber dist and check binary licenses
233-
# Per-module LICENSE-binary files live at the repo root after #4668;
234-
# the amber JVM dist is checked against amber/LICENSE-binary-java.
235-
# The audit always runs (mirroring the previous 'if: always()' on its
236-
# own step) and never fails the step; the binding check's exit code
237-
# drives it.
232+
- name: Unzip amber dist and check binary LICENSE + NOTICE
233+
# Per-module LICENSE-binary files live at the repo root after #4668.
234+
# One step covers the amber dist's third-party content end to end:
235+
# * LICENSE-binary-java — check bundled jars against the claimed
236+
# licenses (audit always runs and never fails the step);
237+
# * NOTICE-binary — regenerate from the same unzipped lib dir
238+
# via generate_notice_binary.py (plus amber/NOTICE-binary-python for
239+
# the non-jar python attributions) and diff against the committed
240+
# file. Drift means a dep changed without rerunning the generator —
241+
# fix by running:
242+
# ./bin/licensing/generate_notice_binary.py amber/NOTICE-binary /tmp/dists/amber-*/lib --extras amber/NOTICE-binary-python
238243
run: |
239244
set -euo pipefail
240245
mkdir -p /tmp/dists
@@ -245,6 +250,12 @@ jobs:
245250
--license-binary amber/LICENSE-binary-java \
246251
/tmp/dists/amber-*/lib || check_exit=$?
247252
./bin/licensing/audit_jar_licenses.py /tmp/dists/amber-*/lib || true
253+
254+
./bin/licensing/generate_notice_binary.py /tmp/notice-amber.txt /tmp/dists/amber-*/lib --extras amber/NOTICE-binary-python
255+
if ! diff -u amber/NOTICE-binary /tmp/notice-amber.txt; then
256+
echo "::error::amber/NOTICE-binary differs from generator output. Regenerate with bin/licensing/generate_notice_binary.py and commit."
257+
check_exit=1
258+
fi
248259
exit "$check_exit"
249260
- name: Create texera_db_for_test_cases
250261
run: psql -h localhost -U postgres -v DB_NAME=texera_db_for_test_cases -f sql/texera_ddl.sql
@@ -589,9 +600,16 @@ jobs:
589600
# Single sbt invocation so dist + test share compiled state. Use
590601
# `jacoco` so the codecov upload step has a report to pick up.
591602
run: sbt "${{ matrix.sbt_project }}/dist" "${{ matrix.sbt_project }}/jacoco"
592-
- name: Unzip ${{ matrix.service }} dist and check binary licenses
593-
# Each platform service has its own LICENSE-binary at the repo root
594-
# after #4668; check this service's dist against just its own file.
603+
- name: Unzip ${{ matrix.service }} dist and check binary LICENSE + NOTICE
604+
# Each platform service has its own LICENSE-binary / NOTICE-binary at
605+
# the repo root after #4668. One step covers both for this service's
606+
# dist:
607+
# * LICENSE-binary — check bundled jars against the claimed licenses
608+
# (audit always runs and never fails the step);
609+
# * NOTICE-binary — regenerate from the same unzipped lib dir via
610+
# generate_notice_binary.py and diff against the committed file.
611+
# Drift means a dep changed without rerunning the generator — fix:
612+
# ./bin/licensing/generate_notice_binary.py ${{ matrix.service }}/NOTICE-binary /tmp/dists/${{ matrix.service }}-*/lib
595613
run: |
596614
set -euo pipefail
597615
mkdir -p /tmp/dists
@@ -602,6 +620,12 @@ jobs:
602620
--license-binary ${{ matrix.service }}/LICENSE-binary \
603621
/tmp/dists/${{ matrix.service }}-*/lib || check_exit=$?
604622
./bin/licensing/audit_jar_licenses.py /tmp/dists/${{ matrix.service }}-*/lib || true
623+
624+
./bin/licensing/generate_notice_binary.py /tmp/notice-${{ matrix.service }}.txt /tmp/dists/${{ matrix.service }}-*/lib
625+
if ! diff -u ${{ matrix.service }}/NOTICE-binary /tmp/notice-${{ matrix.service }}.txt; then
626+
echo "::error::${{ matrix.service }}/NOTICE-binary differs from generator output. Regenerate with bin/licensing/generate_notice_binary.py and commit."
627+
check_exit=1
628+
fi
605629
exit "$check_exit"
606630
- name: Upload ${{ matrix.service }} coverage to Codecov
607631
# Per-service flag so each matrix entry has its own Codecov view

.github/workflows/welcome-first-time-contributor.yml

Lines changed: 21 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,16 @@ jobs:
4444
if: github.event.sender.type != 'Bot'
4545
runs-on: ubuntu-latest
4646
steps:
47+
# Check out the base ref (pull_request_target / issues both resolve to
48+
# the trusted base branch, never the fork head) so we can read the
49+
# welcome message template below. The template lives in its own .txt
50+
# file so editing the wording does not trigger a full CI run; see the
51+
# `ci` label exclusion in .github/labeler.yml.
52+
- uses: actions/checkout@v5
53+
with:
54+
persist-credentials: false
55+
sparse-checkout: .github/welcome-first-time-contributor.txt
56+
sparse-checkout-cone-mode: false
4757
- uses: actions/github-script@v8
4858
with:
4959
github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -104,46 +114,17 @@ jobs:
104114
return;
105115
}
106116
107-
const body = [
108-
MARKER,
109-
`👋 Thanks for your first contribution to Texera, @${author}!`,
110-
``,
111-
`You can drive common housekeeping tasks just by leaving a comment. Type the command on its own line.`,
112-
``,
113-
`### On issues`,
114-
``,
115-
`| Command | What it does |`,
116-
`|---|---|`,
117-
`| \`/take\` | Assign the issue to yourself (self-claim it) |`,
118-
`| \`/untake\` | Remove yourself as assignee |`,
119-
``,
120-
`To find unclaimed work, search \`is:issue is:open no:assignee\` — there's no "triage" label; the search filter *is* the triage state.`,
121-
``,
122-
`### Linking sub-issues`,
123-
``,
124-
`| Command | Where to run it | What it does |`,
125-
`|---|---|---|`,
126-
`| \`/sub-issue #12 #13\` | On the **parent** | Links #12 and #13 as children of this issue |`,
127-
`| \`/unsub-issue #12 #13\` | On the **parent** | Unlinks those children |`,
128-
`| \`/parent-issue #5\` | On the **child** | Sets #5 as this issue's parent |`,
129-
`| \`/unparent-issue\` | On the **child** | Removes this issue's parent (auto-detected) |`,
130-
`| \`/unparent-issue #5\` | On the **child** | Removes parent #5 explicitly |`,
131-
``,
132-
`You can write references as \`#12\` or bare \`12\`. Cross-repo references like \`owner/repo#12\` aren't supported and are ignored.`,
133-
``,
134-
`### On pull requests (author only)`,
135-
``,
136-
`| Command | What it does |`,
137-
`|---|---|`,
138-
`| \`/request-review @user [@user ...]\` | Request reviews from those users |`,
139-
`| \`/unrequest-review @user [@user ...]\` | Cancel those review requests |`,
140-
``,
141-
`You can mention teams as \`@org/team\`, and \`@copilot\` works too. Only the PR **author** can use these commands.`,
142-
``,
143-
`> **Note:** Commands must match exactly — \`/take this\` won't work, only \`/take\`. Bots are ignored, and you can't self-link an issue or set an issue as its own parent.`,
144-
``,
145-
`For the full contribution flow, see [CONTRIBUTING.md](https://github.com/${owner}/${repo}/blob/main/CONTRIBUTING.md).`,
146-
].join('\n');
117+
// Message body lives in .github/welcome-first-time-contributor.txt
118+
// so wording edits skip CI. Substitute the runtime placeholders
119+
// and prepend the idempotency marker.
120+
const fs = require('fs');
121+
const template = fs.readFileSync(
122+
'.github/welcome-first-time-contributor.txt', 'utf8',
123+
);
124+
const body = MARKER + '\n' + template
125+
.replaceAll('{{author}}', author)
126+
.replaceAll('{{owner}}', owner)
127+
.replaceAll('{{repo}}', repo);
147128
148129
try {
149130
await github.rest.issues.createComment({

.licenserc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ header:
2020
- '**/LICENSE-binary'
2121
- '**/LICENSE-binary-*'
2222
- '**/NOTICE-binary'
23+
- '**/NOTICE-binary-*'
2324
- '.dockerignore'
2425
- '.gitattributes'
2526
- '.github/PULL_REQUEST_TEMPLATE'

0 commit comments

Comments
 (0)