diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fdac330c6a..34401d4989 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -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: diff --git a/website/docs/developer-guide/contributing.md b/website/docs/developer-guide/contributing.md index ce3bff3cdf..3f75485348 100644 --- a/website/docs/developer-guide/contributing.md +++ b/website/docs/developer-guide/contributing.md @@ -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. diff --git a/website/docs/getting-started/installation.md b/website/docs/getting-started/installation.md index 6b28b97b6d..89d8cb0ec0 100644 --- a/website/docs/getting-started/installation.md +++ b/website/docs/getting-started/installation.md @@ -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 diff --git a/website/docs/reference/faq.md b/website/docs/reference/faq.md index ffb7d08a43..3cd01e00d6 100644 --- a/website/docs/reference/faq.md +++ b/website/docs/reference/faq.md @@ -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). diff --git a/website/docs/user-guide/switching-to-source.md b/website/docs/user-guide/switching-to-source.md index 3169095a50..766782bed7 100644 --- a/website/docs/user-guide/switching-to-source.md +++ b/website/docs/user-guide/switching-to-source.md @@ -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