tools/build.py: Add "path" entry to index.json.

This points to the package's base directory of the within the
micropython-lib directory structure.

Signed-off-by: Damien George <damien@micropython.org>
pull/910/head
Damien George 2024-08-20 16:32:43 +10:00
rodzic 60d137029f
commit 910af1889c
1 zmienionych plików z 14 dodań i 6 usunięć

Wyświetl plik

@ -64,7 +64,7 @@
# index.json is: # index.json is:
# { # {
# "v": 1, <-- file format version # "v": 2, <-- file format version
# "updated": <utc-seconds-since-1970>, # "updated": <utc-seconds-since-1970>,
# "packages": { # "packages": {
# { # {
@ -78,7 +78,9 @@
# "7": ["0.2", "0.3", "0.4"], # "7": ["0.2", "0.3", "0.4"],
# ... <-- Other bytecode versions # ... <-- Other bytecode versions
# "py": ["0.1", "0.2", "0.3", "0.4"] # "py": ["0.1", "0.2", "0.3", "0.4"]
# } # },
# // The following entries were added in file format version 2.
# path: "micropython/bluetooth/aioble",
# }, # },
# ... # ...
# } # }
@ -122,7 +124,7 @@ import tempfile
import time import time
_JSON_VERSION_INDEX = 1 _JSON_VERSION_INDEX = 2
_JSON_VERSION_PACKAGE = 1 _JSON_VERSION_PACKAGE = 1
@ -268,7 +270,7 @@ def _copy_as_py(
# Update to the latest metadata, and add any new versions to the package in # Update to the latest metadata, and add any new versions to the package in
# the index json. # the index json.
def _update_index_package_metadata(index_package_json, metadata, mpy_version): def _update_index_package_metadata(index_package_json, metadata, mpy_version, package_path):
index_package_json["version"] = metadata.version or "" index_package_json["version"] = metadata.version or ""
index_package_json["author"] = "" # TODO: Make manifestfile.py capture this. index_package_json["author"] = "" # TODO: Make manifestfile.py capture this.
index_package_json["description"] = metadata.description or "" index_package_json["description"] = metadata.description or ""
@ -283,6 +285,9 @@ def _update_index_package_metadata(index_package_json, metadata, mpy_version):
print(" New version {}={}".format(v, metadata.version)) print(" New version {}={}".format(v, metadata.version))
index_package_json["versions"][v].append(metadata.version) index_package_json["versions"][v].append(metadata.version)
# The following entries were added in file format version 2.
index_package_json["path"] = package_path
def build(output_path, hash_prefix_len, mpy_cross_path): def build(output_path, hash_prefix_len, mpy_cross_path):
import manifestfile import manifestfile
@ -318,7 +323,8 @@ def build(output_path, hash_prefix_len, mpy_cross_path):
for lib_dir in lib_dirs: for lib_dir in lib_dirs:
for manifest_path in glob.glob(os.path.join(lib_dir, "**", "manifest.py"), recursive=True): for manifest_path in glob.glob(os.path.join(lib_dir, "**", "manifest.py"), recursive=True):
print("{}".format(os.path.dirname(manifest_path))) package_path = os.path.dirname(manifest_path)
print("{}".format(package_path))
# .../foo/manifest.py -> foo # .../foo/manifest.py -> foo
package_name = os.path.basename(os.path.dirname(manifest_path)) package_name = os.path.basename(os.path.dirname(manifest_path))
@ -342,7 +348,9 @@ def build(output_path, hash_prefix_len, mpy_cross_path):
} }
index_json["packages"].append(index_package_json) index_json["packages"].append(index_package_json)
_update_index_package_metadata(index_package_json, manifest.metadata(), mpy_version) _update_index_package_metadata(
index_package_json, manifest.metadata(), mpy_version, package_path
)
# This is the package json that mip/mpremote downloads. # This is the package json that mip/mpremote downloads.
mpy_package_json = { mpy_package_json = {