mirror of
https://github.com/Chia-Network/chia-blockchain.git
synced 2026-08-24 10:05:29 -05:00
* preliminary setup with poetry * don't worry about locking the poetry env for the exploration right now * recover black config in pyproject.toml * install.sh for linting workflow * pull chiavdf version from poetry in install-timelord.sh * activate etc in upload and lint workflow * debug poetry show output on macos * update to clvm-tools 0.4.4 * add back setproctitle * catchup deps * lock * allow 3.10 * debug * make Install.ps1 use poetry as well * -ErrorAction Ignore * more todo about python version selection * make install-timelord.sh modifications more posix compliant * gitignore .penv* and .venv* as well * remove requirements.penv.txt * get artifact check requirements from poetry * fix .gitignore for venv symlink * separate out poetry setup * : * comment out code to be worked on * setup poetry for dependency check * ignore new poetry symlink * chia_rs==0.1.4 * a few updates * some missed updates `:[` * update some types libs * fix extras * activate * just use `python` somewhere * for windows * less symlinking for windows * oops * s * more * # shellcheck disable=SC2086 * activate action * more python version * lock up * include ipython (for python >=3.8) * add miniupnpc extra * add poetry-dynamic-versioning * type it out * better match dev versioning * catch up and delete setup.py again * lock * add pytest-cov * .penv/bin/poetry * .venv for windows activation * update pytest-xdist * install upnp extra * upnp * quote * maybe update some deps * mandatory and string * oops * slighty tidy * debug pip list * debug * pybind11 maybe instead? * remove pip install debugging * debug without upnp nor pypi.chia.net * chiavdf==1.0.8 * bring back upnp * re-enable upnp * diagnostic exception reraise * .exe? * diagnostics * .cmd...? * light tidy * more cleanup * make dependency check script not cwd dependent for finding the poetry env * correct sh substitution * lock * coverage 7 * todo cleanup * poetry update * interesting * windows too * support non-editable install via scripts again * oops * again * sheesh * fixup * more * more * Update dependencies * various pre-commit linter updates * add pyupgrade to extras list * use priority=supplemental instead of secondary * Add in some missing deps * update setuptools and pyinstaller to match main * venv->.venv * lint fixes * update a few packages for 3.12 support * get zstd from chia resource for python 3.12 * Adjustments to dynamic versioning * experiments with versioning * test fixes Signed-off-by: Earle Lowe <e.lowe@chia.net> * fixup last commit * include upnp as extra when installing on windows * include mozilla-ca as a package for the cacert.pem file * some windows tweaks * use SPECPATH as anchor path in pyinstaller.spec file * Add lxml as dev dependency * Fixup typo in lxml version * Update some packages to resolve GH vuln reports * Update more packages to resolve GH vulns * Ignore pylint license in depedency checker * match installation of the dynamic version plugin on windows * Fix issues with setting windows environment and use pip to install plugin per poetry docs recommendation * properly apply non-editable option with -i * use -f with ln to remove existing file as needed * use shell=true for subprocess to help windows run chia if it's a .cmd * Update .coveragerc * use shutil.which() to find chia executable in a cross platform way * mypy fixes * Address conflicts for numpy based on python version * Update lock file * Remove troublesome reference to pypi source * Add TODOs for manual install of poetry-dynamic-versioning plugin * Use poetry dynamic versioning to figure out the version rather than setuptools_scm * Update .github/workflows/reflow-version.yml Co-authored-by: Kyle Altendorf <sda@fstab.net> * Update .github/workflows/test-single.yml Co-authored-by: Kyle Altendorf <sda@fstab.net> * Update urllib3 * Attempts to get dynamic versioning to output something semver * more versioning finangling * lint pyproject.toml * Update certifi --------- Signed-off-by: Earle Lowe <e.lowe@chia.net> Co-authored-by: Earle Lowe <e.lowe@chia.net> Co-authored-by: Earle Lowe <30607889+emlowe@users.noreply.github.com>
80 lines
2.0 KiB
Python
80 lines
2.0 KiB
Python
#
|
|
# Install helper code to manage inserting the correct version for the GUI
|
|
# Gets the version from the result of "chia version"
|
|
# Converts to proper symver format so NPM doesn't complain
|
|
# Adds the version info to the package.json file
|
|
#
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
import os
|
|
import shutil
|
|
import subprocess
|
|
from os.path import exists
|
|
|
|
from packaging.version import Version
|
|
|
|
|
|
#
|
|
# The following function is borrowed from
|
|
# https://github.com/inveniosoftware/invenio-assets/blob/maint-1.0/invenio_assets/npm.py
|
|
# Copyright (C) 2015-2018 CERN.
|
|
#
|
|
def make_semver(version_str: str) -> str:
|
|
v = Version(version_str)
|
|
major = v.release[0]
|
|
try:
|
|
minor = v.release[1]
|
|
except IndexError:
|
|
minor = 0
|
|
try:
|
|
patch = v.release[2]
|
|
except IndexError:
|
|
patch = 0
|
|
|
|
prerelease = []
|
|
if v.pre:
|
|
prerelease.append("".join(str(x) for x in v.pre))
|
|
if v.dev is not None:
|
|
prerelease.append(f"dev{v.dev}")
|
|
|
|
local = v.local
|
|
|
|
version = f"{major}.{minor}.{patch}"
|
|
|
|
if prerelease:
|
|
version += f"-{'.'.join(prerelease)}"
|
|
if local:
|
|
version += f"+{local}"
|
|
|
|
return version
|
|
|
|
|
|
def get_chia_version() -> str:
|
|
version: str = "0.0"
|
|
chia_executable = shutil.which("chia")
|
|
if chia_executable is None:
|
|
chia_executable = "chia"
|
|
output = subprocess.run([chia_executable, "version"], capture_output=True)
|
|
if output.returncode == 0:
|
|
version = str(output.stdout.strip(), "utf-8").splitlines()[-1]
|
|
return make_semver(version)
|
|
|
|
|
|
def update_version(package_json_path: str):
|
|
if not exists(package_json_path):
|
|
return
|
|
|
|
with open(package_json_path) as f:
|
|
data = json.load(f)
|
|
|
|
data["version"] = get_chia_version()
|
|
|
|
with open(package_json_path, "w") as w:
|
|
json.dump(data, indent=2, fp=w)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
update_version(f"{os.path.dirname(__file__)}/chia-blockchain-gui/package.json")
|
|
update_version(f"{os.path.dirname(__file__)}/chia-blockchain-gui/packages/gui/package.json")
|