diff --git a/scripts/mk_nuget_release.py b/scripts/mk_nuget_release.py index 0b6f130b1..4a2bfd98e 100644 --- a/scripts/mk_nuget_release.py +++ b/scripts/mk_nuget_release.py @@ -20,19 +20,23 @@ import subprocess import mk_util import mk_project -data = json.loads(urllib.request.urlopen("https://api.github.com/repos/Z3Prover/z3/releases/latest").read().decode()) +release_data = json.loads(urllib.request.urlopen("https://api.github.com/repos/Z3Prover/z3/releases/latest").read().decode()) +release_tag_name = release_data['tag_name'] +release_tag_ref_data = json.loads(urllib.request.urlopen("https://api.github.com/repos/Z3Prover/z3/git/refs/tags/%s" % release_tag_name).read().decode()) +release_tag_sha = release_tag_ref_data['object']['sha'] +release_tag_data = json.loads(urllib.request.urlopen("https://api.github.com/repos/Z3Prover/z3/git/tags/%s" % release_tag_sha).read().decode()) -version_str = data['tag_name'] -version_num = version_str[3:] +release_version = release_tag_name[3:] +release_commit = release_tag_data['object']['sha'] -print(version_str) +print(release_version) def mk_dir(d): if not os.path.exists(d): os.makedirs(d) def download_installs(): - for asset in data['assets']: + for asset in latest_release_data['assets']: url = asset['browser_download_url'] name = asset['name'] print("Downloading ", url) @@ -85,18 +89,13 @@ def unpack(): def mk_targets(): mk_dir("out/build") shutil.copy("../src/api/dotnet/Microsoft.Z3.targets.in", "out/build/Microsoft.Z3.targets") - -def mk_license(): - mk_dir("out/license") - shutil.copy("../LICENSE.txt", "out/license/LICENSE.txt") def create_nuget_spec(): - mk_license() contents = """ Microsoft.Z3.x64 - %s + {0} Microsoft Z3 is a satisfiability modulo theories solver from Microsoft Research. @@ -106,17 +105,22 @@ Linux Dependencies: © Microsoft Corporation. All rights reserved. smt constraint solver theorem prover - https://raw.githubusercontent.com/Z3Prover/z3/master/package/icon.jpg + https://raw.githubusercontent.com/Z3Prover/z3/{1}/package/icon.jpg https://github.com/Z3Prover/z3 - https://raw.githubusercontent.com/Z3Prover/z3/master/LICENSE.txt - + https://raw.githubusercontent.com/Z3Prover/z3/{1}/LICENSE.txt + true en -""" +""".format(release_version, release_commit) with open("out/Microsoft.Z3.x64.nuspec", 'w') as f: - f.write(contents % version_num) + f.write(contents) def create_nuget_package(): subprocess.call(["nuget", "pack"], cwd="out") @@ -162,11 +166,11 @@ nuget_sign_input = """ }""" def sign_nuget_package(): - package_name = "Microsoft.Z3.x64.%s.nupkg" % version_num + package_name = "Microsoft.Z3.x64.%s.nupkg" % release_version input_file = "out/nuget_sign_input.json" output_path = os.path.abspath("out").replace("\\","\\\\") with open(input_file, 'w') as f: - f.write(nuget_sign_input % (output_path, output_path, version_num, version_num)) + f.write(nuget_sign_input % (output_path, output_path, release_version, release_version)) subprocess.call(["EsrpClient.exe", "sign", "-a", "authorization.json", "-p", "policy.json", "-i", input_file, "-o", "out\\diagnostics.json"])