From c18e2566a0718384869c798e6b6ebebc3b30087a Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Fri, 28 Jul 2023 09:48:07 -0700 Subject: [PATCH] Fix set-version script corrupting files when new version is shorter than old one Summary: We were leaving the last bits of the previous string around if writing a new file which is shorter. See https://github.com/facebook/yoga/commit/30b697d3fe836061cf75080a91afa97df3beae35 for an example. Reviewed By: cortinico Differential Revision: D47824696 fbshipit-source-id: 82ebafd9cd1720752cbc62ea93c5b9362395d5c8 --- set-version.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/set-version.py b/set-version.py index a4c837a3..2afff1a4 100755 --- a/set-version.py +++ b/set-version.py @@ -19,13 +19,13 @@ version = sys.argv[1] with open("gradle.properties", "r+") as f: new_contents = re.sub(r"VERSION_NAME=.*", f"VERSION_NAME={version}", f.read()) f.seek(0) + f.truncate() f.write(new_contents) - with open("javascript/package.json", "r+") as f: new_contents = re.sub(r'"version": ".*",', f'"version": "{version}",', f.read()) - print(new_contents) f.seek(0) + f.truncate() f.write(new_contents) with open("Yoga.podspec", "r+") as f: @@ -33,4 +33,5 @@ with open("Yoga.podspec", "r+") as f: r"spec\.version = '.*'", f"spec.version = '{version}'", f.read() ) f.seek(0) + f.truncate() f.write(new_contents)