Nothing in the repository says how a release is made, so the details live only in the workflows and in the history.
- `docs/source/release-process.rst`: the two version files that have to move together, cutting a release on its own branch, what `release: published` triggers, why the tag is not an ancestor of `main`, what each tag in the repository means, and where the artifacts land.
- `docs/source/locale/zh_CN/LC_MESSAGES/release-process.po`: the translation, following the existing gettext setup. 39 message ids, checked against the catalogue Sphinx extracts from the page, and rendered with `-D language=zh_CN`.
- `docs/source/index.rst`: one line in the toctree.
The tag section is the part that has cost time: `nightly-*` move on every push, and the legacy `main` and `dev` tags shadow the branches of the same name, so `git show main:path` answers from the tag.
New "Isolated installation with pipx" section in `installation.rst`, between the PyPI and GitHub ones: `pipx install maigret`, the `pdf` extra, upgrade, uninstall, and a note for uv users.
Until now pipx appeared only in the FAQ, as a fix for `maigret: command not found`.
`utils/` is in neither the sdist nor the wheel, so the declared entry point ships a command that fails on every install:
$ update_sitesmd
ModuleNotFoundError: No module named 'utils'
It only works in a dev checkout, where maigret is installed editable and the repository root is on sys.path.
- `pyproject.toml`: drop the `update_sitesmd` script.
- `.githooks/pre-commit`: run `python -m utils.update_site_data` instead.
- `installation.rst`: the quoted pip warning named both scripts, now one.
The snap has been on `latest/stable` since 26.08, for amd64 and arm64, and is mentioned nowhere a user would look. The only match in the repository is `settings.rst`, in passing, as an example of an install whose directory is not writable.
- `README.md`: a "Snap (Linux)" subsection before the pip one, with the official Snap Store badge at the same height as the Cloud Shell buttons above it.
- `docs/source/installation.rst`: the same, between Cloud Shells and PyPI, with the badge under `only:: html` like the other buttons on that page, plus what strict confinement means in practice, the `removable-media` interface, and automatic updates through snapd.
Serialize the maigret graph (the same one --graph builds) into an idempotent Cypher script importable into Neo4j. Reuses MaigretGraph via an extracted _build_maigret_graph() helper, leaving save_graph_report behavior unchanged; no new runtime dependency. Adds the --neo4j flag, the neo4j_report setting, docs, and a unit test.
Closes#2630
* Make xhtml2pdf optional, fix install on Linux without libcairo
Move xhtml2pdf to the new [pdf] extra so default `pip install maigret`
no longer pulls pycairo (which has no Linux/macOS wheels and breaks the
build without libcairo2-dev). save_pdf_report now raises a clear
RuntimeError pointing to `pip install 'maigret[pdf]'`, and the CLI
turns it into a friendly warning instead of a crash. Adds tests
covering the missing-extra path, plus per-OS install docs.
Fix for #2657, #2534
* Make arabic-reshaper and python-bidi optional; idempotent update of db_meta.json and sites.md
* Regenerated poerty.lock
* Update CI workflow to cover minimal installation without PDF deps
- Added social tag to social networks (33 sites)
- Fixed wrong tags (8 sites)
- Filled empty tags for 213 sites in top-1000
- Country tag cleanup (~374 sites)
- Site naming normalization (75 sites)
- New tests (3)
- Documentation updates
* feat(core): add POST request support, new sites, migrate to Majestic Million ranking
- Added native POST request support to the Maigret engine (requestMethod, requestPayload) to enable querying modern JSON registration endpoints.
- Replaced the discontinued Alexa rank API with the Majestic Million dataset for global popularity sorting and automated CI updates.
- Fixed multiple false positives among top 500 sites and bypassed standard anti-bot protections using custom User-Agents.
- Updated public documentation and internal playbooks to reflect the new features.
* feat(data): apply all data.json site check updates from main branch
- Added CTFtime and PentesterLab (new sites added in main)
- Removed forums.imore.com (deleted in main as dead site)
- Disabled 5 sites per main branch fixes: Librusec, MirTesen, amateurvoyeurforum.com, forums.stevehoffman.tv, vegalab
- Fixed 5 site checks per main branch: SoundCloud, Taplink, Setlist, RoyalCams, club.cnews.ru (switched from status_code to message checkType with proper markers)
Co-authored-by: soxoj <31013580+soxoj@users.noreply.github.com>
Agent-Logs-Url: https://github.com/soxoj/maigret/sessions/a1d194d9-c0ff-4e2b-974c-c5e4b59548bf
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>