Skip to content

fix(packaging): ship skills/optional-skills/locales/optional-mcps in wheel - #66846

Closed
xxiaoxiong wants to merge 1 commit into
NousResearch:mainfrom
xxiaoxiong:fix/66733-skills-missing-from-wheel
Closed

fix(packaging): ship skills/optional-skills/locales/optional-mcps in wheel#66846
xxiaoxiong wants to merge 1 commit into
NousResearch:mainfrom
xxiaoxiong:fix/66733-skills-missing-from-wheel

Conversation

@xxiaoxiong

Copy link
Copy Markdown

Problem

Since commit c349eca, wheels built from the repo contain zero skill files. Skills and optional-skills silently dropped out of the install artifact.

Root cause

's [tool.setuptools.data-files] section silently overrides setup.py's data_files= argument instead of merging with it. When c349eca added the pyproject section to ship locales/ and optional-mcps/{linear,n8n}/, setuptools discarded the _data_file_tree("skills") and _data_file_tree("optional-skills") calls in setup().

Fix

Remove [tool.setuptools.data-files] from pyproject.toml entirely. Consolidate all data-directory declarations into setup.py:

  • _data_file_tree("skills")
  • _data_file_tree("optional-skills")
  • _data_file_tree("locales")
  • _data_file_tree("optional-mcps")

MANIFEST.in grafts (sdist side) are unchanged.

Verification

  • 12 tests/test_packaging_metadata.py tests pass (existing + 1 new test)
  • uv build --wheel now ships 454 skills + 534 optional-skills files (was 0 before this fix)

Related

Fixes #66733

@xxiaoxiong
xxiaoxiong requested a review from a team July 18, 2026 09:31
@alt-glitch alt-glitch added type/bug Something isn't working P2 Medium — degraded but workaround exists comp/cli CLI entry point, hermes_cli/, setup wizard comp/tools Tool registry, model_tools, toolsets tool/skills Skills system (list, view, manage) tool/mcp MCP client and OAuth tool/web Web search and extraction needs-decision Awaiting maintainer decision before any implementation duplicate This issue or pull request already exists labels Jul 18, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

This was generated by AI during triage.

The packaging portion duplicates the earlier focused open #66768 (and overlaps broader #52113), but the toolsets.py / web_search change is an independent #64503 repair. Please split or rebase it so that change can be reviewed independently.

…wheel

Remove [tool.setuptools.data-files] from pyproject.toml and consolidate all
data_files declarations into setup.py via _data_file_tree().

Setuptools' pyproject.toml [tool.setuptools.data-files] section silently
overrides setup.py's data_files= argument instead of merging them — when
commit c349eca introduced the pyproject section to ship locales/ and
optional-mcps/{linear,n8n}/, it accidentally dropped skills/ and
optional-skills/ from the wheel (NousResearch#66733). uv build / pip wheel produced a
wheel with zero skill files.

Move all four data directories (skills, optional-skills, locales,
optional-mcps) to setup.py data_files= so they ship together. Keep the
MANIFEST.in graft entries (they cover the sdist side and are unaffected).

Tests:
- Update test_locale_catalogs_ship_in_both_wheel_and_sdist to assert the
  setup.py data_files declaration instead of the pyproject section.
- Add test_skills_and_optional_skills_ship_in_wheel guarding the new
  contract: pyproject MUST NOT declare [tool.setuptools.data-files], and
  setup.py MUST include _data_file_tree() calls for skills,
  optional-skills, optional-mcps.

Verified: uv build --wheel now ships 454 skills files, 534 optional-skills
files, 16 locales, and 4 optional-mcps manifests (was: 0 skills, 0
optional-skills before this fix).

Fixes NousResearch#66733.
@xxiaoxiong
xxiaoxiong force-pushed the fix/66733-skills-missing-from-wheel branch from 27ab4a9 to 8b45716 Compare July 18, 2026 10:11
@xxiaoxiong

Copy link
Copy Markdown
Author

Thanks for the review — rebased this branch on top of edfa4cd9b (current main) and force-pushed. The branch now contains a single commit:

8b457167 fix(packaging): ship skills/optional-skills/locales/optional-mcps in wheel

Files in diff: pyproject.toml, setup.py, tests/test_packaging_metadata.py.

The unrelated toolsets.py / web_search (#64503) and Moonshot (#66835) deltas that were previously interleaved have been moved to their own focused branches. Apologies for the dirty history — the previous push had interleaved commits from parallel in-progress fixes. The schema/scope is now clean.

@xxiaoxiong

Copy link
Copy Markdown
Author

Closing as duplicate of #66768 (same packaging fix, opened earlier). Rebased my branch clean in case anyone wants to compare diffs, but #66768 is the canonical PR. Apologies for the overlap.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard comp/tools Tool registry, model_tools, toolsets duplicate This issue or pull request already exists needs-decision Awaiting maintainer decision before any implementation P2 Medium — degraded but workaround exists tool/mcp MCP client and OAuth tool/skills Skills system (list, view, manage) tool/web Web search and extraction type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Built-in skills missing from wheel

2 participants