Skip to content

Revert "refactor: drop the package name check" - #43

Merged
fey merged 2 commits into
masterfrom
revert/restore-package-name-check
Sep 10, 2026
Merged

fey merged 2 commits into
masterfrom
revert/restore-package-name-check

Conversation

@fey

@fey fey commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

Возвращает checkPackageName, снятый в #42.

Почему откат

Довод #42 был в том, что имя резолвит по имени сам харнесс проекта, и отдельная проверка только дублирует установку. Довод верен не везде.

  • php — да: корневой composer.json требует hexlet/code из path-репозитория, composer падает сам.
  • python-библиотеки — да: [tool.uv.sources] объявляет hexlet-code = { path = "code" }, uv отказывает с Package metadata name … does not match given name.
  • javascript — нет. Харнесс объявляет "@hexlet/code": "file:code", и npm ставит path-зависимость под ключом зависимости, как бы пакет ни назвался сам. Проверено и на install, и на ci: пакет с именем wrong-name встаёт в node_modules/@hexlet/code, импорт резолвится, тесты зелёные. Здесь эта проверка — единственное, что держит имя.

Плюс видимость: отказ резолвера случается внутри make setup, поэтому его текст лежит в середине лога, а последняя строка говорит про код возврата docker. Проверка имени падает раньше и называет причину.

Дальше

  • расширение на java (hexlet.code:app), go (module code) и ruby (hexlet_code) — конвенция там та же, а mapping о ней не знает;
  • аннотация прогона говорит «The tests have failed» на любой отказ, включая провал установки зависимостей и pull образа — отдельный issue.

AGENTS.md получил запись о том, почему проверка остаётся, с замерами: чтобы довод не пришлось выяснять заново.

make lint и npx jest зелёные, 13 тестов.

🤖 Generated with Claude Code

fey and others added 2 commits September 10, 2026 22:22
…-check"

This reverts commit 5e70401, reversing
changes made to 10b3e09.
The check was dropped in #42 as redundant with the harness resolving the
student package by name, and reverted. The note keeps the measurements
that settle it, so the argument does not have to be rediscovered: php and
python libraries do resolve by name and fail on a mismatch, javascript
does not — npm installs a path dependency under the key of the dependency,
whatever the package calls itself.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@fey
fey merged commit 6915e92 into master Sep 10, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant