fix: librarian przestaje ostrzegać o braku netrc, gdy mailto jest z env #14

Merged
gitea merged 1 commits from fix-librarian-crossref-netrc-warning into main 2026-08-02 17:01:51 +00:00
Owner

Objaw (z logów)

WARNING in conjurer_librarian: Crossref credentials missing in netrc /root/.netrc

…mimo że w deployu jest CONJURER_CROSSREF_MAILTO: mtuszowski@gmail.com.

Przyczyna — fałszywy alarm

Librarian.__init__ bierze kontakt do Crossref z CONJURER_CROSSREF_MAILTO, a potem próbuje go nadpisać wpisem crossref z netrc. Librarian nie montuje netrc → domyślne /root/.netrc nie istnieje → FileNotFoundError → log Crossref credentials missing in netrc. Ale mailto_contact nadal ma wartość z env i wyszukiwanie działa normalnie. Ostrzeżenie leciało przy każdym wyszukaniu (nowy Librarian per zapytanie) — czysty szum, mylący przy diagnozie.

Fix

Ostrzegamy tylko wtedy, gdy naprawdę nie ma kontaktu z żadnego źródła (env nieustawiony i netrc nieczytelny) — czyli w przypadku, który i tak rzuca RuntimeError. Gdy env jest ustawiony, brak netrc to normalka → log na poziomie debug.

Testy

tests/integration/test_librarian_crossref_config.py: env sam wystarcza i nie loguje ostrzeżenia (buduje się poprawnie); brak kontaktu z obu źródeł → RuntimeError. Suite: 55 unit + 45 integration zielone.

Niezwiązane z pozostałymi otwartymi PR-ami.

🤖 Generated with Claude Code

## Objaw (z logów) ``` WARNING in conjurer_librarian: Crossref credentials missing in netrc /root/.netrc ``` …mimo że w deployu jest `CONJURER_CROSSREF_MAILTO: mtuszowski@gmail.com`. ## Przyczyna — fałszywy alarm `Librarian.__init__` bierze kontakt do Crossref z `CONJURER_CROSSREF_MAILTO`, a potem **próbuje go nadpisać** wpisem `crossref` z netrc. Librarian nie montuje netrc → domyślne `/root/.netrc` nie istnieje → `FileNotFoundError` → log `Crossref credentials missing in netrc`. **Ale `mailto_contact` nadal ma wartość z env** i wyszukiwanie działa normalnie. Ostrzeżenie leciało **przy każdym wyszukaniu** (nowy `Librarian` per zapytanie) — czysty szum, mylący przy diagnozie. ## Fix Ostrzegamy tylko wtedy, gdy **naprawdę** nie ma kontaktu z żadnego źródła (env nieustawiony **i** netrc nieczytelny) — czyli w przypadku, który i tak rzuca `RuntimeError`. Gdy env jest ustawiony, brak netrc to normalka → log na poziomie `debug`. ## Testy `tests/integration/test_librarian_crossref_config.py`: env sam wystarcza i **nie** loguje ostrzeżenia (buduje się poprawnie); brak kontaktu z obu źródeł → `RuntimeError`. Suite: 55 unit + 45 integration zielone. Niezwiązane z pozostałymi otwartymi PR-ami. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
gitea self-assigned this 2026-08-02 15:42:22 +00:00
gitea added 1 commit 2026-08-02 15:42:23 +00:00
Librarian: stop warning about missing netrc when mailto is set via env
CI / compile (pull_request) Successful in 9s
CI / unit (pull_request) Successful in 18s
CI / integration (pull_request) Successful in 25s
711ce8c0c1
Librarian.__init__ reads the Crossref contact from CONJURER_CROSSREF_MAILTO,
then tries to override it from a 'crossref' netrc entry. When no netrc is
mounted (the normal container setup - default /root/.netrc) the read raises
FileNotFoundError and it logged 'Crossref credentials missing in netrc ...'
on EVERY search, even though the env var was set and used. Pure noise.

Only warn when there is genuinely no contact from either source (env unset
AND netrc unreadable) - which is also the case that then raises. When the
env var is set, a missing netrc is expected and logged at debug.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
gitea merged commit 8e18071bb6 into main 2026-08-02 17:01:51 +00:00
gitea deleted branch fix-librarian-crossref-netrc-warning 2026-08-02 17:01:51 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gitea/conjurer#14