diff --git a/MANIFEST.in b/MANIFEST.in index c14d3fcbc..aaca35be5 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,4 @@ -include *.py CONTRIBUTORS LICENSE README.rst VERSION +include *.py CONTRIBUTORS LICENSE README.rst recursive-include juju *.py recursive-include examples *.py recursive-include docs *.rst diff --git a/Makefile b/Makefile index c2c25a304..ffa0a3b88 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ BIN := .tox/py3/bin PY := $(BIN)/python3 PIP := $(BIN)/pip3 -VERSION=$(shell cat VERSION) +VERSION := $(shell $(PY) -c "from juju.version import CLIENT_VERSION; print(CLIENT_VERSION)") .PHONY: clean clean: diff --git a/VERSION b/VERSION deleted file mode 100644 index 7266d5bcd..000000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -3.3.1.0 diff --git a/docs/conf.py b/docs/conf.py index 87c54f91b..417179595 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -21,13 +21,16 @@ from pathlib import Path here = Path(__file__).absolute().parent -version = (here.parent / 'VERSION').read_text().strip() + # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath('..')) +from juju.version import CLIENT_VERSION +version = CLIENT_VERSION + # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. diff --git a/docs/requirements.txt b/docs/requirements.txt index cb80e25f2..cf690bbf3 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -12,4 +12,5 @@ paramiko macaroonbakery toposort python-dateutil -kubernetes \ No newline at end of file +kubernetes +packaging \ No newline at end of file diff --git a/juju/version.py b/juju/version.py index e4289b46b..e9b48bf59 100644 --- a/juju/version.py +++ b/juju/version.py @@ -1,19 +1,8 @@ # Copyright 2023 Canonical Ltd. # Licensed under the Apache V2, see LICENCE file for details. -import pathlib -import re - LTS_RELEASES = ["jammy", "focal", "bionic", "xenial", "trusty", "precise"] DEFAULT_ARCHITECTURE = 'amd64' -# CLIENT_VERSION (that's read from the VERSION file) is the highest Juju server -# version that this client supports. -# Note that this is a ceiling. CLIENT_VERSION <= juju-controller-version works. -# For CLIENT_VERSION < juju-controller-version (strictly smaller), we emit a warning -# to update the client to the latest. -# However, for any CLIENT_VERSION > juju-controller-version, a "client incompatible -# with server" will be returned by the juju controller. -VERSION_FILE_PATH = pathlib.Path(__file__).parent.parent / 'VERSION' -CLIENT_VERSION = re.search(r'\d+\.\d+\.\d+', open(VERSION_FILE_PATH).read().strip()).group() +CLIENT_VERSION = "3.3.1.0" diff --git a/setup.py b/setup.py index 1a10222af..a2e8ee94b 100644 --- a/setup.py +++ b/setup.py @@ -5,6 +5,8 @@ from setuptools import find_packages, setup +from juju.version import CLIENT_VERSION + here = Path(__file__).absolute().parent readme = here / 'docs' / 'readme.rst' changelog = here / 'docs' / 'changelog.rst' @@ -13,11 +15,10 @@ changelog.read_text() ) long_description_content_type = 'text/x-rst' -version = here / 'VERSION' setup( name='juju', - version=version.read_text().strip(), + version=CLIENT_VERSION.strip(), packages=find_packages( exclude=["*.tests", "*.tests.*", "tests.*", "tests"]), package_data={'juju': ['py.typed']}, @@ -32,6 +33,7 @@ 'typing_inspect>=0.6.0', 'kubernetes>=12.0.1', 'hvac', + 'packaging', ], include_package_data=True, maintainer='Juju Ecosystem Engineering', diff --git a/tox.ini b/tox.ini index 132b804f1..69a9bceca 100644 --- a/tox.ini +++ b/tox.ini @@ -40,6 +40,7 @@ deps = websockets kubernetes hvac + packaging [testenv:docs] deps =