From 35e519366bc8cae13f453064e85760bd03086f72 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Thu, 5 Mar 2026 17:23:08 +0100 Subject: [PATCH 01/10] GHA creation Signed-off-by: fantonangeli --- .../workflows/ci_check_license_headers.yaml | 55 +++++++++++++++++++ .rat-excludes | 9 +++ 2 files changed, 64 insertions(+) create mode 100644 .github/workflows/ci_check_license_headers.yaml create mode 100644 .rat-excludes diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml new file mode 100644 index 0000000..d23029e --- /dev/null +++ b/.github/workflows/ci_check_license_headers.yaml @@ -0,0 +1,55 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +name: "CI :: License headers" + +on: + push: + branches: [main] + pull_request: + branches: ["**"] + types: [opened, reopened, ready_for_review, synchronize] + +env: + APACHE_RAT_VERSION: 0.17 + +jobs: + check: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Download Apache RAT + run: | + curl -LO "https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${APACHE_RAT_VERSION}/apache-rat-${APACHE_RAT_VERSION}.jar" + + - name: Run Apache RAT + run: | + # Redirect output to .rat-reports file, continue even if RAT returns non-zero exit code because we want to print Unapproved documents + java -jar apache-rat-${APACHE_RAT_VERSION}.jar --input-exclude-file .rat-excludes -- . > .rat-reports 2>&1 || true + if grep -q "^! Unapproved:" .rat-reports; then + echo "❌ Apache RAT check FAILED - Files with unapproved licenses found:" + echo "" + grep "^! /" .rat-reports + exit 1 + else + echo "✅ Apache RAT check PASSED - All files have approved licenses." + fi diff --git a/.rat-excludes b/.rat-excludes new file mode 100644 index 0000000..14c2ed8 --- /dev/null +++ b/.rat-excludes @@ -0,0 +1,9 @@ +.gitattributes +.npmrc +.prettierignore +.rat-excludes +.rat-reports +pnpm-lock.yaml +pnpm-workspace.yaml +repo/graph.dot +repo/repo.iml From c6144751dc4dfe074c99bbeafb1411fcebeba446 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Thu, 5 Mar 2026 17:23:54 +0100 Subject: [PATCH 02/10] fix missing license Signed-off-by: fantonangeli --- .gitignore | 18 ++++++++++++++++++ README.md | 17 +++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/.gitignore b/.gitignore index 9a5aced..55d419b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,21 @@ +### +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + # Logs logs *.log diff --git a/README.md b/README.md index dd92ad0..95e4a13 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,19 @@ + + # editor CNCF Serverless Workflow Specification Visual Editor From 68eca735a9d70619111bb1a1fa48229103c82959 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Fri, 6 Mar 2026 18:19:05 +0100 Subject: [PATCH 03/10] Fixes comment: https://github.com/serverlessworkflow/editor/pull/27#discussion_r2891123913 Signed-off-by: fantonangeli --- .../workflows/ci_check_license_headers.yaml | 25 ++++++++--------- .gitignore | 28 +++++++++---------- README.md | 27 +++++++++--------- 3 files changed, 37 insertions(+), 43 deletions(-) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index d23029e..2032fed 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -1,20 +1,17 @@ # -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at +# Copyright 2021-Present The Serverless Workflow Specification Authors # -# http://www.apache.org/licenses/LICENSE-2.0 +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # name: "CI :: License headers" diff --git a/.gitignore b/.gitignore index 55d419b..39cd20d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,18 @@ -### -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# Copyright 2021-Present The Serverless Workflow Specification Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. # Logs logs diff --git a/README.md b/README.md index 95e4a13..aac375d 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,17 @@ # editor From b095ee2ad4c14b42a9269b39ecd918bf279369af Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Fri, 6 Mar 2026 19:39:04 +0100 Subject: [PATCH 04/10] Fix copilot comments Signed-off-by: fantonangeli --- .../workflows/ci_check_license_headers.yaml | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index 2032fed..0df84e1 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -34,14 +34,38 @@ jobs: - name: Checkout code uses: actions/checkout@v3 + - name: "Setup JDK 17" + uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: "temurin" + - name: Download Apache RAT run: | - curl -LO "https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${APACHE_RAT_VERSION}/apache-rat-${APACHE_RAT_VERSION}.jar" + set -e + BASE_URL="https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${APACHE_RAT_VERSION}" + APACHE_RAT_JAR="apache-rat-${APACHE_RAT_VERSION}.jar" + APACHE_RAT_SHA="apache-rat-${APACHE_RAT_VERSION}.jar.sha1" + + # Download JAR and corresponding SHA-1 checksum + curl -LO "${BASE_URL}/${APACHE_RAT_JAR}" + curl -LO "${BASE_URL}/${APACHE_RAT_SHA}" + + # Verify the downloaded JAR against the published checksum + EXPECTED_SHA1="$(awk '{print $1}' $APACHE_RAT_SHA)" + ACTUAL_SHA1="$(sha1sum $APACHE_RAT_JAR| awk '{print $1}')" + if [ "${EXPECTED_SHA1}" != "${ACTUAL_SHA1}" ]; then + echo "Checksum verification FAILED for ${APACHE_RAT_JAR}" >&2 + exit 1 + fi + rm $APACHE_RAT_SHA - name: Run Apache RAT run: | + APACHE_RAT_JAR="apache-rat-${APACHE_RAT_VERSION}.jar" + # Redirect output to .rat-reports file, continue even if RAT returns non-zero exit code because we want to print Unapproved documents - java -jar apache-rat-${APACHE_RAT_VERSION}.jar --input-exclude-file .rat-excludes -- . > .rat-reports 2>&1 || true + java -jar $APACHE_RAT_JAR --input-exclude-file .rat-excludes -- . > .rat-reports 2>&1 || true if grep -q "^! Unapproved:" .rat-reports; then echo "❌ Apache RAT check FAILED - Files with unapproved licenses found:" echo "" From b3ac5f0d112bf111cb3ff835a6c50c08971bf557 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 9 Mar 2026 12:12:27 +0100 Subject: [PATCH 05/10] Fix comment https://github.com/serverlessworkflow/editor/pull/27#discussion_r2896956136 Signed-off-by: fantonangeli --- .github/workflows/ci_check_license_headers.yaml | 11 +++++++++++ .gitignore | 3 +++ 2 files changed, 14 insertions(+) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index 0df84e1..fe5f14f 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -64,8 +64,19 @@ jobs: run: | APACHE_RAT_JAR="apache-rat-${APACHE_RAT_VERSION}.jar" + rm -f .rat-reports + # Redirect output to .rat-reports file, continue even if RAT returns non-zero exit code because we want to print Unapproved documents java -jar $APACHE_RAT_JAR --input-exclude-file .rat-excludes -- . > .rat-reports 2>&1 || true + + # Verify that RAT ran successfully by checking for its summary output + if ! grep -q "Summary" .rat-reports; then + echo "❌ Apache RAT check FAILED - RAT did not complete successfully" >&2 + cat .rat-reports + exit 1 + fi + + # Check for unapproved licenses if grep -q "^! Unapproved:" .rat-reports; then echo "❌ Apache RAT check FAILED - Files with unapproved licenses found:" echo "" diff --git a/.gitignore b/.gitignore index 39cd20d..1f7537b 100644 --- a/.gitignore +++ b/.gitignore @@ -153,3 +153,6 @@ dist # Vite logs files vite.config.js.timestamp-* vite.config.ts.timestamp-* + +# Apache RAT +.rat-reports From 22bfafc1c30d94d53f1a6d556c216e4bf2117db1 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 9 Mar 2026 16:01:04 +0100 Subject: [PATCH 06/10] Updated actions version Signed-off-by: fantonangeli --- .github/workflows/ci_check_license_headers.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index fe5f14f..aa9f5d5 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -32,10 +32,10 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: "Setup JDK 17" - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: java-version: 17 distribution: "temurin" From b088800da7da022025e17d36d3f8b04f4544f58e Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 9 Mar 2026 17:17:49 +0100 Subject: [PATCH 07/10] Fixes comment: https://github.com/serverlessworkflow/editor/pull/27/changes#r2897289283 Signed-off-by: fantonangeli --- .github/workflows/ci_check_license_headers.yaml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index aa9f5d5..a18f7a3 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -46,28 +46,32 @@ jobs: BASE_URL="https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${APACHE_RAT_VERSION}" APACHE_RAT_JAR="apache-rat-${APACHE_RAT_VERSION}.jar" APACHE_RAT_SHA="apache-rat-${APACHE_RAT_VERSION}.jar.sha1" + APACHE_RAT_DIR="${RUNNER_TEMP:-/tmp}" + + mkdir -p "${APACHE_RAT_DIR}" + cd "${APACHE_RAT_DIR}" # Download JAR and corresponding SHA-1 checksum curl -LO "${BASE_URL}/${APACHE_RAT_JAR}" curl -LO "${BASE_URL}/${APACHE_RAT_SHA}" # Verify the downloaded JAR against the published checksum - EXPECTED_SHA1="$(awk '{print $1}' $APACHE_RAT_SHA)" - ACTUAL_SHA1="$(sha1sum $APACHE_RAT_JAR| awk '{print $1}')" + EXPECTED_SHA1="$(awk '{print $1}' "${APACHE_RAT_SHA}")" + ACTUAL_SHA1="$(sha1sum "${APACHE_RAT_JAR}" | awk '{print $1}')" if [ "${EXPECTED_SHA1}" != "${ACTUAL_SHA1}" ]; then echo "Checksum verification FAILED for ${APACHE_RAT_JAR}" >&2 exit 1 fi - rm $APACHE_RAT_SHA + rm "${APACHE_RAT_SHA}" - name: Run Apache RAT run: | - APACHE_RAT_JAR="apache-rat-${APACHE_RAT_VERSION}.jar" + APACHE_RAT_JAR="${RUNNER_TEMP:-/tmp}/apache-rat-${APACHE_RAT_VERSION}.jar" rm -f .rat-reports # Redirect output to .rat-reports file, continue even if RAT returns non-zero exit code because we want to print Unapproved documents - java -jar $APACHE_RAT_JAR --input-exclude-file .rat-excludes -- . > .rat-reports 2>&1 || true + java -jar "$APACHE_RAT_JAR" --input-exclude-file .rat-excludes -- . > .rat-reports 2>&1 || true # Verify that RAT ran successfully by checking for its summary output if ! grep -q "Summary" .rat-reports; then From 8c73f46baa7392c2d6bc127a9fa4cc56e1c33394 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 9 Mar 2026 18:07:32 +0100 Subject: [PATCH 08/10] Fixes comment: https://github.com/serverlessworkflow/editor/pull/27/changes#r2897676663 Signed-off-by: fantonangeli --- .github/workflows/ci_check_license_headers.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index a18f7a3..ff35f10 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -40,7 +40,15 @@ jobs: java-version: 17 distribution: "temurin" + - name: Cache Apache RAT + uses: actions/cache@v4 + id: cache-rat + with: + path: ${{ runner.temp }}/apache-rat-${{ env.APACHE_RAT_VERSION }}.jar + key: apache-rat-${{ env.APACHE_RAT_VERSION }} + - name: Download Apache RAT + if: steps.cache-rat.outputs.cache-hit != 'true' run: | set -e BASE_URL="https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${APACHE_RAT_VERSION}" From 0b6dce48fe1cfee8b512c2949087b747b3e2506a Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 9 Mar 2026 18:13:19 +0100 Subject: [PATCH 09/10] Update action/cache Signed-off-by: fantonangeli --- .github/workflows/ci_check_license_headers.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index ff35f10..a33fbd0 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -41,7 +41,7 @@ jobs: distribution: "temurin" - name: Cache Apache RAT - uses: actions/cache@v4 + uses: actions/cache@v5 id: cache-rat with: path: ${{ runner.temp }}/apache-rat-${{ env.APACHE_RAT_VERSION }}.jar From b2212acfbaca898fd5725556eb1197194e4a47ec Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Tue, 10 Mar 2026 10:19:10 +0100 Subject: [PATCH 10/10] Add license to docs Signed-off-by: fantonangeli --- CODE_OF_CONDUCT.md | 16 ++++++++++++++++ CONTRIBUTING.md | 18 +++++++++++++++++- GOVERNANCE.md | 16 ++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 9342e61..71caacb 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,3 +1,19 @@ + + # Code of Conduct We follow the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md). Please contact the [CNCF Code of Conduct Committee](mailto:conduct@cncf.io) in order to report violations of the Code of Conduct. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 78fe251..127107a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,19 @@ + + # Contributing to Serverless Workflow Editor Thank you for your interest in contributing to the CNCF Serverless Workflow Editor! We welcome all types of contributions, including bug reports, feature requests, documentation improvements, and code changes. @@ -71,4 +87,4 @@ For new features or architectural changes: --- ### Community and Communication -Join the conversation on the [CNCF Slack](https://slack.cncf.io/) in the `#serverless-workflow` channel. \ No newline at end of file +Join the conversation on the [CNCF Slack](https://slack.cncf.io/) in the `#serverless-workflow` channel. diff --git a/GOVERNANCE.md b/GOVERNANCE.md index db2349e..7ee11d4 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -1,3 +1,19 @@ + + # Governance The Serverless Workflow Editor is a sub-project of the [Serverless Workflow Specification](https://github.com/serverlessworkflow/specification).