docs: clarify Python updater range and test sandbox marker
This commit is contained in:
2
.github/workflows/ci.yaml
vendored
2
.github/workflows/ci.yaml
vendored
@@ -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:
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user