← index #747PR #12477
Related · medium · value 1.425
QUERY · ISSUE

mip / package.json: Allow 'deps' to come from another repository

openby hmaerkiopened 2023-10-14updated 2023-10-18

Problem

In repo https://github.com/hmaerki/experiment_micropython_mip, I create a mip-package which may be install as follows:

import mip
mip.install("dryer2023", version="main", index="https://hmaerki.github.io/experiment_micropython_mip")

This is the package.json file:

{
    "version": "0.1",
    "hashes": [
        ["dryer2023/statemachine.mpy", "a47f24f2064b"],
        ["dryer2023/__init__.mpy", "c4104085da6d"]
    ],
    "deps": [
        ["umqtt.simple",  "latest"]     <== ERROR A
        ["https://micropython.org/pi/v2/package/6/umqtt.simple/latest.json",  "dummy"]  <== ERROR B
    ]
}

The installation of the hashes works nice.

In the deps section, I would like to install umqtt.simple from another index (the micropython default) but I could not make it working.

  • ERROR A: Will search in my index (https://hmaerki.github.io/experiment_micropython_mip) which is wrong.
  • ERROR B: This will correctly download 'latest.json' but then again will try to get the mpy-files from my index which is wrong.

Proposed: Solution

["umqtt.simple", "latest"] should always search in https://micropython.org/pi/v2
["github:org/repo/path/latest.json", "latest"] should search in github:org/repo/path/latest.json

Are there other suggestions/thoughs?

1 comment
ned-pcs · 2023-10-18

Take a look at my work in #676

CANDIDATE · PULL REQUEST

mpremote: Support relative URLs in mip package.json file.

mergedby glenn20opened 2023-09-19updated 2025-02-24
tools

Allow URLs in mip package.json files to be specified relative to the base URL of the package.json file.

This simplifies use of mip packages from forked or copied repos. When taken together with PR #12476, it also simplifies installing from repos cloned to the local filesystem. Is also useful during testing and development.

Example package.json (adapted from https://github.com/glenn20/micropython-esp32-ota/blob/main/mip/ota/package.json):

{
    "urls": [
        ["ota/rollback.py", "rollback.py"],
        ["ota/status.py", "status.py"],
        ["ota/update.py", "update.py"],
        ["ota/blockdev_writer.py", "blockdev_writer.py"]
    ],
    "deps": [
    ],
    "version": "0.2"
}

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied