-
pyproject.toml— package metadata,megavers-analyzeandmegavers-pruneCLI entry points - Config file lookup: current dir →
~/.config/megavers/config.toml→ bundled default - Update GitHub URL in
pyproject.tomlonce repo is created - Publish to PyPI so users can
pip install megavers— v0.1.0 live
Opus-reviewed the codebase for correctness/safety/packaging issues before the first PyPI release. All must-fix and should-fix items addressed:
- Restructured into a proper
megavers/package; bundledconfig.tomlas package-data (previously not shipped in the wheel at all) - Fixed wrong-file path derivation,
#suffix over-stripping, fragile block termination, and unenforced version ordering inparse() - Switched deletion to handle-based (
mega-rm), since paths are wildcard patterns to MEGAcmd with no literal-path mode - Unified dry-run preview and real execution onto the same row computation
- Fixed UTC-vs-local time bug in
--older-thanand churn rate - Rejected config filters with no criteria / unrecognised keys / no name
- Rejected negative
--keep-n/--older-than -
megavers-prunenow requires--yesto actually delete (was delete-by-default) -
run_mega(): explicit UTF-8 decoding,stdin=DEVNULL, friendly missing-MEGAcmd error - Added tests for the deletion path, config lookup, and CLI argument parsing
- Auto-start MEGAcmd server if not running — turns out MEGAcmd's own client binaries already do this (verified; see DECISIONS.md), no code needed here
- Surface skipped files —
warn_on_count_mismatches()flags files where mega-ls reports more total versions than were parsed (e.g. contact-owned versions) - Timeout / retry on large accounts —
mega-ls -r /can take minutes or fail mid-stream - Progress indicator during scan (spinner or live line count)
- Unit tests for
parse()— cover edge cases inmega-lsoutput formatting - Unit tests for filter logic (
build_filter_fn,apply_filters,versions_to_delete) - CI with GitHub Actions — run tests on push ✓ green on 3.11/3.12/3.13
- MEGAcmd install instructions for macOS and Windows in README
- Test on macOS (MEGAcmd paths and behaviour may differ)
-
--versionflag -
CHANGELOG.md - README badges (license, Python version, PyPI)
- Warn in README that
mega-login email passwordexposes password in shell history — prefer interactivemega-login email
-
CONTRIBUTING.md -
--verbose/--quietflags usinglogginginstead ofprint