You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2017/12/13 15:29:01 UTC

svn commit: r1818033 - /subversion/trunk/tools/dist/create-minor-release-branch.py

Author: julianfoad
Date: Wed Dec 13 15:29:01 2017
New Revision: 1818033

URL: http://svn.apache.org/viewvc?rev=1818033&view=rev
Log:
* tools/dist/create-minor-release-branch.py: Largely debugged.

Modified:
    subversion/trunk/tools/dist/create-minor-release-branch.py

Modified: subversion/trunk/tools/dist/create-minor-release-branch.py
URL: http://svn.apache.org/viewvc/subversion/trunk/tools/dist/create-minor-release-branch.py?rev=1818033&r1=1818032&r2=1818033&view=diff
==============================================================================
--- subversion/trunk/tools/dist/create-minor-release-branch.py (original)
+++ subversion/trunk/tools/dist/create-minor-release-branch.py Wed Dec 13 15:29:01 2017
@@ -59,13 +59,19 @@ secure_repos = 'https://svn.apache.org/r
 
 # Local working copies
 trunk_wc_path = 'svn-trunk'
+branches_wc_path = '.'
+buildbot_wc_path = 'svn-buildmaster'
+
 def get_trunk_wc_path(path=None):
     if path is None: return trunk_wc_path
     return os.path.join(trunk_wc_path, path)
 def get_branch_wc_path(ver, path=None):
-    branch_wc_path = os.path.join('svn-branches', ver.branch + '.x')
+    branch_wc_path = os.path.join(branches_wc_path, ver.branch + '.x')
     if path is None: return branch_wc_path
     return os.path.join(branch_wc_path, path)
+def get_buildbot_wc_path(path=None):
+    if path is None: return buildbot_wc_path
+    return os.path.join(buildbot_wc_path, path)
 
 def get_trunk_url():
     return secure_repos + '/trunk'
@@ -73,6 +79,8 @@ def get_branch_url(ver):
     return secure_repos + '/branches/' + ver.branch + '.x'
 def get_tag_url(ver):
     return secure_repos + '/tags/' + ver.base
+def get_buildbot_url():
+    return 'https://svn.apache.org/repos/infra/infrastructure/buildbot/aegis/buildmaster'
 
 #----------------------------------------------------------------------
 # Utility functions
@@ -217,21 +225,25 @@ def run_svn(cmd, dry_run=False):
 def svn_commit(cmd):
     run_svn(['commit'] + cmd, dry_run=True)
 
+def svn_checkout(*args):
+    args = ['checkout'] + list(args) + ['--revision={2017-12-01}']
+    run_svn(args)
+
 #----------------------------------------------------------------------
 def edit_file(path, pattern, replacement):
     print("Editing '%s'" % (path,))
     print("  pattern='%s'" % (pattern,))
     print("  replace='%s'" % (replacement,))
-    old_text = open(path, 'r').read():
+    old_text = open(path, 'r').read()
     new_text = re.sub(pattern, replacement, old_text)
     assert new_text != old_text
     open(path, 'w').write(new_text)
 
-def prepend_file(relpath, text):
+def prepend_file(path, text):
     print("Prepending to '%s'" % (path,))
     print("  text='%s'" % (text,))
     original = open(path, 'r').read()
-    open(path, 'w').write(text).write(original)
+    open(path, 'w').write(text + original)
 
 #----------------------------------------------------------------------
 def make_release_branch(ver):
@@ -241,9 +253,11 @@ def make_release_branch(ver):
 
 #----------------------------------------------------------------------
 def update_minor_ver_in_trunk(ver):
+    """Change the minor version in trunk to the next (future) minor version.
+    """
     trunk_wc = get_trunk_wc_path()
     trunk_url = get_trunk_url()
-    run_svn(['checkout', trunk_url, trunk_wc])
+    svn_checkout(trunk_url, trunk_wc)
 
     prev_ver = Version('1.%d.0' % (ver.minor - 1,))
     next_ver = Version('1.%d.0' % (ver.minor + 1,))
