Warning if newer reflex/reflex-hosting-cli available (#2271)
* Check to see if there are new reflex version avaliable if so throw a warning * precommit * request -> httpx * Fix pr comments * Forgot import * Generalize check_latest_package_version --------- Co-authored-by: Alek Petuskey <alekpetuskey@aleks-mbp.lan> Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MBP.attlocal.net>
This commit is contained in:
parent
96f68cb94d
commit
421be5748b
@ -15,6 +15,7 @@ from .base import (
|
|||||||
Next,
|
Next,
|
||||||
Ping,
|
Ping,
|
||||||
Reflex,
|
Reflex,
|
||||||
|
ReflexHostingCLI,
|
||||||
Templates,
|
Templates,
|
||||||
)
|
)
|
||||||
from .compiler import (
|
from .compiler import (
|
||||||
|
@ -72,6 +72,13 @@ class Reflex(SimpleNamespace):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class ReflexHostingCLI(SimpleNamespace):
|
||||||
|
"""Base constants concerning Reflex Hosting CLI."""
|
||||||
|
|
||||||
|
# The name of the Reflex Hosting CLI package.
|
||||||
|
MODULE_NAME = "reflex-hosting-cli"
|
||||||
|
|
||||||
|
|
||||||
class Templates(SimpleNamespace):
|
class Templates(SimpleNamespace):
|
||||||
"""Constants related to Templates."""
|
"""Constants related to Templates."""
|
||||||
|
|
||||||
|
@ -78,6 +78,8 @@ def _init(
|
|||||||
app_name = prerequisites.get_default_app_name() if name is None else name
|
app_name = prerequisites.get_default_app_name() if name is None else name
|
||||||
console.rule(f"[bold]Initializing {app_name}")
|
console.rule(f"[bold]Initializing {app_name}")
|
||||||
|
|
||||||
|
prerequisites.check_latest_package_version(constants.Reflex.MODULE_NAME)
|
||||||
|
|
||||||
# Set up the web project.
|
# Set up the web project.
|
||||||
prerequisites.initialize_frontend_dependencies()
|
prerequisites.initialize_frontend_dependencies()
|
||||||
|
|
||||||
@ -171,6 +173,8 @@ def _run(
|
|||||||
|
|
||||||
console.rule("[bold]Starting Reflex App")
|
console.rule("[bold]Starting Reflex App")
|
||||||
|
|
||||||
|
prerequisites.check_latest_package_version(constants.Reflex.MODULE_NAME)
|
||||||
|
|
||||||
if frontend:
|
if frontend:
|
||||||
prerequisites.update_next_config()
|
prerequisites.update_next_config()
|
||||||
# Get the app module.
|
# Get the app module.
|
||||||
@ -489,6 +493,7 @@ def deploy(
|
|||||||
|
|
||||||
# Check if we are set up.
|
# Check if we are set up.
|
||||||
prerequisites.check_initialized(frontend=True)
|
prerequisites.check_initialized(frontend=True)
|
||||||
|
prerequisites.check_latest_package_version(constants.ReflexHostingCLI.MODULE_NAME)
|
||||||
|
|
||||||
hosting_cli.deploy(
|
hosting_cli.deploy(
|
||||||
app_name=app_name,
|
app_name=app_name,
|
||||||
|
@ -18,6 +18,7 @@ from pathlib import Path
|
|||||||
from types import ModuleType
|
from types import ModuleType
|
||||||
|
|
||||||
import httpx
|
import httpx
|
||||||
|
import pkg_resources
|
||||||
import typer
|
import typer
|
||||||
from alembic.util.exc import CommandError
|
from alembic.util.exc import CommandError
|
||||||
from packaging import version
|
from packaging import version
|
||||||
@ -29,6 +30,26 @@ from reflex.config import get_config
|
|||||||
from reflex.utils import console, path_ops, processes
|
from reflex.utils import console, path_ops, processes
|
||||||
|
|
||||||
|
|
||||||
|
def check_latest_package_version(package_name: str):
|
||||||
|
"""Check if the latest version of the package is installed.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
package_name: The name of the package.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
# Get the latest version from PyPI
|
||||||
|
current_version = pkg_resources.get_distribution(package_name).version
|
||||||
|
url = f"https://pypi.org/pypi/{package_name}/json"
|
||||||
|
response = httpx.get(url)
|
||||||
|
latest_version = response.json()["info"]["version"]
|
||||||
|
if version.parse(current_version) < version.parse(latest_version):
|
||||||
|
console.warn(
|
||||||
|
f"Your version ({current_version}) of {package_name} is out of date. Upgrade to {latest_version} with 'pip install {package_name} --upgrade'"
|
||||||
|
)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def check_node_version() -> bool:
|
def check_node_version() -> bool:
|
||||||
"""Check the version of Node.js.
|
"""Check the version of Node.js.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user