Textually replace CodeQL version in package.json (#2269)
Textually replace CodeQL version in `package.json` instead of using `npm version`, which occasionally fails due to merge conflicts that arise in the `package.json` process. Co-authored-by: Henry Mercer <henrymercer@github.com>
This commit is contained in:
parent
8fcfedf570
commit
41857bab35
1 changed files with 17 additions and 3 deletions
20
.github/update-release-branch.py
vendored
20
.github/update-release-branch.py
vendored
|
|
@ -1,5 +1,6 @@
|
||||||
import argparse
|
import argparse
|
||||||
import datetime
|
import datetime
|
||||||
|
import fileinput
|
||||||
import re
|
import re
|
||||||
from github import Github
|
from github import Github
|
||||||
import json
|
import json
|
||||||
|
|
@ -171,6 +172,19 @@ def get_current_version():
|
||||||
with open('package.json', 'r') as f:
|
with open('package.json', 'r') as f:
|
||||||
return json.load(f)['version']
|
return json.load(f)['version']
|
||||||
|
|
||||||
|
# `npm version` doesn't always work because of merge conflicts, so we
|
||||||
|
# replace the version in package.json textually.
|
||||||
|
def replace_version_package_json(prev_version, new_version):
|
||||||
|
prev_line_is_codeql = False
|
||||||
|
for line in fileinput.input('package.json', inplace = True, encoding='utf-8'):
|
||||||
|
if prev_line_is_codeql and f'\"version\": \"{prev_version}\"' in line:
|
||||||
|
print(line.replace(prev_version, new_version), end='')
|
||||||
|
else:
|
||||||
|
prev_line_is_codeql = False
|
||||||
|
print(line, end='')
|
||||||
|
if '\"name\": \"codeql\",' in line:
|
||||||
|
prev_line_is_codeql = True
|
||||||
|
|
||||||
def get_today_string():
|
def get_today_string():
|
||||||
today = datetime.datetime.today()
|
today = datetime.datetime.today()
|
||||||
return '{:%d %b %Y}'.format(today)
|
return '{:%d %b %Y}'.format(today)
|
||||||
|
|
@ -374,9 +388,9 @@ def main():
|
||||||
run_git('commit', '--no-edit')
|
run_git('commit', '--no-edit')
|
||||||
|
|
||||||
# Migrate the package version number from a vLatest version number to a vOlder version number
|
# Migrate the package version number from a vLatest version number to a vOlder version number
|
||||||
print(f'Setting version number to {version}')
|
print(f'Setting version number to {version} in package.json')
|
||||||
subprocess.check_output(['npm', 'version', version, '--no-git-tag-version'])
|
replace_version_package_json(get_current_version(), version) # We rely on the `Update dependencies` workflow to update package-lock.json
|
||||||
run_git('add', 'package.json', 'package-lock.json')
|
run_git('add', 'package.json')
|
||||||
|
|
||||||
# Migrate the changelog notes from vLatest version numbers to vOlder version numbers
|
# Migrate the changelog notes from vLatest version numbers to vOlder version numbers
|
||||||
print(f'Migrating changelog notes from v{source_branch_major_version} to v{target_branch_major_version}')
|
print(f'Migrating changelog notes from v{source_branch_major_version} to v{target_branch_major_version}')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue