]> git.openstreetmap.org Git - nominatim.git/blobdiff - src/nominatim_db/version.py
export UsageError and Configuration in api directly
[nominatim.git] / src / nominatim_db / version.py
index ca383c859c2ad99b5067779d7741939001823ad1..34e3b432e37e4623c52ab1fece54078f62ccd1ab 100644 (file)
@@ -7,40 +7,15 @@
 """
 Version information for Nominatim.
 """
-from typing import Optional, NamedTuple
+from typing import Optional
 
-class NominatimVersion(NamedTuple):
-    """ Version information for Nominatim. We follow semantic versioning.
+# See also https://github.com/PyCQA/pylint/issues/6006
+# pylint: disable=useless-import-alias,unused-import
 
-        Major, minor and patch_level refer to the last released version.
-        The database patch level tracks important changes between releases
-        and must always be increased when there is a change to the database or code
-        that requires a migration.
+from nominatim_core.version import (NominatimVersion as NominatimVersion,
+                                    parse_version as parse_version)
 
-        When adding a migration on the development branch, raise the patch level
-        to 99 to make sure that the migration is applied when updating from a
-        patch release to the next minor version. Patch releases usually shouldn't
-        have migrations in them. When they are needed, then make sure that the
-        migration can be reapplied and set the migration version to the appropriate
-        patch level when cherry-picking the commit with the migration.
-    """
-
-    major: int
-    minor: int
-    patch_level: int
-    db_patch_level: int
-
-    def __str__(self) -> str:
-        return f"{self.major}.{self.minor}.{self.patch_level}-{self.db_patch_level}"
-
-    def release_version(self) -> str:
-        """ Return the release version in semantic versioning format.
-
-            The release version does not include the database patch version.
-        """
-        return f"{self.major}.{self.minor}.{self.patch_level}"
-
-NOMINATIM_VERSION = NominatimVersion(4, 4, 99, 1)
+NOMINATIM_VERSION = parse_version('4.4.99-1')
 
 POSTGRESQL_REQUIRED_VERSION = (9, 6)
 POSTGIS_REQUIRED_VERSION = (2, 2)
@@ -50,13 +25,3 @@ POSTGIS_REQUIRED_VERSION = (2, 2)
 # cmake/tool-installed.tmpl is used to build the binary 'nominatim'. Inside
 # there is a call to set the variable value below.
 GIT_COMMIT_HASH : Optional[str] = None
-
-
-def parse_version(version: str) -> NominatimVersion:
-    """ Parse a version string into a version consisting of a tuple of
-        four ints: major, minor, patch level, database patch level
-
-        This is the reverse operation of `version_str()`.
-    """
-    parts = version.split('.')
-    return NominatimVersion(*[int(x) for x in parts[:2] + parts[2].split('-')])