]> git.ipfire.org Git - thirdparty/rsync.git/commitdiff
packaging/release.py: rsync-web is now an in-tree subdirectory
authorAndrew Tridgell <tridge60@gmail.com>
Wed, 20 May 2026 04:58:35 +0000 (14:58 +1000)
committerAndrew Tridgell <andrew@tridgell.net>
Wed, 20 May 2026 05:36:44 +0000 (15:36 +1000)
Track the move of rsync-web from sibling git checkout to a regular
subdirectory of the rsync source tree:

  * HTML_SRC: '../rsync-web' -> 'rsync-web'.
  * step_1_fetch: drop the .git-presence probe and the 'make sure
    it's up to date' reminder.  Both made sense when rsync-web was
    a separate repo the maintainer had to clone and pull, but the
    directory is now part of the same checkout as this script.
  * rsync invocation no longer needs --exclude=/.git: there is no
    .git inside rsync-web/ (it is just a subdir of the parent
    rsync-git checkout).
  * Header comment block and step-1 help text rewritten to describe
    the new layout.

packaging/release.py

index dc9d1fce1f931a30f02c14c61bb35b2f38d266dc..dc6b2c865a1e4a77b294f2a026d1ecfc1fd837d0 100755 (executable)
@@ -8,7 +8,7 @@
 # the rsync git checkout):
 #
 #   ../release/rsync-ftp/       mirror of samba.org:/home/ftp/pub/rsync
-#   ../release/rsync-html/      git checkout of rsync-web (the html site)
+#   ../release/rsync-html/      release-time snapshot of the html site
 #   ../release/work/            scratch space for tarball / diff staging
 #   ../release/release-state.json   info shared between steps
 #
@@ -35,10 +35,11 @@ HTML_DIR    = os.path.join(RELEASE_DIR, 'rsync-html')
 WORK_DIR    = os.path.join(RELEASE_DIR, 'work')
 STATE_FILE  = os.path.join(RELEASE_DIR, 'release-state.json')
 
-# Local rsync-web checkout (sibling of rsync-git) is the source-of-truth for
-# the git-tracked html content.  The maintainer pulls/commits/pushes there;
-# step-1-fetch just snapshots it into HTML_DIR for the release flow.
-HTML_SRC = os.path.realpath('../rsync-web')
+# The rsync-web/ subdirectory in the rsync source tree is the source-of-truth
+# for the git-tracked html content.  step-1-fetch snapshots it into HTML_DIR
+# for the release flow, where it can be edited or augmented with server-side
+# content before step-11-push-html sends it to samba.org.
+HTML_SRC = os.path.realpath('rsync-web')
 
 FTP_REMOTE_PATH  = '/home/ftp/pub/rsync'
 HTML_REMOTE_PATH = '/home/httpd/html/rsync'
@@ -60,7 +61,7 @@ GEN_FILES = [
 # ---------- Step registry ----------
 
 STEPS = [
-    ('step-1-fetch',       'mirror ../release/rsync-ftp from samba.org and snapshot ../release/rsync-html from ../rsync-web'),
+    ('step-1-fetch',       'mirror ../release/rsync-ftp from samba.org and snapshot ../release/rsync-html from rsync-web/'),
     ('step-2-prepare',     'gather release info interactively and write release-state.json'),
     ('step-3-tweak',       'update version.h, rsync.h, NEWS.md, and packaging/*.spec'),
     ('step-4-build',       'run smart-make + make gen'),
@@ -147,13 +148,10 @@ def step_1_fetch(args):
 
     section(f"Snapshotting html dir from {HTML_SRC} into {HTML_DIR}")
     if not os.path.isdir(HTML_SRC):
-        die(f"{HTML_SRC} not found.  Clone the rsync-web repo there first.")
-    if not os.path.isdir(os.path.join(HTML_SRC, '.git')):
-        die(f"{HTML_SRC} exists but is not a git checkout.")
-    print(f"(Make sure {HTML_SRC} is up to date — this script does not 'git pull' for you.)")
+        die(f"{HTML_SRC} not found.  This should be the in-tree rsync-web/ "
+            f"subdirectory; something is wrong with your checkout.")
     os.makedirs(HTML_DIR, exist_ok=True)
-    cmd_chk(['rsync', '-aiv', '--exclude=/.git',
-             f'{HTML_SRC}/', f'{HTML_DIR}/'])
+    cmd_chk(['rsync', '-aiv', f'{HTML_SRC}/', f'{HTML_DIR}/'])
 
     # Then mirror non-git html content from the server (mirroring samba-rsync's
     # behavior: skip files that the html git already provides).