@@ -252,30 +266,30 @@ def update_minor_ver_in_trunk(ver):
     relpath = 'subversion/include/svn_version.h'
     relpaths.append(relpath)
     edit_file(get_trunk_wc_path(relpath),
-              r'^#define SVN_VER_MINOR *%s$' % (prev_ver.minor,),
-              r'^#define SVN_VER_MINOR *%s$' % (ver.minor,))
+              r'(#define SVN_VER_MINOR *)%s' % (ver.minor,),
+              r'\g<1>%s' % (next_ver.minor,))
 
     relpath = 'subversion/tests/cmdline/svntest/main.py'
     relpaths.append(relpath)
     edit_file(get_trunk_wc_path(relpath),
-              r'^SVN_VER_MINOR = %s$' % (prev_ver.minor,),
-              r'^SVN_VER_MINOR = %s$' % (ver.minor,))
+              r'(SVN_VER_MINOR = )%s' % (ver.minor,),
+              r'\g<1>%s' % (next_ver.minor,))
 
     relpath = 'subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java'
     relpaths.append(relpath)
     try:
         # since r1817921 (just after branching 1.10)
         edit_file(get_trunk_wc_path(relpath),
-                  r'SVN_VER_MINOR = %s;' % (prev_ver.minor,),
-                  r'SVN_VER_MINOR = %s;' % (ver.minor,))
+                  r'SVN_VER_MINOR = %s;' % (ver.minor,),
+                  r'SVN_VER_MINOR = %s;' % (next_ver.minor,))
     except:
         # before r1817921: two separate places
         edit_file(get_trunk_wc_path(relpath),
-                  r'version.isAtLeast\(1, %s, 0\)' % (prev_ver.minor,),
-                  r'version.isAtLeast\(1, %s, 0\)' % (ver.minor,))
+                  r'version.isAtLeast\(1, %s, 0\)' % (ver.minor,),
+                  r'version.isAtLeast\(1, %s, 0\)' % (next_ver.minor,))
         edit_file(get_trunk_wc_path(relpath),
-                  r'1.%s.0, but' % (prev_ver.minor,),
-                  r'1.%s.0, but' % (ver.minor,))
+                  r'1.%s.0, but' % (ver.minor,),
+                  r'1.%s.0, but' % (next_ver.minor,))
 
     relpath = 'CHANGES'
     relpaths.append(relpath)
@@ -287,16 +301,16 @@ def update_minor_ver_in_trunk(ver):
                  + '\n')
 
     log_msg = '''\
-Increment the trunk version number, and introduce a new CHANGES
-section for the upcoming %s release.
+Increment the trunk version number to %s, and introduce a new CHANGES
+section, following the creation of the %s.x release branch.
 
 * subversion/include/svn_version.h,
-  subversion/tests/cmdline/svntest/main.py,
-  subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java:
-    (SVN_VER_MINOR): Increment version number.
+  subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java,
+  subversion/tests/cmdline/svntest/main.py
+    (SVN_VER_MINOR): Increment to %s.
 
-* CHANGES: New section for %s.
-''' % (ver.base, next_ver.base)
+* CHANGES: New section for %s.0.
+''' % (next_ver.branch, ver.branch, next_ver.minor, next_ver.branch)
     commit_paths = [get_trunk_wc_path(p) for p in relpaths]
     svn_commit(commit_paths + ['-m', log_msg])
 
@@ -304,7 +318,7 @@ section for the upcoming %s release.
 def create_status_file_on_branch(ver):
     branch_wc = get_branch_wc_path(ver)
     branch_url = get_branch_url(ver)
-    run_svn(['checkout', branch_url, branch_wc, '--depth=immediates'])
+    svn_checkout(branch_url, branch_wc, '--depth=immediates')
 
     status_local_path = os.path.join(branch_wc, 'STATUS')
     text='''\
@@ -344,6 +358,34 @@ def update_backport_bot(ver):
 https://github.com/apache/infrastructure-puppet/blob/deployment/modules/svnqavm_pvm_asf/manifests/init.pp
 "Add new %s.x branch to list of backport branches"
 """ % (ver.branch,))
+    print("""Someone needs to run the 'svn checkout' manually.
+The exact checkout command is documented in machines/svn-qavm2/notes.txt
+in the private repository (need to use a trunk client and the svn-master.a.o
+hostname).
+""")
+
+#----------------------------------------------------------------------
+def update_buildbot_config(ver):
+    """Add the new branch to the list of branches monitored by the buildbot
+       master.
+    """
+    buildbot_wc = get_buildbot_wc_path()
+    buildbot_url = get_buildbot_url()
+    svn_checkout(buildbot_url, buildbot_wc)
+
+    prev_ver = Version('1.%d.0' % (ver.minor - 1,))
+    next_ver = Version('1.%d.0' % (ver.minor + 1,))
+
+    relpath = 'master1/projects/subversion.conf'
+    edit_file(get_buildbot_wc_path(relpath),
+              r'MINOR_LINES=[(.*%s)]' % (prev_ver.minor,),
+              r'MINOR_LINES=[\1, %s]' % (ver.minor,))
+
+    log_msg = '''\
+Subversion: start monitoring the %s branch.
+''' % (ver.branch)
+    commit_paths = [get_buildbot_wc_path(relpath)]
+    svn_commit(commit_paths + ['-m', log_msg])
 
 #----------------------------------------------------------------------
 def steps(args):
@@ -353,7 +395,7 @@ def steps(args):
     update_minor_ver_in_trunk(ver)
     create_status_file_on_branch(ver)
     update_backport_bot(ver)
-    # update_buildbot_config(ver)
+    update_buildbot_config(ver)
 
 
 #----------------------------------------------------------------------