代码拉取完成,页面将自动刷新
0.10.0
for dev branch; final 0.9.0
release system fixes
#!/usr/bin/env python
import argparse as argpar
import json
import subprocess
from setupbase import get_version
VERSION_PY = 'jupyterlab_git/_version.py'
def prepLabextensionBundle():
subprocess.run(['jlpm', 'clean:slate'])
def tag(version, dryrun=False, kind=None):
"""git tagging
"""
kw = {'version': version, 'kind': kind}
tag = '{kind}_v{version}'.format(**kw) if kind else 'v{version}'.format(**kw)
if dryrun:
print("Would tag: {}".format(tag))
else:
subprocess.run(['git', 'tag', tag])
subprocess.run(['git', 'push', 'upstream', tag])
def pypi(wheel=True, test=False):
"""release on pypi
"""
if wheel:
# build the source (sdist) and binary wheel (bdist_wheel) releases
subprocess.run(['python', 'setup.py', 'sdist', 'bdist_wheel'])
else:
# build just the source release
subprocess.run(['python', 'setup.py', 'sdist'])
if test:
# release to the test server
subprocess.run(['twine', 'upload', '--repository-url', 'https://test.pypi.org/legacy/', 'dist/*'])
else:
# release to the production server
subprocess.run(['twine', 'upload', 'dist/*'])
def npmjs(dryrun=False):
"""release on npmjs
"""
if dryrun:
# dry run build and release
subprocess.run(['npm', 'publish', '--access', 'public', '--dry-run'])
else:
# build and release
subprocess.run(['npm', 'publish', '--access', 'public'])
def labExtensionVersion(dryrun=False, version=None):
if version:
if 'rc' in version:
version,rc = version.split('rc')
version = version + '-rc.{}'.format(rc)
force_ver_cmd = ['npm', '--no-git-tag-version', 'version', version, '--force', '--allow-same-version']
force_ver_info = ' '.join(force_ver_cmd)
if dryrun:
print("Would force npm version with: {}".format(force_ver_info))
else:
# force the labextension version to match the supplied version
print("> {}".format(force_ver_info))
subprocess.run(force_ver_cmd)
else:
# get single source of truth from the Typescript labextension
with open('package.json') as f:
info = json.load(f)
version = info['version']
return version
def serverExtensionVersion():
# get single source of truth from the Python serverextension
return get_version(VERSION_PY)
def doRelease(test=False):
# treat the serverextension version as the "real" single source of truth
version = serverExtensionVersion()
# force the labextension version to agree with the serverextension version
labExtensionVersion(version=version)
# tag with version and push the tag
tag(dryrun=test, version=version)
# prep the build area for the labextension bundle
prepLabextensionBundle()
# release to pypi and npmjs
pypi(test=test)
npmjs(dryrun=test)
def main():
parser = argpar.ArgumentParser()
parser.add_argument('--test', action='store_true',
help='Release to Pypi test server; performs a dryrun of all other release actions')
parsed = vars(parser.parse_args())
doRelease(test=parsed['test'])
if __name__=='__main__':
main()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。