8000 Plan for #557 step 5: extract pure-Python mwmbl-crawler package by blueheron786 · Pull Request #575 · mwmbl/mwmbl · GitHub
[go: up one dir, main page]

Skip to content

Plan for #557 step 5: extract pure-Python mwmbl-crawler package - #575

Closed
blueheron786 wants to merge 1 commit into
mwmbl:mainfrom
blueheron786:plan-557-crawler-package
Closed

blueheron786 wants to merge 1 commit into
mwmbl:mainfrom
blueheron786:plan-557-crawler-package

Conversation

@blueheron786
Copy link
Copy Markdown
Collaborator

Plan for #557 step 5 (the last open step): extracting a pure-Python mwmbl-crawler package installable with uv tool install, so volunteers don't need Docker.

Steps 1-4 are merged or in flight: #558 + mwmbl/front-end#99 (version-spread dashboard), tagged crawler-v* releases, #573 (MIN_CRAWLER_VERSION + 426), #574 + mwmbl/book#32 (systemd auto-update for Docker users).

The plan file maps the crawler's actual import graph (the set release_check.py enumerates via import mwmbl.crawl) and breaks the work into five independently mergeable PRs, each under 500 added lines per the plans README:

  1. Crawler-local env-var config, no django.conf in the crawler graph (+ a test that imports mwmbl.crawl with no Django)
  2. Split the index page codec (pack/read/write_index_page) out of mwmbl_rank into a new xgboost-free mwmbl_index extension, so the crawler needs the Rust index but not xgboost
  3. import mwmbl.crawl needs no Django at all (drop django.setup(), delete settings_crawler.py)
  4. Move the crawler into packages/crawler as a uv workspace member with a mwmbl-crawl entry point
  5. PyPI publishing via trusted publishing on crawler-v* tags, thin Dockerfile, uv tool updater units, book rewrite — then delete the plan and close [Epic] Auto-Updating Crawler #557

Docs-only change; make check passes. No crawler code touched.

Breaks the extraction into five PR-sized sections: crawler-local config
without django.conf, splitting the index codec out of mwmbl_rank into
its own xgboost-free extension, making import mwmbl.crawl Django-free,
moving the crawler into packages/crawler as a uv workspace member, and
PyPI publishing with a thin Docker image plus uv-tool systemd units.

No functional changes to the crawler.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@blueheron786
Copy link
Copy Markdown
Collaborator Author

Note on the red lint/test jobs: they fail in actions/setup-python before any repo code runs — The version '3.11.12' with architecture 'x64' was not found for Ubuntu 26.04 — because ubuntu-latest rolled to Ubuntu 26.04 and the pinned python-version: '3.11.12' (ci.yml:20,76) is no longer in the versions manifest for that image. Main's last push CI (2026-10-30) predates the runner change; this PR is docs-only (make check passes locally), so the failure is infrastructure, not this change. A fix would be bumping the pin to an available 3.11.x or using 3.11 — left out of this PR as unrelated.

@blueheron786
blueheron786 deleted the plan-557-crawler-package branch October 31, 2026 17:17
@blueheron786
blueheron786 restored the plan-557-crawler-package branch November 1, 2026 03:47
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.

[Epic] Auto-Updating Crawler

1 participant

0