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:
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.operations.md) — svn CLI recipes and the canonical svn.apache.org/repos/asf/<project> layout (trunk / branches / tags).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.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.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.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.
svn binary and standard POSIX utilities directly; no local package.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).operations.md#authentication. Read-only operations (checkout, log, diff) do not require credentials for world-readable repos.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.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.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>).