Modules resolve the manifest with uv pip compile before syncing, so listed packages bring their dependencies
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WgBfkm4rCmtd1T4vHWjEPx
This commit is contained in:
+12
-12
@@ -247,17 +247,17 @@ Binding the speaking node's `text` straight to `said` makes the panel repeat
|
||||
what it heard, which tests the loop before there is any logic in it.
|
||||
|
||||
Both packages go into the node's environment, as described in
|
||||
[Packages](#packages). A managed environment installs its manifest with
|
||||
`uv pip sync`, which skips dependencies, so paste the fully resolved list into
|
||||
**Modules**:
|
||||
[Packages](#packages). In a managed environment, list them in **Modules**:
|
||||
|
||||
```sh
|
||||
printf 'faster-whisper\nav<19\npiper-tts\n' | uv pip compile --python-version 3.13 -
|
||||
```text
|
||||
faster-whisper
|
||||
av<19
|
||||
piper-tts
|
||||
```
|
||||
|
||||
The Docker image runs Python 3.13. `av<19` holds PyAV back, since faster-whisper
|
||||
1.2.1 cannot open files with PyAV 19. In your own venv or on a remote worker,
|
||||
`pip install faster-whisper "av<19" piper-tts` is enough.
|
||||
`av<19` holds PyAV back, since faster-whisper 1.2.1 cannot open files with
|
||||
PyAV 19. In your own venv or on a remote worker,
|
||||
`pip install faster-whisper "av<19" piper-tts` does the same.
|
||||
|
||||
The models land in `~/.cache/voice` on the machine running the node. The Docker
|
||||
image keeps its home directory inside the container, so a recreated container
|
||||
@@ -343,10 +343,10 @@ already has a managed one. Without an existing venv, it creates a managed
|
||||
environment. `NODE_VENV=managed` always requests one; the Docker image uses
|
||||
this setting.
|
||||
|
||||
In managed mode, the Modules manifest is installed with `uv pip sync` and
|
||||
versioned with the flows. Sync installs only the packages listed, not their
|
||||
dependencies, so list those too, for example as resolved by `uv pip compile`.
|
||||
Applying it refreshes local workers. The API accepts the same manifest:
|
||||
In managed mode, the Modules manifest is resolved with `uv pip compile`,
|
||||
installed with `uv pip sync` and versioned with the flows. Listing a package
|
||||
brings its dependencies along. Applying it refreshes local workers. The API
|
||||
accepts the same manifest:
|
||||
|
||||
```sh
|
||||
curl -X POST "$FLUKSIO/modules/apply" -H "Authorization: Bearer $TOKEN" \
|
||||
|
||||
@@ -32,11 +32,10 @@ the flow repository. Using references keeps credentials out of saved flows.
|
||||
packages and Python version. There are two setups:
|
||||
|
||||
- **Managed environment:** Docker uses a separate node environment. A
|
||||
superuser edits **Requirements** and presses **Apply**. Packages are synced
|
||||
with `uv pip sync`; deleting a requirement removes it. Sync installs only
|
||||
what is listed, so list the dependencies too, for example the output of
|
||||
`uv pip compile`. The manifest is versioned with the flows, and successful
|
||||
installs refresh the workers.
|
||||
superuser edits **Requirements** and presses **Apply**. The list is resolved
|
||||
with `uv pip compile` and synced with `uv pip sync`, so each package brings
|
||||
its dependencies and deleting a requirement removes it. The manifest is
|
||||
versioned with the flows, and successful installs refresh the workers.
|
||||
- **Adopted environment:** a fresh pip installation inside your own virtual
|
||||
environment can use that environment for nodes too. Modules is read-only.
|
||||
Install dependencies there with pip or uv, then sync or restart Fluksio.
|
||||
|
||||
Reference in New Issue
Block a user