Table of Contents generated with DocToc

tools/asf-svn/

Capability: contract:source-control

Kind: implementation

Vendor: Subversion

Organization: ASF

ASF SVN tool adapter — the Subversion counterpart to tools/github/. Where the GitHub tool covers forge issues, project boards, and Git-backed source control, this adapter covers the SVN surfaces that every ASF project uses regardless of where its source code lives:

  • SVN source control (source-control.md) — the VCS binding for svn.apache.org-hosted working copies, with centralized-model divergences documented against the abstract contract in tools/github/source-control.md.
  • SVN operations (operations.md) — svn CLI recipes and the canonical svn.apache.org/repos/asf/<project> layout (trunk / branches / tags).
  • Release distribution (release-distribution.md) — dist.apache.org-aware helpers: stage a candidate under dist/dev/<project>, promote to dist/release/<project> on a successful vote, and prune old releases per ASF policy. This is the ASF-specific payoff — dist.apache.org is SVN for every ASF project, so even a GitHub-hosted project needs this adapter to steward its release flow.
  • Authorization / roster (authorization.md) — resolve committer and PMC membership from the ASF authorization model (asf-authorization-template, LDAP groups) via the apache-projects MCP, so skills know who may commit or cut a release.
  • Website / docs publishing (optional) (publishing.md) — for projects that publish their site through SVN (svnpubsub / staging), a publish helper that reduces to a confirmed svn commit to the site path.
  • Tool overview (tool.md) — the full capability table and guidance on when to combine this adapter with other tools.

A project opts into this tool by naming it in its manifest under Tools enabled. It can be combined freely with other tool adapters — for example: GitHub issues + asf-svn source control + asf-svn release distribution is a valid mix for a GitHub-hosted ASF project that ships through dist.apache.org.

Prerequisites

  • Runtime: Bash / coreutils — this is a doc-only adapter; skills invoke the svn binary and standard POSIX utilities directly; no local package.
  • CLIs: svn (Apache Subversion 1.14+), svnmucc (optional, used for atomic multi-URL operations in release promotion), jq (for parsing svn info --xml and roster JSON from projects.apache.org).
  • Credentials / auth: A cached SVN credential with write access to the target repository — every skill’s Step 0 runs the auth pre-flight in operations.md#authentication. Read-only operations (checkout, log, diff) do not require credentials for world-readable repos.
  • Network: svn.apache.org (ASF project source), dist.apache.org (ASF release distribution — SVN over HTTPS); read operations are offline after the initial checkout except for svn update.
  • Optional: apache-projects MCP (tools/apache-projects/) for roster lookups against projects.apache.org — used by authorization.md when LDAP is not directly queryable from the agent environment.

Configuration

An adopting project enables this tool per capability in its <project-config>/project.md manifest under Tools enabled — one row per capability, naming asf-svn for the capabilities it fulfils (see tool.md for the combination rules):

Config key Value Meaning
tools_enabled.source_control asf-svn SVN working copies on svn.apache.org (else github / another VCS tool)
tools_enabled.release_distribution asf-svn releases ship through dist.apache.org (required for every ASF project)
tools_enabled.website_publishing asf-svn optional — set only if the project’s site lives in SVN (svnpubsub); omit otherwise
tools_enabled.tracker github / jira / … not provided by this tool — SVN is not a forge; pair with a tracker tool

The concrete project name, SVN repository URLs, and dist paths are substituted from the adopter’s <project-config> at run time; this adapter carries only placeholders (<project>, <asf-id>).

Suggest a change