Skip to content

Commit 0928f13

Browse files
authored
chore(repo): drop DEPENDENCIES.md per ASF policy (#3222)
1 parent 86bf419 commit 0928f13

40 files changed

Lines changed: 879 additions & 1724 deletions

.dockerignore

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,16 @@
1111
/licenses
1212
/local_data
1313
/performance_results
14-
/scripts
14+
# Selectively exclude scripts/ subdirs not needed in container builds.
15+
# scripts/ci/third-party-licenses.sh + render-node-licenses.mjs are
16+
# required by the convenience-binary Dockerfiles to render LICENSE-binary
17+
# at build time.
18+
/scripts/dashboard
19+
/scripts/performance
20+
/scripts/*.sh
21+
/scripts/ci/*
22+
!/scripts/ci/third-party-licenses.sh
23+
!/scripts/ci/render-node-licenses.mjs
1524
**/target
1625
/target
1726
!/target/debug/iggy

.github/actions/utils/docker-buildx/action.yml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -331,12 +331,7 @@ runs:
331331
id: ctx
332332
shell: bash
333333
run: |
334-
# For web-ui, the context should be the web directory
335-
if [ "${{ inputs.component }}" = "web-ui" ]; then
336-
context="web"
337-
else
338-
context="${{ inputs.context }}"
339-
fi
334+
context="${{ inputs.context }}"
340335
echo "context=$context" >> "$GITHUB_OUTPUT"
341336
echo "📁 Build context: $context"
342337
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
# Run the per-artifact third-party license validation matrix that ASF
19+
# release policy requires for convenience binaries (Docker images, PyPI
20+
# wheels). Single source of truth shared by the pre-merge gate
21+
# (.github/workflows/_common.yml) and the release gate
22+
# (.github/workflows/publish.yml). Adding a new convenience artifact
23+
# means adding ONE step here, never two.
24+
25+
name: validate-third-party-licenses
26+
description: Validate every published artifact's bundled third-party licenses against the ASF accept list.
27+
inputs:
28+
node-version:
29+
description: "Node.js version used by the npm path"
30+
required: false
31+
default: "23"
32+
33+
runs:
34+
using: composite
35+
steps:
36+
- name: Setup Node.js
37+
uses: actions/setup-node@v6
38+
with:
39+
node-version: ${{ inputs.node-version }}
40+
41+
- name: Setup Rust with cache
42+
uses: ./.github/actions/utils/setup-rust-with-cache
43+
with:
44+
read-cache: "false"
45+
46+
- name: Install cargo-about
47+
shell: bash
48+
run: |
49+
TARGET="$(uname -m)-unknown-linux-musl"
50+
curl -sSfL "https://github.com/EmbarkStudios/cargo-about/releases/download/0.9.0/cargo-about-0.9.0-${TARGET}.tar.gz" \
51+
| tar -xz -C "$HOME/.cargo/bin" --strip-components=1 \
52+
"cargo-about-0.9.0-${TARGET}/cargo-about"
53+
54+
- name: Validate apache/iggy bundle (server + CLI + embedded web)
55+
shell: bash
56+
run: ./scripts/ci/third-party-licenses.sh --validate
57+
--manifest core/server/Cargo.toml
58+
--manifest core/cli/Cargo.toml
59+
--manifest web
60+
61+
- name: Validate iggy-mcp bundle
62+
shell: bash
63+
run: ./scripts/ci/third-party-licenses.sh --validate --manifest core/ai/mcp/Cargo.toml
64+
65+
- name: Validate iggy-bench-dashboard bundle
66+
shell: bash
67+
run: ./scripts/ci/third-party-licenses.sh --validate --manifest core/bench/dashboard/server/Cargo.toml
68+
69+
- name: Validate iggy-connect bundle
70+
shell: bash
71+
run: ./scripts/ci/third-party-licenses.sh --validate --manifest core/connectors/runtime/Cargo.toml
72+
73+
- name: Validate Python wheel bundle
74+
shell: bash
75+
run: ./scripts/ci/third-party-licenses.sh --validate --manifest foreign/python/Cargo.toml
76+
77+
- name: Validate web UI bundle
78+
shell: bash
79+
run: ./scripts/ci/third-party-licenses.sh --validate --manifest web

.github/workflows/_build_python_wheels.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,13 @@ jobs:
8787
- name: Setup Rust with cache
8888
uses: ./.github/actions/utils/setup-rust-with-cache
8989

90+
- name: Generate third-party license manifest
91+
run: |
92+
TARGET="$(uname -m)-unknown-linux-musl"
93+
curl -sSfL "https://github.com/EmbarkStudios/cargo-about/releases/download/0.9.0/cargo-about-0.9.0-${TARGET}.tar.gz" \
94+
| tar -xz -C "$HOME/.cargo/bin" --strip-components=1 "cargo-about-0.9.0-${TARGET}/cargo-about"
95+
./scripts/ci/third-party-licenses.sh --generate --manifest foreign/python/Cargo.toml --output foreign/python/LICENSE-binary
96+
9097
- name: Build wheels
9198
uses: PyO3/maturin-action@v1
9299
with:
@@ -139,6 +146,24 @@ jobs:
139146
with:
140147
python-version: "3.11"
141148

149+
- name: Setup Rust with cache
150+
uses: ./.github/actions/utils/setup-rust-with-cache
151+
152+
- name: Generate third-party license manifest
153+
run: |
154+
# Embark Studios releases an aarch64-apple-darwin tarball but
155+
# NOT x86_64-apple-darwin (404 as of 0.9.0). Intel macOS
156+
# falls back to compiling cargo-about from source.
157+
ARCH="$(uname -m | sed 's/arm64/aarch64/')"
158+
if [ "$ARCH" = "aarch64" ]; then
159+
TARGET="aarch64-apple-darwin"
160+
curl -sSfL "https://github.com/EmbarkStudios/cargo-about/releases/download/0.9.0/cargo-about-0.9.0-${TARGET}.tar.gz" \
161+
| tar -xz -C "$HOME/.cargo/bin" --strip-components=1 "cargo-about-0.9.0-${TARGET}/cargo-about"
162+
else
163+
cargo install cargo-about --locked --version 0.9.0 --features cli
164+
fi
165+
./scripts/ci/third-party-licenses.sh --generate --manifest foreign/python/Cargo.toml --output foreign/python/LICENSE-binary
166+
142167
- name: Build wheels
143168
uses: PyO3/maturin-action@v1
144169
with:

.github/workflows/_common.yml

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -154,21 +154,12 @@ jobs:
154154
- name: Check Apache license headers
155155
run: ./scripts/ci/license-headers.sh --check
156156

157-
license-list:
158-
name: Check licenses list
157+
third-party-licenses:
158+
name: Validate third-party licenses
159159
runs-on: ubuntu-latest
160160
steps:
161161
- uses: actions/checkout@v6
162-
163-
- name: Setup Rust toolchain
164-
uses: ./.github/actions/utils/setup-rust-with-cache
165-
with:
166-
read-cache: "false"
167-
168-
- name: Install cargo-license
169-
run: cargo install cargo-license
170-
171-
- run: ./scripts/ci/licenses-list.sh --check
162+
- uses: ./.github/actions/utils/validate-third-party-licenses
172163

173164
markdown:
174165
name: Markdown lint
@@ -280,7 +271,7 @@ jobs:
280271
version-consistency,
281272
pr-title,
282273
license-headers,
283-
license-list,
274+
third-party-licenses,
284275
markdown,
285276
shellcheck,
286277
trailing-whitespace,
@@ -320,7 +311,7 @@ jobs:
320311
PYTHON_VERSIONS="${{ needs.python-versions.result }}"
321312
VERSION_CONSISTENCY="${{ needs.version-consistency.result }}"
322313
LICENSE_HEADERS="${{ needs.license-headers.result }}"
323-
LICENSE_LIST="${{ needs.license-list.result }}"
314+
THIRD_PARTY_LICENSES="${{ needs.third-party-licenses.result }}"
324315
MARKDOWN="${{ needs.markdown.result }}"
325316
326317
if [ "$RUST_VERSIONS" = "success" ]; then
@@ -355,12 +346,12 @@ jobs:
355346
echo "| ⏭️ License Headers | $LICENSE_HEADERS | Check skipped |" >> $GITHUB_STEP_SUMMARY
356347
fi
357348
358-
if [ "$LICENSE_LIST" = "success" ]; then
359-
echo "| ✅ License List | success | Dependencies licenses validated |" >> $GITHUB_STEP_SUMMARY
360-
elif [ "$LICENSE_LIST" = "failure" ]; then
361-
echo "| ❌ License List | failure | License list needs update |" >> $GITHUB_STEP_SUMMARY
349+
if [ "$THIRD_PARTY_LICENSES" = "success" ]; then
350+
echo "| ✅ Third-Party Licenses | success | All deps in about.toml accept list |" >> $GITHUB_STEP_SUMMARY
351+
elif [ "$THIRD_PARTY_LICENSES" = "failure" ]; then
352+
echo "| ❌ Third-Party Licenses | failure | Disallowed license detected (see job log) |" >> $GITHUB_STEP_SUMMARY
362353
else
363-
echo "| ⏭️ License List | $LICENSE_LIST | Check skipped |" >> $GITHUB_STEP_SUMMARY
354+
echo "| ⏭️ Third-Party Licenses | $THIRD_PARTY_LICENSES | Check skipped |" >> $GITHUB_STEP_SUMMARY
364355
fi
365356
366357
if [ "$MARKDOWN" = "success" ]; then

.github/workflows/publish.yml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,9 +235,25 @@ jobs:
235235
echo "Commit details:"
236236
git log -1 --pretty=format:" Author: %an <%ae>%n Date: %ad%n Subject: %s" "$COMMIT"
237237
238+
validate-licenses:
239+
name: Validate third-party licenses (release gate)
240+
needs: validate
241+
runs-on: ubuntu-latest
242+
# Re-runs the same per-artifact validation that pre-merge enforces,
243+
# against the resolved release commit. Tags can point at commits
244+
# older than the pre-merge gate, or be created via direct push that
245+
# bypassed PR review, so a release-time gate is required to keep the
246+
# policy contract intact. Composite action is shared with
247+
# .github/workflows/_common.yml.
248+
steps:
249+
- uses: actions/checkout@v6
250+
with:
251+
ref: ${{ needs.validate.outputs.commit }}
252+
- uses: ./.github/actions/utils/validate-third-party-licenses
253+
238254
plan:
239255
name: Build publish plan
240-
needs: validate
256+
needs: [validate, validate-licenses]
241257
if: needs.validate.outputs.has_targets == 'true'
242258
runs-on: ubuntu-latest
243259
outputs:
@@ -1294,6 +1310,7 @@ jobs:
12941310
needs:
12951311
[
12961312
validate,
1313+
validate-licenses,
12971314
plan,
12981315
check-tags,
12991316
build-python-wheels,

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,5 @@ foreign/node/.npm
4040
*.out
4141
go.work
4242
core/bench/dashboard/frontend/dist
43+
LICENSE-binary
44+
**/LICENSE-binary

.pre-commit-config.yaml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,6 @@ repos:
6363
language: system
6464
pass_filenames: false
6565

66-
- id: licenses-list
67-
name: licenses list
68-
entry: ./scripts/ci/licenses-list.sh
69-
args: ["--fix"]
70-
language: system
71-
files: ^Cargo\.lock$
72-
pass_filenames: false
73-
7466
- id: rust-version-sync
7567
name: rust version sync
7668
entry: ./scripts/ci/sync-rust-version.sh

0 commit comments

Comments
 (0)