Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

🎯 [Хвост] Глоссарий: данные, покрытие, пайплайн — 31 находка по файлам

Open
#1,003 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
20/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
python
Domain
tooling

Research direction

Start with §§ 5 and 5-bis of docs/audit/2026-08-10-full-roles.md, then trace the listed findings to their named files and tests, especially glossary/coverage.py and scripts/audit_glossary_cards.py. The issue covers 31 findings across many files, so identify a specific finding and confirm its reproduction before making changes. Done means each finding is closed by a PR or explicitly rejected with a reason, and the card gate checks that examples compile and print the claimed result.

Written by the indexing model from the issue text.

Description

area/glossary audit difficulty/medium

Хвост аудита 2026-08-10 по направлению. Полные формулировки, доказательства и репро — в документе:
docs/audit/2026-08-10-full-roles.md (§ 5 и § 5-бис). Эпик хвоста: #995

31 находка: 0 high · 4 medium · 27 low. Все верифицированы скептиками.

Находки по файлам

Чек-лист ведётся по файлам: три десятка построчных пунктов нечитаемы и правятся с конфликтами. Строка закрывается, когда закрыты все её ID; частично закрытая строка остаётся неотмеченной, а закрытые ID названы в ней явно.

  • glossary/coverage.py — 6 (0/1/5): DATA-1-03 · CANON-4-01 · CANON-4-02 · DATA-1-02 · DATA-1-07 · RUN-5-02. Частично: дефолты команды и лишние предупреждения — #1141
  • core/error_glossary.py — 4 (0/1/3): MET-1-07 · ED-2-01 · FZZ-1-03 · MET-1-03. Частично: MET-1-07 закрыт — карточка не-исключения больше не выдаётся за объяснение падения (#1184)
  • glossary/stdlib_inventory.py — 3: DATA-1-01 · RUN-5-01 · RUN-5-07
  • docs/dev/glossary.md — 2: CANON-4-04 · MET-2-08
  • scripts/audit_glossary_cards.py — 2: ADD-3-07 · DATA-1-05. Жива и ключевая: в скрипте нет ни compile(, ни ast.parse — пример карточки не исполняется, поэтому неверный контент для CI невидим
  • glossary/data/builtin.json — 2: ADD-3-02 · ADD-3-03 — карточки any и id учат неверной семантике
  • glossary/data/module.json — 2 (0/1/1): ADD-3-01 · ADD-3-05
  • core/glossary.py — 1: CANON-4-07
  • glossary/__init__.py — 1: RUN-5-08
  • glossary/data/exc.json — 1: ADD-3-04
  • glossary/data/iter.json — 1: ADD-3-06
  • glossary/detector.py — 1: MET-2-05
  • glossary/json_provider.py — 1: DATA-1-04
  • glossary/lookup.py — 1: VIS-1-02
  • glossary/taxonomy.py — 1: MET-2-03
  • tests/test_glossary.py — 1: CANON-4-05
  • tests/test_glossary_draft_pipeline.py — 1: REV-5-02

Покрытие считается неверно

coverage.py — шесть находок, и две из них ставят под сомнение сам показатель:

  • CANON-4-01: термин засчитывается покрытым по совпадению хвоста имени, поэтому enum.property, operator.abs и io.open считаются покрытыми чужими карточками;
  • CANON-4-02: в очередь пополнения как «официальный Python» попадает удалённый API (re.template).

Пока это не исправлено, бейдж покрытия глоссария завышен, а очередь пополнения ведёт работу по несуществующим целям.

Контент учит неверному

Отдельная линия, у которой есть подтверждение из браузера (фаза 5): BRW-3-01 — многострочный пример в карточке распадается на строки-плитки без отступов, вложенность теряется. Гейт audit_glossary_cards.py проверяет наличие полей, но не работоспособность примера, поэтому для CI это невидимо.

Родственное: карточка any заявляет вывод False там, где Python печатает True (ADD-3-*).

Инвариант «истина глоссария»

CANON-4-05 и REV-5-02 — про защиту от ссылок на внешнюю витрину: ratchet ловит только домен artvsmark.github.io, а docs_url не ограничен ничем; сам ratchet сверяет только id, поэтому новое расхождение у 150 разрешённых карточек невидимо. Инвариант из CLAUDE.md («внешняя витрина — не эталон, ссылаться нельзя») держится слабее, чем кажется.

Критерий приёмки

Каждая находка либо закрыта PR, либо явно отклонена с причиной. Отдельно: гейт карточек проверяет, что пример компилируется и печатает заявленное, а не только что поля заполнены.

Dominant language
Python
Stars
3
Forks
6
Avg merge
12h 26m
Merged PRs (30d)
51

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ArtVsMark/Stepik-Python-Grader

All issues in ArtVsMark/Stepik-Python-Grader

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.