Implementation:Apache Kafka SVN Commit Artifacts
Appearance
| Knowledge Sources | |
|---|---|
| Domains | Release_Engineering, Distribution |
| Last Updated | 2026-02-09 12:00 GMT |
Overview
Concrete tool for uploading release artifacts to the Apache SVN staging repository provided by the Kafka release module.
Description
The svn module provides functions to manage the Apache SVN distribution staging area. It handles checking for and deleting previous RC directories, copying artifacts into the SVN working directory, and committing them. The module uses the runtime.cmd function to execute SVN CLI commands with retry support.
Usage
Import these functions when automating the distribution staging phase. Call checkout_svn_dev first, then commit_artifacts to upload the signed artifacts.
Code Reference
Source Location
- Repository: Apache Kafka
- File: release/svn.py
- Lines: L27-60
Signature
SVN_DEV_URL = "https://dist.apache.org/repos/dist/dev/kafka"
def commit_artifacts(rc_tag, src, work_dir):
"""
Uploads artifacts from src directory to SVN under {rc_tag}.
Deletes previous RC directory if it exists, copies artifacts,
then svn add and commit.
"""
def checkout_svn_dev(work_dir):
"""
Performs a shallow SVN checkout of the distribution dev area.
"""
def delete_old_rc_directory_if_needed(rc_tag, work_dir):
"""
Checks if an RC directory exists in SVN and deletes it if so.
"""
Import
from svn import commit_artifacts, checkout_svn_dev
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| rc_tag | str | Yes | Release candidate tag name (e.g., "3.7.0-rc0") |
| src | str | Yes | Local directory containing signed artifacts |
| work_dir | str | Yes | Working directory for SVN operations |
Outputs
| Name | Type | Description |
|---|---|---|
| commit_artifacts | None | Artifacts uploaded to SVN_DEV_URL/{rc_tag}/ |
| checkout_svn_dev | None | SVN working copy created at {work_dir}/svn_dev/ |
Usage Examples
Upload Artifacts to SVN
from svn import commit_artifacts, checkout_svn_dev
work_dir = "/tmp/kafka-release"
rc_tag = "3.7.0-rc0"
# Checkout SVN dev area
checkout_svn_dev(work_dir)
# Upload signed artifacts
commit_artifacts(rc_tag, "/path/to/signed/artifacts", work_dir)
Related Pages
Implements Principle
Page Connections
Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment