You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tooling.apache.org by sb...@apache.org on 2026/01/19 20:00:21 UTC

(tooling-trusted-releases) branch main updated: Add a migration to use a subversion state subdirectory

This is an automated email from the ASF dual-hosted git repository.

sbp pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-releases.git


The following commit(s) were added to refs/heads/main by this push:
     new 7958742  Add a migration to use a subversion state subdirectory
7958742 is described below

commit 79587426712b8d4c36e210aad0739dc8715ef758
Author: Sean B. Palmer <se...@miscoranda.com>
AuthorDate: Mon Jan 19 19:59:56 2026 +0000

    Add a migration to use a subversion state subdirectory
---
 atr/config.py                 | 2 +-
 atr/docs/storage-interface.md | 6 +++---
 atr/server.py                 | 2 ++
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/atr/config.py b/atr/config.py
index 3ef06c3..f63047f 100644
--- a/atr/config.py
+++ b/atr/config.py
@@ -99,7 +99,7 @@ class AppConfig:
     UNFINISHED_STORAGE_DIR = os.path.join(STATE_DIR, "unfinished")
     # TODO: By convention this is at /x1/, but we can symlink it here perhaps?
     # TODO: We need to get Puppet to check SVN out initially, or do it manually
-    SVN_STORAGE_DIR = os.path.join(STATE_DIR, "svn")
+    SVN_STORAGE_DIR = os.path.join(STATE_DIR, "subversion")
     ATTESTABLE_STORAGE_DIR = os.path.join(STATE_DIR, "attestable")
     SQLITE_DB_PATH = decouple.config("SQLITE_DB_PATH", default="database/atr.db")
     STORAGE_AUDIT_LOG_FILE = os.path.join(STATE_DIR, "audit", "storage-audit.log")
diff --git a/atr/docs/storage-interface.md b/atr/docs/storage-interface.md
index 28817b8..b806e3b 100644
--- a/atr/docs/storage-interface.md
+++ b/atr/docs/storage-interface.md
@@ -150,7 +150,7 @@ Only a small number of subdirectories of the state directory are written to by t
 * `attestable`, configured by `ATTESTABLE_STORAGE_DIR`
 * `downloads`, configured by `DOWNLOADS_STORAGE_DIR`
 * `finished`, configured by `FINISHED_STORAGE_DIR`
-* `svn`, configured by `SVN_STORAGE_DIR`
+* `subversion`, configured by `SVN_STORAGE_DIR`
 * `tmp`, which is unconfigurable
 * `unfinished`, configured by `UNFINISHED_STORAGE_DIR`
 
@@ -159,7 +159,7 @@ And the purposes of these directories is as follows. Note that "immutable" here
 * `attestable` [**immutable**] holds JSON files of data that ATR has automatically verified and which must now be held immutably. (We could store this data in the database, but the aim is to eventually write attestation files here, so this prepares for that approach.)
 * `downloads` [**mutable**] are hard links to released artifacts in the `finished` directory. The `finished` directory contains the files exactly as they were arranged by the release managers upon announcing the release, separated strictly into one directory per release. The `downloads` folder, on the other hand, has no restrictions on its organisation and can be rearranged.
 * `finished` [**immutable**, except for moving to external archive] contains, as mentioned above, all of the files of a release as they were when announced. This therefore constitutes an historical record and allows us to rewrite the hard links in the `downloads` directory without having to consider not accidentally deleting files by removing all references, etc.
-* `svn` [**mutable**] is designed to mirror two subdirectories, `dev` and `release`, of `https://dist.apache.org/repos/dist`. This is currently unused.
+* `subversion` [**mutable**] is designed to mirror two subdirectories, `dev` and `release`, of `https://dist.apache.org/repos/dist`. This is currently unused.
 * `tmp` [**mutable**] holds temporary files during operations where the data cannot be modified in place. One important example is when creating a staging directory of a new revision. A subdirectory with a random name is made in this directory, and then the files in the prior version are hard linked into it. The modifications take place in this staging area before the directory is finalised and moved to `unfinished`.
 * `unfinished` [**immutable**, except for moving to `finished`] contains all of the files in a release before it is announced. In other words, when the release managers compose a release, when the committee votes on the release, and when the release has been voted on but not yet announced, the files for that release are in this directory.
 
@@ -167,7 +167,7 @@ This list does not include any configuration files, logs, or log directories.
 
 ## How should the filesystem be backed up?
 
-Only the `attestable`, `downloads`, `finished`, and `unfinished` directories need to be backed up. The `svn` directory is unused, and the `tmp` directory is for temporary staging.
+Only the `attestable`, `downloads`, `finished`, and `unfinished` directories need to be backed up. The `subversion` directory is unused, and the `tmp` directory is for temporary staging.
 
 The structure of the directories that need backing up is as follows. An ellipsis, `...`, means any number of further files or subdirectories containing subdirectories or files recursively.
 
diff --git a/atr/server.py b/atr/server.py
index 6e6af55..764794f 100644
--- a/atr/server.py
+++ b/atr/server.py
@@ -82,6 +82,8 @@ _MIGRATIONS: Final[list[tuple[str, str]]] = [
     ("secrets.ini", "secrets/curated/secrets.ini"),
     ("apptoken.txt", "secrets/generated/apptoken.txt"),
     ("ssh_host_key", "secrets/generated/ssh_host_key"),
+    # Subversion
+    ("svn", "subversion"),
 ]
 
 _SWAGGER_UI_TEMPLATE: Final[str] = """<!DOCTYPE html>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@tooling.apache.org
For additional commands, e-mail: commits-help@tooling.apache.org