Skip to content

build(pbn): BPP na paczkach PBN z PyPI (0.2, wave)#601

Open
mpasternak wants to merge 5 commits into
devfrom
feat/pbn-pypi-rewire
Open

build(pbn): BPP na paczkach PBN z PyPI (0.2, wave)#601
mpasternak wants to merge 5 commits into
devfrom
feat/pbn-pypi-rewire

Conversation

@mpasternak

@mpasternak mpasternak commented Jul 14, 2026

Copy link
Copy Markdown
Member

Przepięcie BPP na reużywalne pakiety PBN publikowane na PyPI, w wersji 0.2 (skoordynowane wydanie wave).

Pakiety (github.com/iplweb/*, PyPI 0.2.0)

  • pbn-client 0.2.0 — protokół PBN + identyfikatory, PublicationNotFound, publiczne helpery oświadczeń, normalize_author_name, RetryPolicy/iter_pages, cleanup API (z aliasami).
  • django-pbn-client 0.2.0is_deleted, get_or_download, download_to_model; abstrakcyjne modele + pobieranie stron.

Zmiana w BPP (net)

  • usunięto packages/ + [tool.uv.workspace]/sources, 4× COPY packages/ z Dockerfile, pytest.ini/.dockerignore,
  • zależności pbn-client>=0.2,<0.3, django-pbn-client>=0.2,<0.3 z PyPI, uv.lock przeliczony,
  • rewiring importów BPP na pbn_client/django_pbn_client (re-eksporty/shimy),
  • przepisany docs/deweloper/pakiety-pbn.md (architektura PyPI zamiast workspace) + index.md + newsfragment,
  • wyczyszczone .test_durations (48 wpisów usuniętych testów).

Weryfikacja

  • paczki z PyPI (==0.2.0, nie editable),
  • manage.py check: OK,
  • makemigrations --check: brak dryfu w pbn_api/django_pbn_client (pozostały dryf to pre-existing third-party AutoField),
  • test_helpers + test_validators: 31 passed na 0.2.

Zawiera review Codexa krok-1 (rewire technicznie zdrowy; jedyny blocker — nieaktualny przewodnik — naprawiony w tym PR). Sugerowany squash-merge.

🤖 Generated with Claude Code

@mpasternak mpasternak changed the title build(pbn): BPP konsumuje pbn-client / django-pbn-client z PyPI (krok 1) build(pbn): BPP na paczkach PBN z PyPI (0.2, wave) Jul 14, 2026
mpasternak and others added 5 commits July 14, 2026 20:27
Atrybut wiążący model w getterach stron PBN niósł nazwę z monorepo
(pbn_api). Ujednolicony z pakietem django-pbn-client: baza deklaruje
class-attr `model_class = None`, konstruktor nie przesłania go None-em,
a InstitutionGetter/ZrodlaGetter/PublisherGetter oraz shim
ThreadedMongoDBSaver używają nowej nazwy.

manage.py check: OK; pakiet + test_helpers: 40 passed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ges/

Krok 1 planu ekstrakcji: BPP konsumuje pbn-client i django-pbn-client jako
normalne zależności z PyPI (0.1.0, github.com/iplweb/*) zamiast lokalnych
memberów uv workspace.

- usunięto katalog packages/ (kopie robocze) — źródłem jest teraz PyPI,
- pyproject: usunięto [tool.uv.workspace] i wpisy `{ workspace = true }`
  z [tool.uv.sources] (django-import-export git-source zostaje); deps
  pbn-client/django-pbn-client bez zmian,
- pytest.ini: testpaths = src (bez packages),
- Dockerfile: usunięto 4× `COPY packages/` (obraz nie ma już tego katalogu),
- .dockerignore: usunięto regułę README paczek,
- uv.lock: przeliczony (paczki z indeksu, nie editable).

Weryfikacja: paczki zainstalowane z PyPI (==0.1.0, nie editable);
manage.py check OK; makemigrations --check bez dryfu w pbn_api/django_pbn_client
(pozostały dryf to pre-existing third-party AutoField: favicon/flexible_reports/
siteblog); test_helpers + test_validators 31 passed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- pbn-client / django-pbn-client: >=0.2,<0.3 (wave 0.2 z PyPI), uv.lock przeliczony,
- przepisany docs/deweloper/pakiety-pbn.md: architektura PyPI zamiast workspace
  (usunięty opis packages/ + Docker copy + komend na nieistniejące ścieżki),
- zaktualizowane docs/deweloper/index.md i newsfragment,
- usunięte 48 nieaktualnych wpisów packages/* z .test_durations.

Weryfikacja: manage.py check OK; makemigrations --check bez dryfu pbn;
test_helpers + test_validators 31 passed na paczkach 0.2.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
pbn-client 0.2 przemianował parametr konstruktora publication_pk -> correlation_id
(z property publication_pk do odczytu, ale nie jako kwarg konstruktora).
Test kolejki konstruował wyjątek z publication_pk= -> TypeError. Adopcja
nowej nazwy w teście.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mpasternak mpasternak force-pushed the feat/pbn-pypi-rewire branch from 4f3405d to a27cafa Compare July 14, 2026 18:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant