hermes - ✅(Solved) Fix Install fails: `exclude-newer = "7 days"` in pyproject.toml is not a valid uv date [1 pull requests, 1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
NousResearch/hermes-agent#17908Fetched 2026-05-01 05:55:14
View on GitHub
Comments
1
Participants
2
Timeline
8
Reactions
0
Timeline (top)
labeled ×5closed ×1commented ×1cross-referenced ×1

The install script fails on a fresh machine because pyproject.toml declares exclude-newer = "7 days" under [tool.uv], but uv only accepts an RFC 3339 / ISO date (e.g. "2026-04-23") for that field — relative time strings are not supported.

This blocks uv pip install -e '.[all]' for every new user running the scripts/install.sh flow.

Error Message

warning: Failed to parse pyproject.toml during settings discovery: TOML parse error at line 176, column 17 | 176 | exclude-newer = "7 days" | ^^^^^^^^ failed to parse year in date "7 days": failed to parse "7 da" as year (a four digit integer): invalid digit, expected 0-9 but got error: No virtual environment found for Python 3.13; run uv venv to create an environment, or pass --system to install into a non-virtual environment ✗ Package installation failed.

Root Cause

uv's exclude-newer requires an absolute timestamp; see the uv docs. There is no relative-time syntax ("7 days", "7d ago", etc.).

Fix Action

Fixed

PR fix notes

PR #17925: fix: remove invalid relative date in uv exclude-newer setting

Description (problem / solution / changelog)

Summary

Remove exclude-newer = "7 days" from [tool.uv] in pyproject.toml. This value is not valid uv syntax — uv requires an absolute ISO 8601 date (e.g. "2026-04-29"), not a relative time string.

Problem

The invalid value causes a TOML parse error on every fresh install via scripts/install.sh:

TOML parse error at line 176, column 17
    |
176 | exclude-newer = "7 days"
    |                 ^^^^^^^^
failed to parse year in date "7 days"

This blocks uv pip install -e '.[all]' and cascades into a secondary error where uv falls back to the wrong Python interpreter.

Fix

Remove the exclude-newer line entirely. A rolling relative constraint cannot be expressed in static TOML config — it would need to be an absolute date updated on each release, or handled by a pre-commit hook.

Testing

  • Verified uv pip install -e '.[all]' --dry-run succeeds after the change (no parse error)
  • Single-file change to pyproject.toml, no code logic affected

Closes #17908

Changed files

  • pyproject.toml (modified, +1/-1)

Code Example

warning: Failed to parse `pyproject.toml` during settings discovery:
  TOML parse error at line 176, column 17
      |
  176 | exclude-newer = "7 days"
      |                 ^^^^^^^^
  failed to parse year in date "7 days": failed to parse "7 da" as year
  (a four digit integer): invalid digit, expected 0-9 but got
error: No virtual environment found for Python 3.13; run `uv venv` to
create an environment, or pass `--system` to install into a non-virtual
environment
Package installation failed.

---

[tool.uv]
# exclude-newer removed — relative dates not supported

---

[tool.uv]
exclude-newer = "2026-04-29"
RAW_BUFFERClick to expand / collapse

Summary

The install script fails on a fresh machine because pyproject.toml declares exclude-newer = "7 days" under [tool.uv], but uv only accepts an RFC 3339 / ISO date (e.g. "2026-04-23") for that field — relative time strings are not supported.

This blocks uv pip install -e '.[all]' for every new user running the scripts/install.sh flow.

Reproduce

  1. Fresh macOS (also reproducible on Linux per uv's parser).
  2. curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

Actual error

warning: Failed to parse `pyproject.toml` during settings discovery:
  TOML parse error at line 176, column 17
      |
  176 | exclude-newer = "7 days"
      |                 ^^^^^^^^
  failed to parse year in date "7 days": failed to parse "7 da" as year
  (a four digit integer): invalid digit, expected 0-9 but got
error: No virtual environment found for Python 3.13; run `uv venv` to
create an environment, or pass `--system` to install into a non-virtual
environment
✗ Package installation failed.

The second error (Python 3.13 venv not found) is a downstream side effect: once uv fails to read [tool.uv], it falls back to the system default interpreter instead of the 3.11 venv the install script just created.

Root cause

uv's exclude-newer requires an absolute timestamp; see the uv docs. There is no relative-time syntax ("7 days", "7d ago", etc.).

Suggested fix

Either drop the line entirely:

[tool.uv]
# exclude-newer removed — relative dates not supported

or pin to a real release-bound date that the maintainers update on a cadence:

[tool.uv]
exclude-newer = "2026-04-29"

A relative-date helper would need to be implemented on the uv side, or emulated via a pre-commit hook that rewrites the date at release time.

Environment

  • macOS (Darwin 25.3.0, arm64)
  • uv 0.9.9 (4fac4cb7e 2025-11-12)
  • Python 3.11.14 (installed by install.sh via uv)
  • hermes-agent commit 9ee540a (current main at time of report)

extent analysis

TL;DR

Update the pyproject.toml file to use an absolute date for the exclude-newer field under [tool.uv], as relative time strings are not supported by uv.

Guidance

  • Remove the exclude-newer line from pyproject.toml if it's not necessary for the project.
  • Update the exclude-newer field to use a specific, absolute date in the format "YYYY-MM-DD", such as "2026-04-29".
  • Consider implementing a pre-commit hook to automatically update the exclude-newer date at release time.
  • Verify that the uv version being used supports the updated pyproject.toml configuration.

Example

[tool.uv]
exclude-newer = "2026-04-29"

Notes

The uv documentation explicitly states that the exclude-newer field requires an absolute timestamp, and relative time strings are not supported. Updating the pyproject.toml file to use an absolute date should resolve the issue.

Recommendation

Apply workaround: Update the pyproject.toml file to use an absolute date for the exclude-newer field, as this is a straightforward fix that should resolve the issue without requiring any changes to the uv tool itself.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING