Skip to content

GSoC2026 : Docs Refactoring (Issue #86) - #87

Open
DhanashreePetare wants to merge 10 commits into
dbpedia:gsoc-2026from
DhanashreePetare:gsoc-2026
Open

GSoC2026 : Docs Refactoring (Issue #86)#87
DhanashreePetare wants to merge 10 commits into
dbpedia:gsoc-2026from
DhanashreePetare:gsoc-2026

Conversation

@DhanashreePetare

Copy link
Copy Markdown
Collaborator

Description

Restructures project documentation :

  • README.md kept slim: Quickstart, DBpedia (Docker commands removed, Docker mentioned once overall), a new GSoC 2026 section, Development & Contributing, plus short CLI/module overviews linking out to detailed docs.
  • Detailed CLI documentation (download/deploy/delete/manifest/workflow) moved to doc/cli-usage.md.
  • Python module usage documentation moved to doc/module-usage.md.
  • Examples moved to doc/examples/, including all workflow example files.
  • Added doc/README.md as a navigation index for the documentation folder.

Related Issues

Closes #86

Type of change

  • Housekeeping

@coderabbitai

coderabbitai Bot commented Aug 26, 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: a62bc000-4416-4ac9-820f-a0d69e7df8e2

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

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.

@DhanashreePetare

Copy link
Copy Markdown
Collaborator Author

The proposal link attached is correct but not showing the document, I will update that with a drive link of proposal.

@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.

Comment thread README.md
Comment thread README.md
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread doc/cli-usage.md Outdated
Comment thread doc/cli-usage.md Outdated
Comment thread doc/cli-usage.md Outdated
Comment thread doc/cli-usage.md Outdated
Comment thread doc/cli-usage.md Outdated
Comment thread doc/cli-usage.md Outdated
Comment on lines +310 to +375

<a id="cli-manifest"></a>
### Manifest

The `download`, `deploy`, and `delete` commands accept `--manifest PATH` to write a structured JSON-LD record of the operation.

```bash
databusclient download https://databus.dbpedia.org/dbpedia/mappings/mappingbased-literals/2022.12.01 --manifest ./manifests/download-run.jsonld
```

The manifest records input parameters, file URLs, checksums, byte sizes, timestamps, and success or failure status. API keys and vault tokens are not stored. If the operation fails, the manifest includes a `dbus:operationError` record with the error type and message. Existing target paths are preserved by writing an auto-suffixed manifest path.

See [Reproducible Download](examples/reproducible-download.md) for a complete download recording and replay example.

<a id="cli-manifest-replay"></a>
#### Replay

Replay a recorded download, deploy, or delete operation with:

```bash
databusclient manifest replay [OPTIONS] MANIFEST_PATH
```

Credentials are never stored in manifests and must be supplied again when needed. Use `--localdir` for download output, `--databus` for the endpoint, `--vault-token`, `--databus-key`, or `--apikey` for authentication, and `--force` or `--dry-run` for delete replay. Deploy replay supports classic and metadata-file deployments, but not WebDAV deployments because their original local files may no longer exist.

```bash
databusclient manifest replay ./manifests/download-run.jsonld --localdir ./replayed-data
```

<a id="cli-manifest-summary"></a>
#### Summary

Print the stored results from a manifest without replaying the operation or accessing the network:

```bash
databusclient manifest summary ./manifests/download-run.jsonld
```

The summary displays the command, execution time, file counts, byte total when available, overall status, operation errors, and individual failed files.

<a id="cli-workflow"></a>
### Workflow

Run a multi-step `download`, `deploy`, and `delete` pipeline from YAML:

```bash
databusclient workflow run [OPTIONS] WORKFLOW_PATH
```

Each workflow has a top-level `steps` list. Steps run in order, can reference earlier outputs using `${steps.step_name.output_files}` or `${steps.step_name.output_urls}`, and support `on_error: fail`, `continue`, or `retry`. Retry settings use `max_attempts` and `delay_seconds`.

```yaml
steps:
- name: fetch_dataset
command: download
uri: https://databus.dbpedia.org/dbpedia/mappings/mappingbased-literals/2022.12.01/mappingbased-literals_lang=az.ttl.bz2
localdir: ./data
- name: publish_dataset
command: deploy
files: ${steps.fetch_dataset.output_urls}
on_error: fail
```

Workflow runs always produce a console summary. Pass `--manifest PATH`, or set the top-level YAML `manifest` value, to also write one unified JSON-LD manifest covering the complete workflow and each step.

See [Workflow Examples](examples/workflows/README.md) for ready-to-use download, deploy, delete, and failure-handling workflows.

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.

Compared to before, quite a bit of documentation has been removed. Was that intentional? For example, the section on workflows used to be very informative. It explained things like deployment variants within a workflow and the different types of error handling available.

Let's say a new user wants to use workflows. Do you think the current information is sufficient for them to understand and use this feature?

Comment thread doc/cli-usage.md
Comment on lines +12 to +53
#### Examples of using the download command

**Download File**: download of a single file
```bash
databusclient download https://databus.dbpedia.org/dbpedia/mappings/mappingbased-literals/2022.12.01/mappingbased-literals_lang=az.ttl.bz2
```

**Download Version**: download of all files of a specific version
```bash
databusclient download https://databus.dbpedia.org/dbpedia/mappings/mappingbased-literals/2022.12.01
```

**Download Artifact**: download of all files with the latest version of an artifact
```bash
databusclient download https://databus.dbpedia.org/dbpedia/mappings/mappingbased-literals
```

**Download Group**: download of all files with the latest version of all artifacts of a group
```bash
databusclient download https://databus.dbpedia.org/dbpedia/mappings
```

**Download Collection**: download of all files within a collection
```bash
databusclient download https://databus.dbpedia.org/dbpedia/collections/dbpedia-snapshot-2022-12
```

**Download Query**: download of all files returned by a query (SPARQL endpoint must be provided with `--databus`)
```bash
databusclient download 'PREFIX dcat: <http://www.w3.org/ns/dcat#> SELECT ?x WHERE { ?sub dcat:downloadURL ?x . } LIMIT 10' --databus https://databus.dbpedia.org/sparql
```

**Download with Compression Conversion**: download files and convert them to a different compression format on-the-fly
```bash
# Convert all compressed files to gzip format
databusclient download https://databus.dbpedia.org/dbpedia/mappings/mappingbased-literals/2022.12.01 --compression gz

# Decompress files without recompressing
databusclient download https://databus.dbpedia.org/dbpedia/mappings/mappingbased-literals --compression none

# Download a collection and unify all files to bz2 format
databusclient download https://databus.dbpedia.org/dbpedia/collections/dbpedia-snapshot-2022-12 --compression bz2

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.

It should not just list a few examples. A lot of existing documentation is missing. There is no information about localdir, vault-token, all-version, and so on

Comment thread doc/cli-usage.md
Comment thread doc/cli-usage.md Outdated
Comment thread doc/gsoc-2026/README.md
@DhanashreePetare

Copy link
Copy Markdown
Collaborator Author

What about https://github.com/DhanashreePetare/databus-python-client/blob/gsoc-2026/run_all_conversion_tests.py?

Yes, those sample commands are stale and should be updated to the current CLI syntax. They are not part of the public docs, but they are still examples that can mislead users, used it for testing though.

@Integer-Ctrl

Copy link
Copy Markdown
Contributor

Based on the changes, are you relying solely on agents/LLMs to refactor the documentation?

Comment thread doc/cli-usage.md
Comment on lines +56 to +102
```bash
databusclient download --help

# Output:
Usage: python -m databusclient.cli download [OPTIONS] DATABUSURIS...

Download datasets from databus, optionally using vault access if vault
options are provided. Supports on-the-fly compression format conversion
using the --compression option.

Options:
--localdir TEXT Local databus folder (if not given, databus
folder structure is created in current
working directory)
--databus TEXT Databus URL (if not given, inferred from
databusuri, e.g.
https://databus.dbpedia.org/sparql)
--vault-token TEXT Path to Vault refresh token file
--databus-key TEXT Databus API key to download from protected
databus
--all-versions When downloading artifacts, download all
versions instead of only the latest
--authurl TEXT Keycloak token endpoint URL [default: https
://auth.dbpedia.org/realms/dbpedia/protocol/
openid-connect/token]
--clientid TEXT Client ID for token exchange [default:
vault-token-exchange]
--compression [bz2|gz|xz|none] Target compression format for on-the-fly
conversion during download. Source
compression is detected automatically from
the file extension. Use 'none' to decompress
files without recompressing.
--format [ntriples|nt|turtle|ttl|rdf-xml|rdf|xml|nquads|nq|trig|trix|json-ld|jsonld|csv|tsv]
Target format for on-the-fly format
conversion during download (Layer 2 and
Layer 3). Accepts full names or short aliases.
--graph-name TEXT Named graph URI for Triple -> Quad
conversion. Required when converting RDF
triple formats to quad formats.
--base-uri TEXT Base URI for CSV -> RDF Triple conversion.
Required when converting CSV/TSV to RDF
triple formats.
--manifest TEXT Write a JSON-LD manifest of this operation
to PATH.
--validate-checksum Validate checksums of downloaded files
--help Show this message and exit.
```

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.

You removed the help output earlier, as we discussed, but have now reintroduced it. Is there a specific reason for this?

Comment thread doc/cli-usage.md Outdated
Comment on lines +178 to +210
# Output:
Usage: databusclient deploy [OPTIONS] [DISTRIBUTIONS]...

Flexible deploy to Databus command supporting three modes:

- Classic deploy (distributions as arguments)

- Metadata-based deploy (--metadata <file>)

- Upload & deploy via Nextcloud (--webdav-url, --remote, --path)

Options:
--version-id TEXT Target databus version/dataset identifier of the form <h
ttps://databus.dbpedia.org/$ACCOUNT/$GROUP/$ARTIFACT/$VE
RSION> [required]
--title TEXT Artifact & Version Title: used for BOTH artifact and
version. Keep stable across releases; identifies the
data series. [required]
--abstract TEXT Artifact & Version Abstract: used for BOTH artifact and
version (max 200 chars). Updating it changes both
artifact and version metadata. [required]
--description TEXT Artifact & Version Description: used for BOTH artifact
and version. Supports Markdown. Updating it changes both
artifact and version metadata. [required]
--license TEXT License (see dalicc.net) [required]
--apikey TEXT API key [required]
--metadata PATH Path to metadata JSON file (for metadata mode)
--webdav-url TEXT WebDAV URL (e.g.,
https://cloud.example.com/remote.php/webdav)
--remote TEXT rclone remote name (e.g., 'nextcloud')
--path TEXT Remote path on Nextcloud (e.g., 'datasets/mydataset')
--help Show this message and exit.
```

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.

You removed the help output earlier, as we discussed, but have now reintroduced it. Is there a specific reason for this?

The reason why I thought we remove the help output is, that it gets deprecated/wrong easily. This help output for example is not up to date. For example, it does not contain --manifest

Comment thread doc/cli-usage.md Outdated
Comment on lines +298 to +311
# Output:
Usage: databusclient delete [OPTIONS] DATABUSURIS...

Delete a dataset from the databus.

Delete a group, artifact, or version identified by the given databus URI.
Will recursively delete all data associated with the dataset.

Options:
--databus-key TEXT Databus API key to access protected databus [required]
--dry-run Perform a dry run without actual deletion
--force Force deletion without confirmation prompt
--help Show this message and exit.
```

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.

You removed the help output earlier, as we discussed, but have now reintroduced it. Is there a specific reason for this?

However, also not up to date, --manifest missing

@Integer-Ctrl

Copy link
Copy Markdown
Contributor

What about https://github.com/DhanashreePetare/databus-python-client/blob/gsoc-2026/run_all_conversion_tests.py?

Yes, those sample commands are stale and should be updated to the current CLI syntax. They are not part of the public docs, but they are still examples that can mislead users, used it for testing though.

So removing or keeping?

@DhanashreePetare

Copy link
Copy Markdown
Collaborator Author

Based on the changes, are you relying solely on agents/LLMs to refactor the documentation?

No, actually I faced some commit issues, my commits somehow got mixed up, the codes I mean..and so it is happening likewise, still trying to fix all work. I have decided that, if this doesn't get resolved in time, I will fetch the merged work and redo every doc change.

@DhanashreePetare

DhanashreePetare commented Aug 30, 2026

Copy link
Copy Markdown
Collaborator Author

What about https://github.com/DhanashreePetare/databus-python-client/blob/gsoc-2026/run_all_conversion_tests.py?

Yes, those sample commands are stale and should be updated to the current CLI syntax. They are not part of the public docs, but they are still examples that can mislead users, used it for testing though.

So removing or keeping?

Keeping it, I have updated it with newer work, and have replaced it is test/manual folder just so that it stays clean.

@DhanashreePetare

Copy link
Copy Markdown
Collaborator Author

Based on the changes, are you relying solely on agents/LLMs to refactor the documentation?

No, actually I faced some commit issues, my commits somehow got mixed up, the codes I mean..and so it is happening likewise, still trying to fix all work. I have decided that, if this doesn't get resolved in time, I will fetch the merged work and redo every doc change.

The current commit is done by restoring the actual previous documentation from merged commit of milestone 5, with doc fixes applied. I hope it tries to clean what was messed up, will recheck everything myself once again.

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