docs: clarify Python updater range and test sandbox marker

This commit is contained in:
ethernet
2026-09-24 09:11:45 -04:00
parent 8826e32b9c
commit 5c062d0cc3
5 changed files with 22 additions and 9 deletions

View File

@@ -129,7 +129,7 @@ jobs:
with:
# The Windows lane spawns the real desktop-update hand-off script
# (tests/test_desktop_update_windows_*.py) only when that surface
# changed; unit-level windows_only tests always run.
# changed; unit-level platforms("windows") tests always run.
desktop_updater: ${{ needs.detect.outputs.desktop_updater == 'true' }}
lint:

View File

@@ -34,7 +34,7 @@ We value contributions in this order:
| Requirement | Notes |
| -------------------- | --------------------------------------------------------------------------------------------- |
| **Git** | With the `git-lfs` extension installed |
| **Python 3.14** | The project requires `>=3.14,<3.15`. PM provides the pinned interpreter. |
| **Python 3.14** | Current development uses PM's pinned interpreter. The broader `>=3.11,<3.15` package metadata keeps old updaters working, not the current runtime on older Python. |
| **Node.js** | Use the PM pin or a version accepted by root `package.json` engines |
### PM developer environment
@@ -67,7 +67,7 @@ not install JS workspaces or rewrite launchers and shell configuration. `deactiv
### Manual development and test environment {#manual-development-and-test-environment}
Use the [PM developer workflow](../reference/package-management.md#developer-workflow) to prepare Python 3.14 (`>=3.14,<3.15`) first.
Use the [PM developer workflow](../reference/package-management.md#developer-workflow) to prepare Python 3.14 first.
Run these commands from that checkout with its prepared Python. Keep the same
development `HERMES_HOME`. PM must be able to start before it can build another
environment. On Windows, initialize the native C++ build environment for your
@@ -135,6 +135,11 @@ On Windows, run the script through Bash. When no local `.venv` or `venv`
contains pytest, the runner accepts the explicit `HERMES_PYTHON` above. It
clears credentials, isolates `HERMES_HOME`, and runs each test file in a separate
subprocess through `scripts/run_tests_parallel.py`. It does not use xdist.
When `tests/conftest.py` redirects a production `HERMES_HOME` to a temporary
session home, it sets the internal `HERMES_TEST_SANDBOX_HOME` marker. This lets
re-imported test fixtures recognize their own sandbox instead of flagging it as
real-home I/O. Do not set this marker yourself; set `HERMES_HOME` for a
disposable development home and let the test runner isolate it.
Run the relevant JS workspace checks for JS changes. Native install/update
E2E runs on disposable CI hosts, never against the developer's live app.

View File

@@ -136,9 +136,12 @@ For the POSIX source script, provide Git, curl, tar, and SHA-256 utilities.
Windows can bootstrap its pinned Git for Windows archive when Git is absent.
An existing uv can bootstrap PM; otherwise the script downloads its verified pin.
Hermes requires **Python 3.14** (`>=3.14,<3.15`). PM selects the managed tool
versions from `pm/lock.json`; it does not adopt arbitrary system Node versions
as the installed runtime.
Current first-party installations run on **Python 3.14**. The broader
`>=3.11,<3.15` range in `pyproject.toml` lets older Python installations
run the updater before PM switches them to 3.14; it does not promise current
runtime support on 3.11–3.13. PM selects the managed tool versions from
`pm/lock.json`; it does not adopt arbitrary system Node versions as the
installed runtime.
Source builds can require a native compiler and platform development libraries.
Building Electron from source adds Node native-module requirements. These

View File

@@ -150,8 +150,11 @@ The installer adds `~/.local/bin` to your PATH. If you use a non-standard shell
#### Unsupported Python version
Hermes requires **Python 3.14** (`>=3.14,<3.15`), not an arbitrary newer version.
The installer and packaged distributions provide their pinned interpreter.
Current first-party installations require **Python 3.14**, not an arbitrary
newer version. The `>=3.11,<3.15` range in `pyproject.toml` allows older
installations to run the updater before switching to 3.14; it does not mean
the current runtime supports 3.11–3.13. The installer and packaged
distributions provide their pinned interpreter.
For a manual source environment, use the
[development setup](../developer-guide/contributing.md#development-setup).

View File

@@ -72,7 +72,9 @@ hermes --version
```
The bootstrap reads tool pins from `pm/lock.json` and delegates installation
to PM. Current first-party code requires Python 3.14 (`>=3.14,<3.15`).
to PM. Current first-party code runs on Python 3.14. The wider
`>=3.11,<3.15` package metadata only lets older installs run the updater
before PM switches them to 3.14; it is not a runtime support range.
The source default is the `all` extra, not the desktop bundle's `--all-extras`.
Activation composes the installed tool environment and defines `hermes` as this