manta-node 0.6b5.dev758__py3-none-any.whl → 0.6b5.dev762__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- manta_node/cli/_version_generated.py +3 -3
- manta_node/cli/version.py +63 -14
- {manta_node-0.6b5.dev758.dist-info → manta_node-0.6b5.dev762.dist-info}/METADATA +16 -2
- {manta_node-0.6b5.dev758.dist-info → manta_node-0.6b5.dev762.dist-info}/RECORD +8 -8
- {manta_node-0.6b5.dev758.dist-info → manta_node-0.6b5.dev762.dist-info}/WHEEL +0 -0
- {manta_node-0.6b5.dev758.dist-info → manta_node-0.6b5.dev762.dist-info}/entry_points.txt +0 -0
- {manta_node-0.6b5.dev758.dist-info → manta_node-0.6b5.dev762.dist-info}/licenses/LICENSE +0 -0
- {manta_node-0.6b5.dev758.dist-info → manta_node-0.6b5.dev762.dist-info}/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ This file is auto-generated at build time by scripts/generate_version.py.
|
|
|
4
4
|
Do not edit manually.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
__version__ = "2026.10.07.
|
|
7
|
+
__version__ = "2026.10.07.6c5d7e8c"
|
|
8
8
|
__build_date__ = "2026.10.07"
|
|
9
|
-
__commit_id__ = "
|
|
10
|
-
__package_version__ = "0.6b5"
|
|
9
|
+
__commit_id__ = "6c5d7e8c"
|
|
10
|
+
__package_version__ = "0.6b5" # release-series base, moved by scripts/bump_version.py
|
manta_node/cli/version.py
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
"""Version information for Manta Node CLI.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The build/commit identity is loaded from:
|
|
4
4
|
1. _version_generated.py (created at build time by scripts/generate_version.py)
|
|
5
5
|
2. Fall back to dynamic git detection if not available (development mode)
|
|
6
|
+
|
|
7
|
+
The package version is read from the installed distribution metadata, so a
|
|
8
|
+
published build reports the exact version the fleet installed rather than the
|
|
9
|
+
base literal. A source checkout with no distribution reports none.
|
|
6
10
|
"""
|
|
7
11
|
|
|
12
|
+
import importlib.metadata
|
|
13
|
+
import json
|
|
8
14
|
import subprocess
|
|
9
15
|
from datetime import datetime
|
|
10
16
|
from pathlib import Path
|
|
@@ -24,13 +30,52 @@ def _load_build_version() -> dict | None:
|
|
|
24
30
|
"version": _version_generated.__version__,
|
|
25
31
|
"date": _version_generated.__build_date__,
|
|
26
32
|
"commit": _version_generated.__commit_id__,
|
|
27
|
-
"package_version": _version_generated.__package_version__,
|
|
28
33
|
}
|
|
29
34
|
except ImportError:
|
|
30
35
|
# Generated file doesn't exist (development mode)
|
|
31
36
|
return None
|
|
32
37
|
|
|
33
38
|
|
|
39
|
+
def _is_editable(distribution: importlib.metadata.Distribution) -> bool:
|
|
40
|
+
"""Whether `distribution` was installed editable, from its direct_url.json.
|
|
41
|
+
|
|
42
|
+
A static `[project].version` with no dynamic-version plugin makes an
|
|
43
|
+
editable install report the bare base, so this marker is the only thing
|
|
44
|
+
that tells an editable install from a published one.
|
|
45
|
+
"""
|
|
46
|
+
raw = distribution.read_text("direct_url.json")
|
|
47
|
+
if not raw:
|
|
48
|
+
return False
|
|
49
|
+
try:
|
|
50
|
+
direct_url = json.loads(raw)
|
|
51
|
+
except json.JSONDecodeError:
|
|
52
|
+
return False
|
|
53
|
+
if not isinstance(direct_url, dict):
|
|
54
|
+
return False
|
|
55
|
+
dir_info = direct_url.get("dir_info")
|
|
56
|
+
return bool(isinstance(dir_info, dict) and dir_info.get("editable"))
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def _get_installed_package_version() -> str:
|
|
60
|
+
"""Return the installed manta-node distribution version, or "" if none.
|
|
61
|
+
|
|
62
|
+
A published build reports the version the fleet installed (e.g.
|
|
63
|
+
``1.2b3.dev708``); an editable install reports its local segment (e.g.
|
|
64
|
+
``1.2b3+editable``); a source checkout with no distribution metadata
|
|
65
|
+
reports none. The base literal is never reported -- it names the release
|
|
66
|
+
series, not the build the node runs.
|
|
67
|
+
"""
|
|
68
|
+
try:
|
|
69
|
+
distribution = importlib.metadata.distribution("manta-node")
|
|
70
|
+
except importlib.metadata.PackageNotFoundError:
|
|
71
|
+
return ""
|
|
72
|
+
if _is_editable(distribution):
|
|
73
|
+
# A local version is never published, so the platform reads an editable
|
|
74
|
+
# node as unupdatable -- which is correct.
|
|
75
|
+
return f"{distribution.version}+editable"
|
|
76
|
+
return distribution.version
|
|
77
|
+
|
|
78
|
+
|
|
34
79
|
def _get_git_commit_id() -> str | None:
|
|
35
80
|
"""Get the current git commit ID (short form) dynamically.
|
|
36
81
|
|
|
@@ -55,7 +100,9 @@ def _get_git_commit_id() -> str | None:
|
|
|
55
100
|
if result.returncode == 0:
|
|
56
101
|
return result.stdout.strip()
|
|
57
102
|
return None
|
|
58
|
-
except (subprocess.SubprocessError,
|
|
103
|
+
except (subprocess.SubprocessError, OSError):
|
|
104
|
+
# OSError covers FileNotFoundError and PermissionError: git may be on
|
|
105
|
+
# PATH but not executable (a sandboxed role), which is still "no git".
|
|
59
106
|
return None
|
|
60
107
|
|
|
61
108
|
|
|
@@ -84,22 +131,24 @@ def get_full_version_info() -> dict:
|
|
|
84
131
|
"""Get detailed version information.
|
|
85
132
|
|
|
86
133
|
Returns:
|
|
87
|
-
Dictionary with version details.
|
|
134
|
+
Dictionary with version details. ``package_version`` is the installed
|
|
135
|
+
distribution version, or "" when the distribution is not installed.
|
|
88
136
|
"""
|
|
89
137
|
# Try build-time version first
|
|
90
138
|
build_version = _load_build_version()
|
|
91
139
|
if build_version:
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
140
|
+
info = dict(build_version)
|
|
141
|
+
else:
|
|
142
|
+
# Fall back to dynamic detection (development mode)
|
|
143
|
+
commit_id = _get_git_commit_id()
|
|
144
|
+
info = {
|
|
145
|
+
"version": get_version_string(),
|
|
146
|
+
"date": datetime.now().strftime("%Y.%m.%d"),
|
|
147
|
+
"commit": commit_id or "unknown",
|
|
148
|
+
}
|
|
96
149
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
"date": datetime.now().strftime("%Y.%m.%d"),
|
|
100
|
-
"commit": commit_id or "unknown",
|
|
101
|
-
"package_version": "0.6b5", # mirrors pyproject.toml [project].version; nothing syncs the two, so both move together
|
|
102
|
-
}
|
|
150
|
+
info["package_version"] = _get_installed_package_version()
|
|
151
|
+
return info
|
|
103
152
|
|
|
104
153
|
|
|
105
154
|
if __name__ == "__main__":
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: manta_node
|
|
3
|
-
Version: 0.6b5.
|
|
3
|
+
Version: 0.6b5.dev762
|
|
4
4
|
Summary: Node side software of the Manta platform. It is responsible for the communication with the Manta Core and the execution of the tasks.
|
|
5
5
|
Author-email: Hugo Miralles <hugo.miralles@manta-tech.io>, Matthew Thompson <matthew.thompson@manta-tech.io>
|
|
6
6
|
License-Expression: AGPL-3.0-or-later
|
|
@@ -28,7 +28,7 @@ Requires-Dist: pyyaml
|
|
|
28
28
|
Requires-Dist: psutil
|
|
29
29
|
Requires-Dist: msgpack
|
|
30
30
|
Requires-Dist: aiomqtt<3.0,>=2.5.1
|
|
31
|
-
Requires-Dist: manta-common-core
|
|
31
|
+
Requires-Dist: manta-common-core==0.6b5.dev738
|
|
32
32
|
Requires-Dist: toml
|
|
33
33
|
Requires-Dist: tomli; python_version < "3.11"
|
|
34
34
|
Requires-Dist: tomli-w
|
|
@@ -73,6 +73,20 @@ python -m manta_node --manager-host localhost --manager-port 50051 --token <jwt_
|
|
|
73
73
|
python -c "from manta_node import start_nodes; import asyncio; asyncio.run(start_nodes(3, 'localhost', 50051, '<jwt_token>'))"
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
+
## Dependency pinning
|
|
77
|
+
|
|
78
|
+
A released `manta-node` wheel pins `manta-common-core` to the exact build the
|
|
79
|
+
release was tested with, so installing any `manta-node` version gives the same
|
|
80
|
+
`manta-common-core` wherever and whenever it is installed. The source
|
|
81
|
+
`pyproject.toml` keeps a range for development and version bumps; only the
|
|
82
|
+
published wheel carries the exact pin.
|
|
83
|
+
|
|
84
|
+
This is stricter than a range: installing `manta-node` beside a package that
|
|
85
|
+
requires a different `manta-common-core` (for example `manta-sdk` in one
|
|
86
|
+
virtualenv) can fail to resolve. Production nodes run alone in their own
|
|
87
|
+
version directory, so this affects only mixed local environments. It fails
|
|
88
|
+
loudly at install time, not silently at run time.
|
|
89
|
+
|
|
76
90
|
## Documentation
|
|
77
91
|
|
|
78
92
|
📚 **Full documentation is available at [docs.manta-tech.io](https://docs.manta-tech.io/)**
|
|
@@ -6,10 +6,10 @@ manta_node/task_manager.py,sha256=xRE-yKdUW0FFR8vtX1jDwl1AxTbqVD_JS7QVR62GA00,38
|
|
|
6
6
|
manta_node/tasks.py,sha256=o837Hi-KFVJg9LF5iOtE8oD6UuTOfrEPWR-JOdhRGeY,6983
|
|
7
7
|
manta_node/utils.py,sha256=Hw4Iw2jYQYsfVLVJuBMt-_rMFBeml3nCDE2jiiXc8YM,1155
|
|
8
8
|
manta_node/cli/__init__.py,sha256=arzO3mXDJ-E2yeeytbZfN7mCswwxdQ43_QjyeL2E5yE,134
|
|
9
|
-
manta_node/cli/_version_generated.py,sha256=
|
|
9
|
+
manta_node/cli/_version_generated.py,sha256=JFAW1e6DAkd-vf4o1WM-kdUL5t3oc6Pd_QSHqmfKfmw,332
|
|
10
10
|
manta_node/cli/config_manager.py,sha256=BCju9zqzraviL3KrzRnB-vZQUY__Q5kuEqb7EdB8YdI,4409
|
|
11
11
|
manta_node/cli/main.py,sha256=dZa6zrypWBvpN8hd4qpxevvlyNFhxKINCg1537NJ36w,4318
|
|
12
|
-
manta_node/cli/version.py,sha256=
|
|
12
|
+
manta_node/cli/version.py,sha256=L4lNTz-Uw_ejumy1tXJcJhcjhb-5FRcRQ6ogZM5N1Xo,5136
|
|
13
13
|
manta_node/cli/commands/__init__.py,sha256=GKLOURXZqec5B3H3EiwX41xDISGg6cO_kCueoyZvt0Q,505
|
|
14
14
|
manta_node/cli/commands/cluster.py,sha256=kUVopCN4xkEk-IR1aKpr7bfBSQEtG6pEj_hlWno5SZQ,14257
|
|
15
15
|
manta_node/cli/commands/config.py,sha256=BiarCD0S8rcNYbio4RLzDvUS7A50s5dd5F4TiZqLR6M,16577
|
|
@@ -61,9 +61,9 @@ manta_node/supervisor/process.py,sha256=N5WvNCJnJR3c6I4uqBPPFqgEdCI9rFulHyGem9Sh
|
|
|
61
61
|
manta_node/supervisor/records.py,sha256=fUlL1SfmWpGnCbJ9956cuy0H3a7-aEF-B-naqbJiYoU,6405
|
|
62
62
|
manta_node/supervisor/seam.py,sha256=HomMFTDbc0dZQ9VrfGVhQxjiU7E23-zwyjZnLsnq6dc,8031
|
|
63
63
|
manta_node/supervisor/switch.py,sha256=hFCWhZDoWN9KN0zkNepsQfkypDhhlkBKmCOltCqlb3w,17614
|
|
64
|
-
manta_node-0.6b5.
|
|
65
|
-
manta_node-0.6b5.
|
|
66
|
-
manta_node-0.6b5.
|
|
67
|
-
manta_node-0.6b5.
|
|
68
|
-
manta_node-0.6b5.
|
|
69
|
-
manta_node-0.6b5.
|
|
64
|
+
manta_node-0.6b5.dev762.dist-info/licenses/LICENSE,sha256=9mBgLhiB9goQPQjg9XQJ6FjgVxYw9Q8lyOZYkPGwF_c,34484
|
|
65
|
+
manta_node-0.6b5.dev762.dist-info/METADATA,sha256=4X0tk7IlwABdNPkFnSgQgFlr4sCjzRG7v98E_9a9c-c,4937
|
|
66
|
+
manta_node-0.6b5.dev762.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
67
|
+
manta_node-0.6b5.dev762.dist-info/entry_points.txt,sha256=uCwggRApalLEsYs1YxwTBN0-e9oMJAkMoBp01HaSdoY,110
|
|
68
|
+
manta_node-0.6b5.dev762.dist-info/top_level.txt,sha256=nbT5J5WETuXM9UPoQckl29uUOq8wMYdRb9QDx5kAFeo,11
|
|
69
|
+
manta_node-0.6b5.dev762.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|