Repository: kraken-build/kraken (language: python)

Issue:
Use self-hosted ARC runners
Testing with GitHub Actions ARC-based runners


Discussion / hints:

Fix patch:
diff --git a/.github/workflows/data.yaml b/.github/workflows/data.yaml
deleted file mode 100644
index 62b81488..00000000
--- a/.github/workflows/data.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-name: "Data"
-
-on:
-  push: { branches: [ "develop" ], tags: [ "*" ] }
-  pull_request: { branches: [ "*" ] }
-
-env:
-  COLUMNS: 200
-
-jobs:
-  gitignore-io-up-to-date:
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@v4
-    - uses: NiklasRosenstein/slap@gha/install/v1
-    - uses: actions/setup-python@v5
-      with: { python-version: "3.10" }
-    - run: slap install --link --no-venv-check ${{ matrix.only }}
-    - run: python -m kraken.std.git.gitignore.gitignore_io
-    - run: git diff --exit-code
diff --git a/.github/workflows/documentation.yaml b/.github/workflows/documentation.yaml
deleted file mode 100644
index b5e99281..00000000
--- a/.github/workflows/documentation.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: "Documentation"
-
-on:
-  push: { branches: [ "develop" ], tags: [ "*" ] }
-  pull_request: { branches: [ "*" ] }
-
-env:
-  COLUMNS: 200
-
-jobs:
-  documentation:
-    runs-on: ubuntu-latest
-    permissions:
-      contents: read
-      pages: write
-      id-token: write
-    steps:
-    - uses: actions/checkout@v4
-    - uses: NiklasRosenstein/slap@gha/install/v1
-
-    - run: pipx install kraken-wrapper==0.33.2
-    - run: pipx install mksync
-
-    - name: Restore Kraken build cache
-      uses: actions/cache/restore@v4
-      with:
-        path: build
-        key: build-cache:${{ runner.os }}:${{ hashFiles('.kraken.lock') }}
-
-    - run: |
-        cd docs
-        for fn in docs/cli/*.md; do mksync -i $fn; done
-        mksync -i docs/changelog.md
-    - run: krakenw run mkdocs.build --no-save
-
-    - name: Save Kraken build cache
-      uses: actions/cache/save@v4
-      with:
-        path: build
-        key: build-cache:${{ runner.os }}:${{ hashFiles('.kraken.lock') }}
-
-    - name: Upload artifact
-      uses: actions/upload-pages-artifact@v3
-      with:
-        path: build/docs/mkdocs/_site
-
-    - name: Deploy to GitHub Pages
-      if: github.ref == 'refs/heads/develop'
-      id: deployment
-      uses: actions/deploy-pages@v4
diff --git a/.github/workflows/on-commit.yaml b/.github/workflows/on-commit.yaml
new file mode 100644
index 00000000..76b47f91
--- /dev/null
+++ b/.github/workflows/on-commit.yaml
@@ -0,0 +1,180 @@
+name: "On Commit"
+
+on:
+  push: { branches: [ "develop" ], tags: [ "*" ] }
+  pull_request: { branches: [ "*" ] }
+
+env:
+  COLUMNS: 200
+
+jobs:
+
+  # == Validate data embedded in the Kraken standard library ==
+
+  gitignore-io-up-to-date:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v4
+    - uses: NiklasRosenstein/slap@gha/install/v1
+    - uses: actions/setup-python@v5
+      with: { python-version: "3.10" }
+    - run: slap install --link --no-venv-check ${{ matrix.only }}
+    - run: python -m kraken.std.git.gitignore.gitignore_io
+    - run: git diff --exit-code
+
+  # == Documentation ==
+
+  documentation:
+    runs-on: ubuntu-latest
+    permissions:
+      contents: read
+      pages: write
+      id-token: write
+    steps:
+    - uses: actions/checkout@v4
+    - uses: NiklasRosenstein/slap@gha/install/v1
+
+    - run: pipx install kraken-wrapper==0.34.0 && krakenw config --installer=UV
+    - run: pipx install mksync
+
+    - name: Restore Kraken build cache
+      uses: actions/cache/restore@v4
+      with:
+        path: build
+        key: build-cache:${{ runner.os }}:${{ hashFiles('.kraken.lock') }}
+
+    - run: |
+        cd docs
+        for fn in docs/cli/*.md; do mksync -i $fn; done
+        mksync -i docs/changelog.md
+    - run: krakenw run mkdocs.build --no-save
+
+    - name: Save Kraken build cache
+      uses: actions/cache/save@v4
+      with:
+        path: build
+        key: build-cache:${{ runner.os }}:${{ hashFiles('.kraken.lock') }}
+
+    - name: Upload artifact
+      uses: actions/upload-pages-artifact@v3
+      with:
+        path: build/docs/mkdocs/_site
+
+    - name: Deploy to GitHub Pages
+      if: github.ref == 'refs/heads/develop'
+      id: deployment
+      uses: actions/deploy-pages@v4
+
+  # == Unit tests, linting, and type checking ==
+
+  test:
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        python-version: ["3.10", "3.11", "3.12", "3.x"]
+    steps:
+    - uses: actions/checkout@v4
+    - uses: NiklasRosenstein/slap@gha/install/v1
+    - uses: actions/setup-python@v5
+      with: { python-version: "${{ matrix.python-version }}" }
+    - run: pip install pipx && pipx install poetry && pipx install pdm && pipx install kraken-wrapper==0.34.0 && krakenw config --installer=UV
+    - run: rustup update
+
+    - name: Restore Kraken build cache
+      uses: actions/cache/restore@v4
+      with:
+        path: build
+        key: build-cache:${{ runner.os }}:${{ hashFiles('.kraken.lock') }}
+
+    - name: Restore Venv
+      uses: actions/cache/restore@v4
+      with:
+        path: .venvs/
+        key: build-cache:${{ runner.os }}:venv:${{ matrix.python-version }}
+
+    # Explicitly mention python.install to ensure that Pip install is rerun.
+    - run: krakenw run python.install check lint test -vv
+
+    - name: Save Venv
+      uses: actions/cache/save@v4
+      with:
+        path: .venvs/
+        key: build-cache:${{ runner.os }}:venv:${{ matrix.python-version }}
+
+    - name: Save Kraken build cache
+      uses: actions/cache/save@v4
+      with:
+        path: build
+        key: build-cache:${{ runner.os }}:${{ hashFiles('.kraken.lock') }}
+
+  # == Try running Kraken as defined in the kraken.yaml file ==
+
+  selftest:
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+          - python-version: "3.10"
+          - python-version: "3.11"
+          - python-version: "3.12"
+          - python-version: "3.x"
+    steps:
+    - uses: actions/checkout@v4
+    - uses: NiklasRosenstein/slap@gha/install/v1
+    - uses: actions/setup-python@v5
+      with: { python-version: "${{ matrix.python-version }}" }
+    - run: pip install pipx && pipx install poetry && pipx install pdm
+    - run: rustup update
+
+    - name: Restore cache
+      uses: actions/cache/restore@v4
+      with:
+        path: |
+          build
+          .venvs
+        key: build-cache:${{ runner.os }}:selftest
+
+    - run: slap install --link --no-venv-check ${{ matrix.only }}
+
+    - run: kraken run python.install fmt lint test -vv
+    - run: kraken q ls
+    - run: kraken q tree
+    - run: kraken q viz
+    - run: kraken q d python.mypy
+
+    - name: Save cache
+      uses: actions/cache/save@v4
+      with:
+        path: |
+          build
+          .venvs
+        key: build-cache:${{ runner.os }}:selftest
+
+  uv-installer:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v4
+    - uses: NiklasRosenstein/slap@gha/install/v1
+    - run: slap install --link --no-venv-check
+    - run: krakenw --reinstall --use=UV
+    - run: krakenw run fmt lint
+
+  examples-docker-manual:
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+          - python-version: "3.10"
+          - python-version: "3.11"
+          - python-version: "3.12"
+          - python-version: "3.x"
+    steps:
+    - uses: actions/checkout@v4
+    - uses: NiklasRosenstein/slap@gha/install/v1
+    - uses: actions/setup-python@v5
+      with: { python-version: "${{ matrix.python-version }}" }
+    - run: slap install --link --no-venv-check ${{ matrix.only }}
+    - run: cd examples/docker-manual && kraken run :dockerBuild :sub:helloWorld
diff --git a/.github/workflows/python.yaml b/.github/workflows/python.yaml
deleted file mode 100644
index 4548ad4c..00000000
--- a/.github/workflows/python.yaml
+++ /dev/null
@@ -1,95 +0,0 @@
-name: "Python"
-
-on:
-  push: { branches: [ "develop" ], tags: [ "*" ] }
-  pull_request: { branches: [ "*" ] }
-
-env:
-  COLUMNS: 200
-
-jobs:
-  test:
-    runs-on: ubuntu-latest
-    strategy:
-      fail-fast: false
-      matrix:
-        include:
-          - python-version: "3.10"
-          - python-version: "3.11"
-          - python-version: "3.12"
-          - python-version: "3.x"
-    steps:
-    - uses: actions/checkout@v4
-    - uses: NiklasRosenstein/slap@gha/install/v1
-    - uses: actions/setup-python@v5
-      with: { python-version: "${{ matrix.python-version }}" }
-    - run: pip install pipx && pipx install poetry && pipx install pdm && pipx install kraken-wrapper==0.32.4
-    - run: rustup update
-
-    - name: Restore Kraken build cache
-      uses: actions/cache/restore@v4
-      with:
-        path: build
-        key: build-cache:${{ runner.os }}:${{ hashFiles('.kraken.lock') }}
-
-    - name: Restore Venv
-      uses: actions/cache/restore@v4
-      with:
-        path: .venvs/
-        key: build-cache:${{ runner.os }}:venv:${{ matrix.python-version }}
-
-    # Explicitly mention python.install to ensure that Pip install is rerun.
-    - run: krakenw run python.install check lint test -vv
-
-    - name: Save Venv
-      uses: actions/cache/save@v4
-      with:
-        path: .venvs/
-        key: build-cache:${{ runner.os }}:venv:${{ matrix.python-version }}
-
-    - name: Save Kraken build cache
-      uses: actions/cache/save@v4
-      with:
-        path: build
-        key: build-cache:${{ runner.os }}:${{ hashFiles('.kraken.lock') }}
-
-  # kraken-std-integration-test:
-  #   runs-on: ubuntu-latest
-  #   strategy:
-  #     fail-fast: false
-  #     matrix:
-  #       include:
-  #         - python-version: "3.10"
-  #           test-type: integrationTest
-
-  #   steps:
-  #   - uses: actions/checkout@v3
-  #     with: { fetch-depth: 0 }
-  #   - uses: NiklasRosenstein/slap@gha/install/v1
-  #   - uses: actions/setup-python@v4
-  #     with: { python-version: "${{ matrix.python-version }}" }
-  #   - run: pip install pipx && pipx install kraken-wrapper
-
-  #   # Need Poetry and PDM for integration tests.
-  #   - run: pipx install poetry
-  #   - run: curl -sSL https://raw.githubusercontent.com/pdm-project/pdm/main/install-pdm.py | python3 -
-
-  #   # Make sure we have Docker available for the ete-tests.
-  #   - uses: docker/setup-buildx-action@v2
-
-  #   - run: cd kraken-std && krakenw -v run ${{ matrix.test-type }} -v
-  #     env:
-  #       ARTIFACTORY_CARGO_REPOSITORY: ${{ vars.ARTIFACTORY_CARGO_REPOSITORY }}
-  #       CLOUDSMITH_CARGO_REPOSITORY: ${{ vars.CLOUDSMITH_CARGO_REPOSITORY }}
-  #       CLOUDSMITH_INTEGRATION_TEST_CREDENTIALS: |
-  #         {
-  #           "api_key": "${{ secrets.CLOUDSMITH_API_KEY }}",
-  #           "owner": "${{ vars.CLOUDSMITH_OWNER }}",
-  #           "user": "${{ vars.CLOUDSMITH_USER }}"
-  #         }
-  #       ARTIFACTORY_INTEGRATION_TEST_CREDENTIALS: |
-  #         {
-  #           "token": "${{ secrets.ARTIFACTORY_TOKEN }}",
-  #           "url": "${{ vars.ARTIFACTORY_URL }}",
-  #           "user": "${{ vars.ARTIFACTORY_USER }}"
-  #         }
diff --git a/.kraken.lock b/.kraken.lock
index 0dd1298f..860ce7e7 100644
--- a/.kraken.lock
+++ b/.kraken.lock
@@ -15,31 +15,31 @@ attrs = "23.2.0"
 blinker = "1.7.0"
 brotli = "1.1.0"
 builddsl = "1.0.1"
-certifi = "2023.11.17"
+certifi = "2024.2.2"
 cffi = "1.16.0"
 click = "8.1.7"
 cryptography = "41.0.7"
-databind-core = "4.3.2"
-databind-json = "4.3.2"
+databind-core = "4.4.2"
+databind-json = "4.4.2"
 deprecated = "1.2.14"
 dill = "0.3.8"
-flask = "3.0.1"
+flask = "3.0.2"
 h11 = "0.14.0"
 h2 = "4.1.0"
 hpack = "4.0.0"
-httpcore = "1.0.2"
+httpcore = "1.0.3"
 httpx = "0.26.0"
 hyperframe = "6.0.1"
 idna = "3.6"
 itsdangerous = "2.1.2"
-jaraco-classes = "3.3.0"
+jaraco-classes = "3.3.1"
 jinja2 = "3.1.3"
 kaitaistruct = "0.10"
 keyring = "24.3.0"
-kraken-build = "0.33.2"
+kraken-build = "0.34.0"
 ldap3 = "2.9.1"
 markdown-it-py = "3.0.0"
-markupsafe = "2.1.4"
+markupsafe = "2.1.5"
 mdurl = "0.1.2"
 mitmproxy = "10.2.2"
 mitmproxy-rs = "0.5.1"
@@ -52,8 +52,8 @@ nr-io-lexer = "1.0.0"
 nr-stream = "1.1.5"
 packaging = "23.2"
 passlib = "1.7.4"
-pex = "2.1.161"
-protobuf = "4.25.2"
+pex = "2.2.0"
+protobuf = "4.25.3"
 publicsuffix2 = "2.20191221"
 pyasn1 = "0.5.1"
 pyasn1-modules = "0.3.0"
@@ -64,7 +64,7 @@ pyopenssl = "23.3.0"
 pyparsing = "3.1.1"
 pyperclip = "1.8.2"
 rich = "13.7.0"
-ruamel-yaml = "0.18.5"
+ruamel-yaml = "0.18.6"
 service-identity = "24.1.0"
 sniffio = "1.3.0"
 sortedcontainers = "2.4.0"
@@ -72,8 +72,8 @@ termcolor = "1.1.0"
 tomli = "2.0.1"
 tomli-w = "1.0.0"
 tornado = "6.4"
-typeapi = "1.5.1"
-typing-extensions = "4.9.0"
+typeapi = "2.1.2"
+typing-extensions = "4.6.3"
 urwid-mitmproxy = "2.1.2.1"
 werkzeug = "3.0.1"
 wrapt = "1.16.0"


Test patch:
diff --git a/.github/workflows/selftest.yaml b/.github/workflows/selftest.yaml
deleted file mode 100644
index 8b12a135..00000000
--- a/.github/workflows/selftest.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-# This workflow is used to validate if the current version of kraken-core and kraken-std work without
-# errors to build the kraken-std project. When some larger changes are being made to these two components,
-# such as one that causes a breaking API change for the kraken-std build script, this workflow may need
-# to be temporarily disabled.
-
-name: "Selftest"
-
-on:
-  push: { branches: [ "develop" ], tags: [ "*" ] }
-  pull_request: { branches: [ "*" ] }
-
-env:
-  COLUMNS: 200
-
-jobs:
-  selftest:
-    runs-on: ubuntu-latest
-    strategy:
-      fail-fast: false
-      matrix:
-        include:
-          - python-version: "3.10"
-          - python-version: "3.11"
-          - python-version: "3.12"
-          - python-version: "3.x"
-    steps:
-    - uses: actions/checkout@v4
-    - uses: NiklasRosenstein/slap@gha/install/v1
-    - uses: actions/setup-python@v5
-      with: { python-version: "${{ matrix.python-version }}" }
-    - run: pip install pipx && pipx install poetry && pipx install pdm
-    - run: rustup update
-
-    - name: Restore cache
-      uses: actions/cache/restore@v4
-      with:
-        path: |
-          build
-          .venvs
-        key: build-cache:${{ runner.os }}:selftest
-
-    - run: slap install --link --no-venv-check ${{ matrix.only }}
-
-    - run: kraken run python.install fmt lint test -vv
-    - run: kraken q ls
-    - run: kraken q tree
-    - run: kraken q viz
-    - run: kraken q d python.mypy
-
-    - name: Save cache
-      uses: actions/cache/save@v4
-      with:
-        path: |
-          build
-          .venvs
-        key: build-cache:${{ runner.os }}:selftest
-
-  uv-installer:
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@v4
-    - uses: NiklasRosenstein/slap@gha/install/v1
-    - run: slap install --link --no-venv-check
-    - run: krakenw --reinstall --use=UV
-    - run: krakenw run fmt lint
-
-  examples-docker-manual:
-    runs-on: ubuntu-latest
-    strategy:
-      fail-fast: false
-      matrix:
-        include:
-          - python-version: "3.10"
-          - python-version: "3.11"
-          - python-version: "3.12"
-          - python-version: "3.x"
-    steps:
-    - uses: actions/checkout@v4
-    - uses: NiklasRosenstein/slap@gha/install/v1
-    - uses: actions/setup-python@v5
-      with: { python-version: "${{ matrix.python-version }}" }
-    - run: slap install --link --no-venv-check ${{ matrix.only }}
-    - run: cd examples/docker-manual && kraken run :dockerBuild :sub:helloWorld