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 forsvn.apache.org-hosted working copies, with centralized-model divergences documented against the abstract contract intools/github/source-control.md. - SVN operations (
operations.md) —svnCLI recipes and the canonicalsvn.apache.org/repos/asf/<project>layout (trunk / branches / tags). - Release distribution (
release-distribution.md) —dist.apache.org-aware helpers: stage a candidate underdist/dev/<project>, promote todist/release/<project>on a successful vote, and prune old releases per ASF policy. This is the ASF-specific payoff —dist.apache.orgis 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 theapache-projectsMCP, 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 confirmedsvn committo 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
svnbinary 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 parsingsvn info --xmland roster JSON fromprojects.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 forsvn update. - Optional:
apache-projectsMCP (tools/apache-projects/) for roster lookups againstprojects.apache.org— used byauthorization.mdwhen 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>).