Skip to content

Docs: Add new Spark version support skill - #17877

Draft
manuzhang wants to merge 2 commits into
apache:mainfrom
manuzhang:codex/add-spark-version-skill
Draft

manuzhang wants to merge 2 commits into
apache:mainfrom
manuzhang:codex/add-spark-version-skill

Conversation

@manuzhang

@manuzhang manuzhang commented Aug 29, 2026 •

Copy link
Copy Markdown
Member

About this PR

Adds a repo-local, agent-neutral skill for introducing support for a new Spark minor version in Iceberg.

The skill generalizes the Spark 4.2 preview workflow and documents how to:

  • preserve source history with separate move and copy-back commits;
  • back up an existing target branch before rewriting its history;
  • update the current Gradle, CI, benchmark, and publication integration points;
  • keep preview source support separate from default build and release publication decisions; and
  • validate the new modules and an older Spark line when shared resolution logic changes.

Testing

  • quick_validate.py .agents/skills/add-spark-version
  • git diff --check upstream/main...HEAD

AI Disclosure

  • Model: GPT-5
  • Platform/Tool: OpenAI Codex
  • Human Oversight: partially reviewed
  • Prompt Summary: Create a reusable, agent-neutral Iceberg skill based on the Spark 4.2 preview workflow for adding support for new Spark versions, including backup of an existing target branch.

git status --short --branch
find spark -maxdepth 1 -type d -name 'v*' -print
rg -n 'knownSparkVersions|defaultSparkVersions|sparkVersions|spark[0-9]+' \
gradle.properties gradle settings.gradle build.gradle spark jmh.gradle .github dev site

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This rg pattern doesn't match sparkScalaVersions, the map inside project(':iceberg-bom') in root build.gradle that controls which Scala variants of a Spark line get included in the BOM. I checked: echo "sparkScalaVersions" | grep -E 'knownSparkVersions|defaultSparkVersions|sparkVersions|spark[0-9]+' exits 1. Could the pattern (and the "Wire the new line" file list below) include it?

- `settings.gradle`, `spark/build.gradle`, and `jmh.gradle`: register the core, extensions, runtime, and benchmark projects.
- `.gitignore`: cover generated benchmark or warehouse paths for the new tree.
- `.github/workflows/spark-ci.yml` and `.github/workflows/cve-scan.yml`: add supported combinations while respecting the current matrix-size and JDK/Scala exclusions.
- `dev/stage-binaries.sh` and snapshot publication workflows: add the line only when artifacts should be published. Preview source support and release publication are separate decisions.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section separates preview support from release publication decisions, which is the right distinction, but nothing here or in the discovery command above mentions .gitattributes. The export-ignore entries there are what actually gate whether a preview version tree is included in git archive source releases. #18024, "Include Spark 4.2 in source releases," was entirely about removing /spark/v4.2 and /spark/v4.2/** from .gitattributes. Could this get called out explicitly, and could .gitattributes be added to the discovery search paths in "Establish the target"?

@anuragmantri

Copy link
Copy Markdown
Collaborator

Thanks @manuzhang. Generally, this looks like a useful skill but .claude/ is already gitignored here (#16533), and #16778 proposed the same treatment for .github/copilot-instructions.md, .github/agents/, and .github/skills/, on the reasoning that these are workspace-local, not shared repo content.

It's worth a quick dev@ thread before this comes out of draft, so the directory choice isn't decided by default?

@github-actions

Copy link
Copy Markdown

This pull request has been marked as stale due to 30 days of inactivity. It will be closed in 1 week if no further activity occurs. If you think that’s incorrect or this pull request requires a review, please simply write any comment. If closed, you can revive the PR at any time and @mention a reviewer or discuss it on the dev@iceberg.apache.org list. Thank you for your contributions.

@github-actions github-actions Bot added the stale label Oct 15, 2026
Include the BOM Scala registry and source archive rules when adding a Spark line so both release integration points are considered.

Generated-by: Codex

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants