|
Gaudi Framework, version v21r4 |
| Home | Generated: 7 Sep 2009 |
Functions | |
| def | extract_version |
| def | gather_new_versions |
| def | svn |
| def | svn_ls |
| def | main |
Variables | |
| string | __author__ = "Marco Clemencic <Marco.Clemencic@cern.ch>" |
| tuple | _req_version_pattern = re.compile(r"^\s*version\s*(v[0-9]+r[0-9]+(?:p[0-9]+)?)\s*$") |
| tuple | _use_pattern = re.compile(r"^\s*use\s*(\w+)\s*(v[0-9]+r[0-9]+(?:p[0-9]+)?)\s*(\w+)?\s*$") |
| def tag_release::extract_version | ( | f | ) |
Find the version number in a requirements file.
Definition at line 14 of file tag_release.py.
00014 : 00015 """ 00016 Find the version number in a requirements file. 00017 """ 00018 global _req_version_pattern 00019 for l in open(f): 00020 m = _req_version_pattern.match(l) 00021 if m: 00022 return m.group(1) 00023 return None 00024 _use_pattern = re.compile(r"^\s*use\s*(\w+)\s*(v[0-9]+r[0-9]+(?:p[0-9]+)?)\s*(\w+)?\s*$")
| def tag_release::gather_new_versions | ( | f | ) |
Definition at line 26 of file tag_release.py.
00026 : 00027 global _use_pattern 00028 versions = {} 00029 for l in open(f): 00030 m = _use_pattern.match(l) 00031 if m: 00032 versions[m.group(1)] = m.group(2) 00033 return versions 00034 def svn(*args, **kwargs):
| def tag_release::main | ( | ) |
Definition at line 42 of file tag_release.py.
00042 : 00043 use_pre = len(sys.argv) > 1 and 'pre' in sys.argv 00044 url = "svn+ssh://svn.cern.ch/reps/gaudi" 00045 puburl = "https://svnweb.cern.ch/guest/gaudi" 00046 packages = gather_new_versions("requirements") 00047 packages["GaudiRelease"] = extract_version("requirements") 00048 tempdir = tempfile.mkdtemp() 00049 try: 00050 os.chdir(tempdir) 00051 # prepare root dir 00052 svn("co","-N", url, "gaudi").wait() 00053 os.chdir("gaudi") 00054 00055 pvers = packages["GaudiRelease"] 00056 if use_pre: 00057 pvers += "-pre" 00058 00059 to_commit = [] 00060 00061 # prepare project tag 00062 if (pvers + "/") not in svn_ls("%s/projects/GAUDI/tags" % url): 00063 svn("co", "-N", "%s/projects/GAUDI/tags" % url, "ProjTags").wait() 00064 svn("cp", "%s/projects/GAUDI/trunk" % url, os.path.join("ProjTags",pvers)).wait() 00065 to_commit.append("ProjTags") 00066 00067 # prepare package tags 00068 for p in packages: 00069 tagsdir = "%s/packages/%s/tags" % (url, p) 00070 tags = svn_ls(tagsdir) 00071 tag = packages[p] 00072 pre_tag = tag + "-pre" 00073 # I have to make the tag if it doesn't exist and (if we use -pre tags) 00074 # neither the -pre tag exists. 00075 make_tag = (tag+"/") not in tags and (use_pre and (pre_tag+"/") not in tags) 00076 if make_tag: 00077 svn("co", "-N", tagsdir, "%s_Tags" % p).wait() 00078 if use_pre: 00079 tag = pre_tag 00080 svn("cp", "%s/packages/%s/trunk" % (url, p), "%s_Tags/%s" % (p, tag)).wait() 00081 to_commit.append("%s_Tags" % p) 00082 00083 # prepare "distribution" dir 00084 distvers = pvers 00085 if ("GAUDI_%s/" % distvers) not in svn_ls("%s/distribution/tags/GAUDI" % url): 00086 svn("co","-N", "%s/distribution/tags/GAUDI" % url, "DistTags").wait() 00087 svn("mkdir", os.path.join("DistTags", "GAUDI_%s" % distvers)).wait() 00088 externals = open(os.path.join(tempdir, "svn_externals"), "w") 00089 pks = packages.keys() 00090 pks.sort() 00091 for p in pks: 00092 externals.write("%(pack)-20s %(url)s/packages/%(pack)s/tags/%(vers)s\n" % { "pack": p, 00093 "vers": packages[p], 00094 "url" : puburl }) 00095 externals.write("%(dir)-20s %(url)s/projects/%(proj)s/tags/%(vers)s\n" % { "dir" : "cmt", 00096 "proj": "GAUDI", 00097 "vers": pvers, 00098 "url" : puburl }) 00099 externals.close() 00100 svn("ps", "-F", externals.name, "svn:externals", os.path.join("DistTags", "GAUDI_%s" % distvers)).wait() 00101 to_commit.append("DistTags") 00102 00103 if to_commit: 00104 apply(svn, ["ci"] + to_commit).wait() 00105 else: 00106 print "Nothing to commit" 00107 00108 finally: 00109 shutil.rmtree(tempdir, ignore_errors = True) 00110 00111 return 0 00112 if __name__ == '__main__':
| def tag_release::svn | ( | args, | ||
| kwargs | ||||
| ) |
Definition at line 35 of file tag_release.py.
00035 : 00036 print "> svn", " ".join(args) 00037 return apply(Popen, (["svn"] + list(args),), kwargs) 00038 def svn_ls(url):
| def tag_release::svn_ls | ( | url | ) |
| string tag_release::__author__ = "Marco Clemencic <Marco.Clemencic@cern.ch>" |
Definition at line 8 of file tag_release.py.
| tuple tag_release::_req_version_pattern = re.compile(r"^\s*version\s*(v[0-9]+r[0-9]+(?:p[0-9]+)?)\s*$") |
Definition at line 13 of file tag_release.py.
| tuple tag_release::_use_pattern = re.compile(r"^\s*use\s*(\w+)\s*(v[0-9]+r[0-9]+(?:p[0-9]+)?)\s*(\w+)?\s*$") |
Definition at line 25 of file tag_release.py.