Skip to content
CAI
Software that uses CAICheck a score

SETL-Framework/setl

69.3

Adequate · 20 September 2026

7.8k

lines of production code

Scala

with Java

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is the SETL framework, a Scala-based library designed to simplify the construction and management of Apache Spark sessions and data connectors. It provides a builder pattern for initializing Spark contexts with support for various storage formats like Parquet, Delta, and Hudi, alongside utilities for configuration loading and data archiving. The codebase includes comprehensive test infrastructure and automation scripts for local development, deployment, and version management.

Features

Initial release of the SETL framework core

This change introduces the foundational components of the SETL framework, including the core \Setl\ context for managing Spark repositories and connectors, a \ConfigLoader\ for environment-based configuration, and a \Builder\ pattern for constructing Spark sessions and connectors. It adds support for multiple storage formats (CSV, Parquet, Delta, Hudi, JDBC, etc.) via the \Storage\ enum and connector configurations, along with new capabilities for data compression (XZ, GZIP, Snappy), benchmarking factory execution times, and handling external deliveries. The release also establishes a structured exception hierarchy and defines interface stability annotations to guide API evolution.

src/main · high confidence

New development and deployment automation scripts

The dev directory now includes a suite of shell scripts to streamline project maintenance and testing. The change-scala-version.sh script allows developers to switch the project's Scala version between 2.11 and 2.12 by automatically updating relevant pom.xml files. Deployment is handled by deploy-release.sh and deploy-snapshot.sh, which configure Maven settings and GPG keys before executing the build. For local testing, test.sh sets up fake AWS credentials and runs the test suite with coverage reporting, while docker-compose.yml provides containerized instances of PostgreSQL, Cassandra, and DynamoDB to support unit tests that previously relied on embedded dependencies.

dev · high confidence

Test coverage

Added comprehensive test suite for Setl framework components; Added test fixtures for recursive file listing; Added test resource files for connector and configuration testing; Added test resources for StructuredStreamingConnector; Added test resources for ZipArchiver validation.

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 69.

Lenses

  • Code Health 99
  • Architecture 87
  • Maturity 66
  • Readiness 70
  • Security 65

Changes since last survey

  • 300 commits — 254 feature/other, 46 fixes

By area

  • (root) — 149 commits
  • src/main — 65 commits
  • src/test — 34 commits
  • (repo) — 12 commits
  • .github/workflows — 12 commits
  • docs/data_access_layer — 7 commits
  • .github/ISSUE_TEMPLATE — 4 commits
  • dev/deploy-release.sh — 4 commits
  • docs/Connector.md — 4 commits
  • .github/dependabot.yml — 2 commits
  • docs/img — 2 commits
  • .github/stale.yml — 1 commit
  • dev/test.sh — 1 commit
  • docs/Setl.md — 1 commit
  • docs/_config.yml — 1 commit
  • docs/index.md — 1 commit

Notable commits

  • fix: WIP Fix Delta issue (#234)
  • fix: [SETL-120] fix: Setl.hasExternalInput always return false (#121)
  • fix: [SETL-57] Fix Mermaid URL generation (#58)
  • fix: [SETL-74] fix: Spark master URL can't be overwritten in local environment (#75)
  • fix: [SETL-97] fix: FileConnector doesn't list path recursively when there are subdirectories inside the given path (#98)
  • fix: fix broken link
  • fix: fix: add JDBCConnector constructor for ConnectorBuilder
  • fix: fix: add back deploy plugin
  • fix: fix: add maven cli compatible version options
  • fix: fix: add pom.xml for of dc-spark-sdk_2.12
  • fix: fix: add profile to mvn cmd
  • fix: fix: add test fixture to avoid RpcEnv error
  • fix: fix: artifact path
  • fix: fix: broken link on documentation (#178)
  • fix: fix: change DynamoDB connector DF reader format class name
  • fix: fix: change badges' url
  • fix: fix: change dependency scope for spark connectors
  • fix: fix: change sonatype repo url
  • fix: fix: ci
  • fix: fix: ci
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

SETL-Framework/setl was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 68f4e0213f5b6793acb96b2d9e08c102439565c4 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.