Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ apiVersion: v2
name: iceberg-processor
description: Storage-native Iceberg processor for Kafscale segments
type: application
version: 0.1.0
appVersion: 0.1.0
version: 0.1.2
appVersion: "v1.4.2"
2 changes: 1 addition & 1 deletion addons/processors/iceberg-processor/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ require (
github.com/aws/aws-sdk-go-v2 v1.41.0
github.com/aws/aws-sdk-go-v2/config v1.32.6
github.com/aws/aws-sdk-go-v2/service/s3 v1.94.0
github.com/KafScale/platform v1.4.0
github.com/KafScale/platform v1.4.2
github.com/prometheus/client_golang v1.23.2
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1
go.etcd.io/etcd/api/v3 v3.6.7
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ apiVersion: v2
name: skeleton-processor
description: Storage-native processor skeleton for Kafscale segments
type: application
version: 0.1.0
appVersion: 0.1.0
version: 0.1.2
appVersion: "v1.4.2"
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ apiVersion: v2
name: sql-processor
description: SQL processor for querying Kafscale segments in S3
type: application
version: 0.1.0
appVersion: 0.1.0
version: 0.1.2
appVersion: "v1.4.2"
4 changes: 2 additions & 2 deletions deploy/helm/kafscale/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@ description: Helm chart for the Kafscale operator and console
home: https://github.com/KafScale/platform
icon: https://raw.githubusercontent.com/KafScale/platform/main/docs/assets/icon.png
type: application
version: 0.3.0
appVersion: "v1.4.0"
version: 0.3.2
appVersion: "v1.4.2"
2 changes: 2 additions & 0 deletions docs/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,9 +110,11 @@ We publish container images and GitHub releases from tags. This keeps release ar
- Tag push triggers the Docker workflow to build and push `kafscale-broker`, `kafscale-operator`, `kafscale-console`, and `kafscale-sql-processor` images to GHCR.
- The workflow also creates a GitHub release with autogenerated notes.
- The Helm chart defaults image tags to `appVersion`, so bump `deploy/helm/kafscale/Chart.yaml` `version` and `appVersion` for each release. Users can override `operator.image.tag`, `console.image.tag`, and `operator.brokerImage.tag` to pin a specific version, or set `operator.image.useLatest=true`, `console.image.useLatest=true`, and `operator.brokerImage.useLatest=true` for dev/latest installs.
- Also bump addon processor charts (`addons/processors/*/deploy/helm/*/Chart.yaml`) `version` and `appVersion` so release tags stay aligned across Helm deployments.
- Update all release references to the new version, including addon module dependencies and docs that pin version strings.
- Release notes live in `docs/releases/` and should include a human-readable summary plus a "Security fixes" section listing any known CVEs addressed (or "None").
- Optional: create a prep branch named `prep-vX.Y.Z` to stage release notes and Helm chart bumps before tagging.
- `scripts/release.sh -tag vX.Y.Z` creates a `prep-vX.Y.Z` branch, bumps Helm/app versions (including addons), generates release notes from history, commits, and pushes the branch for review.

## Testing Expectations

Expand Down
42 changes: 42 additions & 0 deletions docs/releases/v1.4.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<!--
Copyright 2026 Alexander Alten (novatechflow), NovaTechflow (novatechflow.com).
This project is supported and financed by Scalytics, Inc. (www.scalytics.io).

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.
-->

# v1.4.2

Release date: 2026-01-17

## Highlights

- Introduced Kafsql as a first-class SQL processor with Helm charts, proxy mode, guardrails, and caching.
- Expanded Kafsql query capabilities with manifest/time index tooling, backfill support, and broader protocol coverage.
- Added SQL processor documentation plus an end-to-end demo flow and Docker build wiring.

## Bug fixes

- Fixed coordinator broker identity mismatches.
- Corrected int32 conversion for S3 partitions.
- Bounded SQL partition parsing for CodeQL findings.

## Maintenance

- Bumped AWS SDK dependencies and GitHub Actions tooling (CodeQL, setup-go).
- Refreshed organization/module references across tooling and docs.
- Bumped Helm chart versions for the SQL, Iceberg, and skeleton processors to align with v1.4.2.

## Security fixes

- No known runtime vulnerabilities were fixed in this release.
155 changes: 155 additions & 0 deletions scripts/release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
#!/usr/bin/env bash
# Copyright 2026 Alexander Alten (novatechflow), NovaTechflow (novatechflow.com).
# This project is supported and financed by Scalytics, Inc. (www.scalytics.io).
#
# 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.
set -euo pipefail

usage() {
cat <<'EOF'
Usage: scripts/release.sh -tag vX.Y.Z

Prepares a release branch, bumps versions, generates release notes from git
history, commits, and pushes the branch.
EOF
}

tag=""
while [[ $# -gt 0 ]]; do
case "$1" in
-tag)
tag="${2:-}"
shift 2
;;
-h|--help)
usage
exit 0
;;
*)
echo "Unknown argument: $1" >&2
usage
exit 1
;;
esac
done

