Skip to content

gsoc26: Manifest Replay for download, delete, and deploy (#65) - #81

Merged
DhanashreePetare merged 5 commits into
dbpedia:gsoc-2026from
DhanashreePetare:gsoc-2026
Jul 26, 2026
Merged

gsoc26: Manifest Replay for download, delete, and deploy (#65)#81
DhanashreePetare merged 5 commits into
dbpedia:gsoc-2026from
DhanashreePetare:gsoc-2026

Conversation

@DhanashreePetare

Copy link
Copy Markdown
Collaborator

Pull Request

Description

Implements databusclient manifest replay <path> for all three commands — download, delete, and deploy.

  • Download replay: re-executes a saved download using the recorded replayParams (compression, format conversion, graph-name, base-uri, checksum validation). Credentials (--vault-token/--databus-key) and --localdir are never read from the manifest — always supplied fresh at replay time.
  • Delete replay: interactive y/yes confirmation by default before deleting, per mentor discussion. --force (CLI-only, never stored in the manifest) skips the prompt for scripted/CI use. dry_run is read automatically from whatever was recorded in the original delete --dry-run --manifest ... run; a replay-time --dry-run override can additionally force a preview.
  • Deploy replay: supports classic and metadata-file modes. Per mentor guidance, the manifest stores fully-resolved deployment metadata (checksum, size, format, compression already computed) rather than raw pre-construction inputs, so replay never re-downloads or recomputes file checksums — it reconstructs create_dataset() inputs directly from the stored data. WebDAV/Nextcloud mode is explicitly not supported for replay, since locally uploaded files may no longer exist at their original paths by replay time.

All three replay paths raise a clean, actionable error (never a raw traceback) for: missing/corrupted manifest files, missing required fields, missing credentials, and unsupported commands.

Related Issues
#65

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • This change requires a documentation update
  • Housekeeping

Checklist:

  • My code follows the ruff code style of this project.
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation (if applicable)
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
    • poetry run pytest - all tests passed
    • poetry run ruff check - no linting errors

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9d493f6f-28ab-4475-a468-2c9fe978dd57

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Integer-Ctrl Integer-Ctrl left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Usability tests did not reveal any bugs

Comment thread databusclient/manifest/replay.py Outdated
Comment thread databusclient/cli.py Outdated
@DhanashreePetare

DhanashreePetare commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator Author

Apart from the review comment fixes, the latest commit also contains a small improvement to manifest summary: when an operation failed, the summary now also shows the actual error message (the "cause"), not just "Status: failed" — so users don't have to open the raw manifest file to see why something failed.

Also included two small, unrelated-to-replay fixes, to include here rather than as separate issues since they're small and genuinely affect users:

  1. BOM fix for deploy --metadata: some Windows tools save JSON files with a hidden UTF-8 BOM character at the start. The deploy command was failing to read those files. Now it handles both cases correctly.
  2. Clean error messages for deploy: if a deploy failed for any reason (bad API key, network issue, etc.), the command was printing a full raw Python error trace instead of a simple message. Now it shows just the actual error, the same clean way download and manifest replay already do.

@DhanashreePetare
DhanashreePetare merged commit 76a2bbd into dbpedia:gsoc-2026 Jul 26, 2026
2 checks passed
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.

2 participants