Skip to content

Commit 0cd8ab7

Browse files
authored
Use importlib.metadata to surface Basilisp version (#743)
Fixes #617
1 parent 67987ab commit 0cd8ab7

File tree

4 files changed

+11
-12
lines changed

4 files changed

+11
-12
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2727
* Fixed issue with import modules aliasing using ns eval (#719)
2828
* Fix issue with `ns-resolve` throwing an error on macros (#720)
2929
* Fix issue with py module `readerwritelock` locks handling (#722)
30-
* Fix issue with basilisp.io/writer :append mode not working (#741).
30+
* Fix issue with basilisp.io/writer :append mode not working (#741)
3131

3232
### Removed
3333
* Removed the dependency `astor` for versions of Python 3.9+ (#736)
34+
* Removed `basilisp.__version__` in favor of using `importlib.metadata` for version info (#617)
3435

3536
## [v0.1.0a2]
3637
### Added

src/basilisp/__version__.py

Lines changed: 0 additions & 3 deletions
This file was deleted.

src/basilisp/cli.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import argparse
2-
import importlib
2+
import importlib.metadata
33
import io
44
import os
55
import sys
@@ -430,9 +430,8 @@ def _add_test_subcommand(parser: argparse.ArgumentParser) -> None:
430430

431431

432432
def version(_, __):
433-
from basilisp.__version__ import __version__
434-
435-
print(f"Basilisp {__version__}")
433+
v = importlib.metadata.version("basilisp")
434+
print(f"Basilisp {v}")
436435

437436

438437
@_subcommand("version", help="print the version of Basilisp", handler=version)

src/basilisp/lang/runtime.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import contextlib
22
import decimal
33
import functools
4-
import importlib
4+
import importlib.metadata
55
import inspect
66
import itertools
77
import logging
@@ -72,6 +72,10 @@
7272
NS_VAR_NS = CORE_NS
7373
REPL_DEFAULT_NS = "basilisp.user"
7474
SUPPORTED_PYTHON_VERSIONS = frozenset({(3, 8), (3, 9), (3, 10), (3, 11), (3, 12)})
75+
BASILISP_VERSION_STRING = importlib.metadata.version("basilisp")
76+
BASILISP_VERSION = vec.vector(
77+
(int(s) if s.isdigit() else s) for s in BASILISP_VERSION_STRING.split(".")
78+
)
7579

7680
# Public basilisp.core symbol names
7781
COMPILER_OPTIONS_VAR_NAME = "*compiler-options*"
@@ -2118,8 +2122,6 @@ def in_ns(s: sym.Symbol):
21182122
)
21192123

21202124
# Version info
2121-
from basilisp.__version__ import VERSION
2122-
21232125
Var.intern(
21242126
CORE_NS_SYM,
21252127
sym.symbol(PYTHON_VERSION_VAR_NAME),
@@ -2137,7 +2139,7 @@ def in_ns(s: sym.Symbol):
21372139
Var.intern(
21382140
CORE_NS_SYM,
21392141
sym.symbol(BASILISP_VERSION_VAR_NAME),
2140-
vec.vector(VERSION),
2142+
BASILISP_VERSION,
21412143
dynamic=True,
21422144
meta=lmap.map(
21432145
{

0 commit comments

Comments
 (0)