if [[ -z "$tag" ]]; then
echo "Missing -tag vX.Y.Z" >&2
usage
exit 1
fi

if [[ ! "$tag" =~ ^v([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]; then
echo "Tag must match vX.Y.Z, got: $tag" >&2
exit 1
fi

major="${BASH_REMATCH[1]}"
minor="${BASH_REMATCH[2]}"
patch="${BASH_REMATCH[3]}"

if [[ "$minor" -eq 0 ]]; then
echo "Minor version must be >= 1 to map chart version (0.(minor-1).patch)." >&2
exit 1
fi

chart_version="0.$((minor - 1)).$patch"
addon_chart_version="0.1.$patch"
branch="prep-${tag}"

if [[ -n "$(git status --porcelain)" ]]; then
echo "Working tree is dirty; commit or stash changes before running." >&2
exit 1
fi

git checkout -b "$branch"

sed -i '' -E "s/^version: .*/version: ${chart_version}/" deploy/helm/kafscale/Chart.yaml
sed -i '' -E "s/^appVersion: .*/appVersion: \"${tag}\"/" deploy/helm/kafscale/Chart.yaml

while IFS= read -r chart; do
sed -i '' -E "s/^version: .*/version: ${addon_chart_version}/" "$chart"
sed -i '' -E "s/^appVersion: .*/appVersion: \"${tag}\"/" "$chart"
done < <(rg --files -g 'addons/processors/*/deploy/helm/*/Chart.yaml')

while IFS= read -r modfile; do
sed -i '' -E "s|(github.com/KafScale/platform) v[0-9]+\.[0-9]+\.[0-9]+|\\1 ${tag}|g" "$modfile"
done < <(rg --files -g 'addons/processors/**/go.mod')

release_file="docs/releases/${tag}.md"
if [[ -e "$release_file" ]]; then
echo "Release notes already exist: $release_file" >&2
exit 1
fi

prev_tag="$(git tag -l 'v*' | sort -V | tail -n 1)"
log_range="HEAD"
if [[ -n "$prev_tag" ]]; then
log_range="${prev_tag}..HEAD"
fi

release_date="$(date +%F)"
commit_notes="$(git log --pretty=format:'- %s (%h)' ${log_range})"

cat > "$release_file" <<EOF
<!--
Copyright 2026 Alexander Alten (novatechflow), NovaTechflow (novatechflow.com).
This project is supported and financed by Scalytics, Inc. (www.scalytics.io).

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.
-->

# ${tag}

Release date: ${release_date}

## Highlights

- TODO: Add high-level highlights for this release.

## Changes

${commit_notes}

## Bug fixes

- TODO: Summarize user-facing fixes.

## Maintenance

- TODO: Summarize dependency/tooling updates.

## Security fixes

- No known runtime vulnerabilities were fixed in this release.
EOF

git add deploy/helm/kafscale/Chart.yaml \
addons/processors/iceberg-processor/deploy/helm/iceberg-processor/Chart.yaml \
addons/processors/sql-processor/deploy/helm/sql-processor/Chart.yaml \
addons/processors/skeleton/deploy/helm/skeleton-processor/Chart.yaml \
addons/processors/iceberg-processor/go.mod \
"$release_file"

git commit -m "release: prep ${tag}"
git push -u origin "$branch"