Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.

docs: improve reading flow#424

Merged
raballew merged 14 commits intojumpstarter-dev:mainfrom
raballew:improve-flow
Apr 29, 2025
Merged

docs: improve reading flow#424
raballew merged 14 commits intojumpstarter-dev:mainfrom
raballew:improve-flow

Conversation

@raballew
Copy link
Copy Markdown
Member

@raballew raballew commented Apr 24, 2025

  1. cleaner landing page with recording from Kubecon, ideally we can replace this with an asciicinema kind of recording in the future
  2. clearer structure of content flow starting on landing page, and then going through introduction, getting started (installation, configuration, usage) and references (CLI, driver APIs)
  3. consolidation content in fewer places instead of spreading bits and pieces elsewhere, this largely impacts content in getting started and to a lesser extend the introduction as well
  4. formatting of all *.md files so that they can easily be read on a terminal even though its not perfect yet

Note, that apart from obviously broken things, the driver documentation remains largely untouched.

Summary by CodeRabbit

  • Documentation
    • Major reorganization and streamlining of documentation, including new guides for installation, configuration, and usage.
    • Expanded and clarified introductory, architecture, and integration pattern documentation with improved structure and diagrams.
    • Added detailed guides for configuration files, authentication, and operation modes (local and distributed).
    • Replaced and consolidated API reference pages for drivers and adapters; added new package API references.
    • Improved formatting, navigation, and readability across README files and documentation pages.
    • Updated and reformatted glossary and contribution guidelines for clarity.
    • Numerous outdated or redundant documentation files were removed and replaced with updated content.
    • Added comprehensive adapter documentation with example implementation demonstrating port forwarding adapter.
    • Enhanced driver documentation with detailed architecture and a full example of custom driver and client.
    • Introduced new reference sections for CLI man pages and package APIs for better developer navigation.
    • Added new usage examples illustrating local and distributed mode workflows with CLI and Python API.
    • Provided detailed installation instructions for Jumpstarter service on various Kubernetes environments including Helm and ArgoCD.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 24, 2025

Walkthrough

This update comprehensively restructures and streamlines the Jumpstarter documentation. It removes many detailed API reference markdown files, CLI and configuration guides, and architecture overviews, replacing them with a more concise, modular set of documentation pages. New sections under "getting-started" and "reference" provide reorganized installation, configuration, and usage guides, while driver API documentation now primarily links to package README files. The introduction, adapters, and drivers documentation are expanded with clearer architectural explanations and practical examples. Minor formatting and path corrections are applied to package README files and driver creation scripts. No changes are made to code logic or exported entities.

Changes

File(s) / Path(s) Change Summary
docs/source/api-reference/*, docs/source/architecture.md, docs/source/cli/*, docs/source/config/*, docs/source/installation/*, docs/source/getting-started/setup-*.md Deleted numerous documentation files, including detailed API references for drivers and adapters, CLI and configuration guides, installation instructions, and architecture overviews. These removals eliminate redundancy and outdated content, making way for a more concise and modular documentation structure.
docs/source/getting-started/configuration/*, docs/source/getting-started/installation/*, docs/source/getting-started/usage/*, docs/source/reference/* Added new, reorganized documentation files for configuration (files, loading order, authentication), installation (Python packages, Kubernetes service), and usage (local/distributed setup, examples, integration patterns). Introduced new reference index and man page documentation, as well as package API documentation linking to driver READMEs.
docs/source/introduction/*, docs/source/glossary.md Extensively revised and expanded introduction, adapters, drivers, clients, and exporters documentation for clarity, structure, and completeness. Added diagrams, architectural explanations, expanded glossary with new terms and refined definitions.
docs/source/reference/package-apis/drivers/* Added new markdown files for each driver under package-apis/drivers/, each containing a single line referencing the corresponding package README file. This replaces the previous detailed API reference markdown files for drivers.
templates/create_driver.sh Updated the documentation directory path in the driver creation script from docs/source/api-reference/drivers to docs/source/reference/package-apis/drivers to align with the new documentation structure.
CONTRIBUTING.md, README.md Condensed and simplified the contributing guide and main README. CONTRIBUTING.md was refactored to a concise, bullet-point style, removing detailed explanations. README.md had a broken image link fixed, highlight emojis updated, and interface lists simplified.
packages/jumpstarter-driver-*/README.md Minor formatting improvements and path corrections in package README files; no changes to logic or content.
docs/source/conf.py Fixed indentation in a comment within the Sphinx configuration file; no functional changes.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Docs
    participant PackageREADME
    participant CLI/Exporter/Client

    User->>Docs: Navigate to driver API documentation
    Docs->>PackageREADME: Reference package README for driver details
    User->>Docs: Access installation/configuration/usage guides
    Docs->>CLI/Exporter/Client: Provide commands and examples
Loading

Possibly related PRs

  • #248: Adds and documents TcpPortforwardAdapter and UnixPortforwardAdapter classes, directly related to the new adapter documentation and example implementation.
  • #396: Updates Corellium driver documentation and driver creation template script, aligning with this PR’s documentation restructuring.
  • #294: Adds initial OIDC authentication documentation and reorganizes configuration docs, related to the new authentication configuration docs added here.

Suggested reviewers

  • mangelajo

Poem

In burrows deep, the docs were dense,
But now they're trimmed with common sense!
A README hop, a driver leap,
References tidy, structure neat.
From local fields to clusters wide,
This rabbit guides you, side by side.
🐇✨


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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@raballew raballew requested a review from mangelajo April 24, 2025 13:34
@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 24, 2025

Deploy Preview for jumpstarter-docs ready!

Name Link
🔨 Latest commit
🔍 Latest deploy log https://app.netlify.com/sites/jumpstarter-docs/deploys/6810e9f143129ab228a32c4f
😎 Deploy Preview https://deploy-preview-424--jumpstarter-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🔭 Outside diff range comments (3)
docs/source/reference/package-apis/drivers/sdwire.md (2)

23-24: ⚠️ Potential issue

Update doctest path to the new docs location.

The test is still pointing at the old api-reference directory. It should reference the new reference/package-apis path:

- >>> ExporterConfigV1Alpha1DriverInstance.from_path("source/api-reference/drivers/sdwire.yaml").instantiate()
+ >>> ExporterConfigV1Alpha1DriverInstance.from_path("source/reference/package-apis/drivers/sdwire.yaml").instantiate()

36-37: ⚠️ Potential issue

Fix the autoclass target to the SDWire package.

The current target references jumpstarter_driver_opendal, which is incorrect for this driver. It should point to jumpstarter_driver_sdwire:

- .. autoclass:: jumpstarter_driver_opendal.client.StorageMuxClient()
+ .. autoclass:: jumpstarter_driver_sdwire.client.StorageMuxClient()
    :members:
docs/source/reference/package-apis/drivers/qemu.md (1)

24-27: 🛠️ Refactor suggestion

API Reference section is incomplete.

This placeholder needs to be replaced with an autoclass directive to pull in the QEMU client API. For example:

## API Reference

- Add API documentation here.
+ ```{eval-rst}
+ .. autoclass:: jumpstarter_driver_qemu.client.QemuDriver()
+     :members:
+ ```
🧹 Nitpick comments (76)
packages/jumpstarter-driver-power/README.md (1)

3-4: Avoid mid-sentence line breaks for readability
The sentence is split in an odd spot, which can disrupt readability in terminal viewers. Consider keeping the full sentence on one line or breaking at a natural phrase boundary.

Proposed change:

- `jumpstarter-driver-power` provides functionality for interacting with power
- control devices.
+ `jumpstarter-driver-power` provides functionality for interacting with power control devices.
packages/jumpstarter-driver-can/README.md (1)

3-4: Maintain cohesive sentence structure
Breaking “CAN bus connections.” across two lines interrupts the flow. It’s clearer to keep the sentence intact or wrap at a logical breakpoint.

Proposed change:

- `jumpstarter-driver-can` provides functionality for interacting with CAN bus
- connections.
+ `jumpstarter-driver-can` provides functionality for interacting with CAN bus connections.
docs/source/reference/package-apis/drivers/dutlink.md (1)

3-4: Combine split phrase for clarity
Splitting “DUT” and “Link devices” mid-phrase is jarring. Merge into a single term or break at a more natural boundary.

Proposed change:

- `jumpstarter-driver-dutlink` provides functionality for interacting with DUT
- Link devices.
+ `jumpstarter-driver-dutlink` provides functionality for interacting with DUTLink devices.
docs/source/reference/package-apis/drivers/snmp.md (1)

3-4: Avoid splitting key terms across lines
Breaking “power via SNMP-enabled PDUs” into two lines splits the phrase unnaturally. For consistency and flow, keep it on one line or wrap at a clause boundary.

Proposed change:

- `jumpstarter-driver-snmp` provides functionality for controlling power via
- SNMP-enabled PDUs (Power Distribution Units).
+ `jumpstarter-driver-snmp` provides functionality for controlling power via SNMP-enabled PDUs (Power Distribution Units).
docs/source/reference/package-apis/drivers/tftp.md (1)

3-4: Merge split phrase for readability
Splitting “TFTP server” across lines can be confusing. Keep related terms together or wrap at a clause break.

Proposed change:

- `jumpstarter-driver-tftp` provides functionality for a read-only TFTP server
- that can be used to serve files.
+ `jumpstarter-driver-tftp` provides functionality for a read-only TFTP server that can be used to serve files.
docs/source/reference/package-apis/drivers/flashers.md (1)

1-1: Use proper link or include for README reference
The raw path may not render as a clickable link or include the README content when built. Consider replacing with a Markdown link:

[Jumpstarter-driver-flashers README](../../../../../packages/jumpstarter-driver-flashers/README.md)

or using a Sphinx include directive:

.. include:: ../../../../../packages/jumpstarter-driver-flashers/README.md
   :parser: markdown
docs/source/reference/package-apis/drivers/raspberrypi.md (1)

1-1: Ensure README link is rendered
The plain path may not be clickable in generated docs. Replace with:

[Jumpstarter-driver-raspberrypi README](../../../../../packages/jumpstarter-driver-raspberrypi/README.md)

or embed via a Sphinx include to surface the content directly.

docs/source/reference/package-apis/drivers/corellium.md (1)

1-1: Convert raw path to a link or include
To improve navigation, change the plain path to a Markdown link:

[Jumpstarter-driver-corellium README](../../../../../packages/jumpstarter-driver-corellium/README.md)

or use a Sphinx include directive to embed the README content.

docs/source/reference/package-apis/drivers/yepkit.md (1)

1-1: Make README reference actionable
The raw path won’t render as a link. Consider using a Markdown link:

[Jumpstarter-driver-yepkit README](../../../../../packages/jumpstarter-driver-yepkit/README.md)

or a Sphinx include to pull in the README for better maintainability.

docs/source/reference/package-apis/drivers/http.md (1)

1-27: Enhance navigability and linking

  • Add an H1 heading at the top (e.g., # jumpstarter-driver-http) to maintain consistency across driver docs.
  • Convert the raw README path on line 1 into a proper link or Sphinx/MyST include so it renders correctly. For example:
- ../../../../../packages/jumpstarter-driver-http/README.md
+ [HTTP driver README](../../../../../packages/jumpstarter-driver-http/README.md)
docs/source/reference/package-apis/drivers/probe-rs.md (1)

1-65: Improve title and README inclusion

  • Insert an H1 header at the top (# jumpstarter-driver-probe-rs) so the driver reference shows up properly in your TOC.
  • Replace the raw path on line 1 with a clickable link or include directive, for example:
- ../../../../../packages/jumpstarter-driver-probe-rs/README.md
+ [Probe-rs driver README](../../../../../packages/jumpstarter-driver-probe-rs/README.md)
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

49-49: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

docs/source/reference/package-apis/drivers/power.md (1)

1-27: Add a heading and validate README linking

  • Add # jumpstarter-driver-power as the top-level title to align with the other driver docs.
  • Transform the raw relative path on line 1 into a markdown link or Sphinx include, for example:
- ../../../../../packages/jumpstarter-driver-power/README.md
+ [Power driver README](../../../../../packages/jumpstarter-driver-power/README.md)
docs/source/reference/package-apis/drivers/network.md (1)

1-50: Introduce a title and proper README link

  • Add a top-level H1 header (# jumpstarter-driver-network) for consistency.
  • Change the raw path on line 1 into a clickable markdown link or include it via Sphinx, for example:
- ../../../../../packages/jumpstarter-driver-network/README.md
+ [Network driver README](../../../../../packages/jumpstarter-driver-network/README.md)
docs/source/reference/package-apis/drivers/ustreamer.md (1)

1-1: Convert raw path to a Markdown link for clarity.

The first line is a plain relative path to the package README; wrapping it in a Markdown link (or a MyST/RST include directive if preferred) will improve navigation in rendered docs.
Example:

- ../../../../../packages/jumpstarter-driver-ustreamer/README.md
+ [Package README](../../../../../packages/jumpstarter-driver-ustreamer/README.md)
docs/source/reference/package-apis/drivers/sdwire.md (1)

1-1: Convert raw path to a Markdown link for clarity.

Wrapping the relative path in a Markdown link will make the link clickable in rendered docs:

- ../../../../../packages/jumpstarter-driver-sdwire/README.md
+ [Package README](../../../../../packages/jumpstarter-driver-sdwire/README.md)
docs/source/reference/package-apis/drivers/uboot.md (1)

1-1: Convert raw path to a Markdown link for clarity.

Please consider changing the first line to a Markdown link:

- ../../../../../packages/jumpstarter-driver-uboot/README.md
+ [Package README](../../../../../packages/jumpstarter-driver-uboot/README.md)
docs/source/reference/package-apis/drivers/qemu.md (1)

1-1: Convert raw path to a Markdown link for clarity.

Use a Markdown link for the README path to make it clickable:

- ../../../../../packages/jumpstarter-driver-qemu/README.md
+ [Package README](../../../../../packages/jumpstarter-driver-qemu/README.md)
docs/source/reference/package-apis/drivers/can.md (1)

26-34: Remove parentheses in autoclass directives
Sphinx recommends specifying class names without (). For consistency and to avoid potential resolution errors, update:

-.. autoclass:: jumpstarter_driver_can.client.CanClient()
+.. autoclass:: jumpstarter_driver_can.client.CanClient

(and similarly for IsoTpClient).

docs/source/reference/package-apis/drivers/shell.md (1)

41-64: Consider consolidating API docs under autoclass
Rather than manually listing each generated function, you could rely on:

.. autoclass:: jumpstarter_driver_shell.client.ShellClient
   :members:
   :noindex:

This reduces duplication and maintenance as methods evolve.

docs/source/reference/package-apis/drivers/opendal.md (1)

49-75: Remove parentheses in autoclass for consistency
As with other docs, drop () from class directives:

-.. autoclass:: jumpstarter_driver_opendal.client.OpendalClient()
+.. autoclass:: jumpstarter_driver_opendal.client.OpendalClient

Repeat for other classes.

packages/jumpstarter-driver-corellium/README.md (1)

3-4: Optional grammar refinement
Consider adding “the” before “virtualization platform” for clarity:

`jumpstarter-driver-corellium` provides functionality for interacting with the Corellium virtualization platform.
packages/jumpstarter-driver-qemu/README.md (1)

3-4: Grammar refinement: add article
Update to “interacting with the QEMU virtualization platform” for proper English grammar.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~3-~3: You might be missing the article “the” here.
Context: ...ides functionality for interacting with QEMU virtualization platform. ## Installati...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

docs/source/introduction/service.md (1)

49-50: Capitalize "Router" for consistency
To match the "Router" section heading, consider changing "router can be scaled..." to "Router can be scaled...".

packages/jumpstarter-driver-flashers/README.md (4)

253-253: Capitalize "OCI Bundles" heading
Rename ## oci-bundles to ## OCI Bundles to keep acronym casing consistent with other headings.


265-268: Simplify literalinclude path
The deep ../../../../../ path is brittle. Consider shortening it by referencing the docs root or using a path alias:

-```{literalinclude} ../../../../../packages/jumpstarter-driver-flashers/oci_bundles/test/manifest.yaml
+```{literalinclude} ../../../packages/jumpstarter-driver-flashers/oci_bundles/test/manifest.yaml

269-269: Remove trailing colon in heading
MarkdownLint flags the trailing colon. Change to:

-## Table with the spec fields of the manifest:
+## Table with the spec fields of the manifest
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

269-269: Trailing punctuation in heading
Punctuation: ':'

(MD026, no-trailing-punctuation)


292-292: Avoid duplicate "Examples" heading
There’s already an ## Examples above; consider renaming this one to ## Bundle Examples or similar to prevent confusion and lint warnings.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

292-292: Multiple headings with the same content
null

(MD024, no-duplicate-heading)

docs/source/getting-started/configuration/index.md (1)

12-13: Typographical: add missing comma for clarity
Consider adding a comma after “explanation” to improve readability:

-For a list of supported configuration options including an explanation please
+For a list of supported configuration options, including an explanation, please
🧰 Tools
🪛 LanguageTool

[typographical] ~12-~12: Consider adding a comma here.
Context: ...uration options including an explanation please refer to the [MAN pages](../../referenc...

(PLEASE_COMMA)

docs/source/reference/package-apis/drivers/index.md (1)

10-11: Clarify driver categorization wording
The phrase “organized by their primary function” reads clearly. Optionally, you could simplify to “categorized by function” to reduce wordiness.

docs/source/introduction/clients.md (3)

4-5: Clarify client invocation methods
The updated sentence clearly links to the CLI reference. Consider rephrasing to “used as a Python library or via the CLI” for brevity.


9-9: Emphasize client configuration types
The italicized local and remote modes are helpful. For consistency, ensure the same styling appears in the getting-started and usage guides.


21-22: Remote client setup description clarity
The split-line description of Service connectivity is clear. Optionally, you could link to a dedicated Service configuration guide if available.

docs/source/index.md (4)

25-28: Hyphenate compound adjective “open-source”
Update “open source testing tool” to “open-source testing tool” for clarity.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~25-~25: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... Meeting ``` Jumpstarter is a free and open source testing tool that bridges the gap betwe...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


30-31: Embed video accessibility
The YouTube iframe is well-placed. Consider wrapping it in a figure directive or adding a caption for better context and accessibility.


32-34: Use em dash for parenthetical phrase
Replace the hyphen in “…scripts everywhere - like a Makefile…” with an em dash for typographic consistency:

- scripts everywhere - like a *Makefile*
+ scripts everywhere — like a *Makefile*

49-54: Simplify toctree entries
Toctree entries are clear and concise. Optionally, remove blank lines between items or reorder to match the site’s primary navigation.

docs/source/getting-started/index.md (2)

1-4: Title and introductory flow
Switching to “Getting Started” makes the section more concise. The overview is clear; you might swap “hands-on guides” for “practical guides” to align with other docs.


13-14: Consistent hyphenation of modes
Decide on hyphens for local-mode and distributed-mode vs. plain local mode and distributed mode, and apply consistently across docs.

docs/source/reference/man-pages/j.md (3)

3-5: Avoid acronym redundancy
Instead of “driver CLI interfaces,” consider “driver CLIs” to eliminate redundancy:

- driver CLI interfaces
+ driver CLIs
🧰 Tools
🪛 LanguageTool

[style] ~4-~4: This phrase is redundant (‘I’ stands for ‘interfaces’). Use simply “CLIs”.
Context: ...p shell). It provides access to driver CLI interfaces configured in your exporter. Usage: ...

(ACRONYM_TAUTOLOGY)


10-11: Usage code block clarity
The usage snippet is clear and properly formatted. You could annotate common flags (e.g., --help) for extra guidance.


16-18: Consistent bullet styling
The bullets describing command invocation are clear. Optionally, rephrase or reorder to avoid redundancy with the summary line below.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~17-~17: Possible missing preposition found.
Context: ...o see all available driver interfaces - Access specific drivers with `j <driver_type> ...

(AI_HYDRA_LEO_MISSING_TO)

docs/source/introduction/exporters.md (2)

59-61: Merge hyperlink text to avoid line breaks.
Splitting the link text across lines may disrupt rendering in some readers. Consider:

- Note that the `grpcConfig` section supports all options documented in the [gRPC
- argument keys
- documentation](https://grpc.github.io/grpc/core/group__grpc__arg__keys.html).
+ Note that the `grpcConfig` section supports all options documented in the [gRPC argument keys documentation](https://grpc.github.io/grpc/core/group__grpc__arg__keys.html).

77-77: Add comma for improved readability.
Inserting a comma before “and” clarifies the independent clauses:

- ... with auto-restart capabilities in case something goes wrong and it needs to be restarted.
+ ... with auto-restart capabilities in case something goes wrong, and it needs to be restarted.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~77-~77: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...apabilities in case something goes wrong and it needs to be restarted.

(COMMA_COMPOUND_SENTENCE)

docs/source/getting-started/installation/packages.md (3)

1-3: Consider refining the document title for clarity.
Since this page lives under “Installation,” renaming # Packages to something like # Python Packages or # Jumpstarter Packages may help readers quickly understand the content.


8-9: Add comma for readability.
In the second list item, add a comma before “and” to separate independent clauses:

- CLI components metapackage including admin and user interfaces
+ CLI components metapackage including admin, and user interfaces

93-93: Insert missing comma.
Add a comma after “alias” for a compound sentence:

- If you've configured a `jmp` alias you can undefine it with:
+ If you've configured a `jmp` alias, you can undefine it with:
🧰 Tools
🪛 LanguageTool

[uncategorized] ~93-~93: Possible missing comma found.
Context: ... jmp' If you've configured a `jmp` alias you can undefine it with: shell $ u...

(AI_HYDRA_LEO_MISSING_COMMA)

docs/source/getting-started/usage/setup-distributed-mode.md (1)

72-83: Add caution about --unsafe flag.
Enabling --unsafe bypasses driver validation and may introduce security risks in production. Consider adding a warning:

- $ jmp admin create client hello --save --unsafe
+ $ jmp admin create client hello --save --unsafe  # ⚠️ Use `--unsafe` only for development or testing
docs/source/getting-started/configuration/files.md (5)

1-5: Clarify the page title for specificity.
The heading “Files” could be more descriptive (e.g., “Configuration Files”) to clearly indicate the context when browsing the documentation.


6-9: Use explicit relative link to Loading Order.
For consistency and to avoid potential broken links, consider updating the link to:

See [Loading Order](./loading-order.md) for details…

12-22: Enhance readability of file/location metadata.
Instead of inline bold labels, consider formatting the file path and location in separate lines or as a table for better readability:

**File:**  
`~/.config/jumpstarter/config.yaml`

**Location:**  
`config.yaml`

28-46: Group repeated environment variables.
Both client and exporter sections list several overlapping environment variables (e.g., JUMPSTARTER_GRPC_INSECURE). You might consolidate these into a shared “Global Environment Variables” sub-section to reduce duplication.


114-126: Provide a sample systemd unit file.
Under “Running Exporters,” it may be helpful to include an example systemd service unit to guide users on deploying exporters as services.

docs/source/glossary.md (6)

6-10: Alphabetize the acronym list.
Reordering acronyms (for example, CI/CD, CRD, DUT, gRPC, JWT, KVM) can improve discoverability.


24-27: Consider adding a cross-reference for router.
Linking this term to its detailed section or relevant diagrams would help users navigate quickly.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~24-~24: Loose punctuation mark.
Context: ...ble exporters and clients. * router: A service used by the controller to rou...

(UNLIKELY_OPENING_PUNCTUATION)


28-31: Consider adding a cross-reference for host.
Providing a hyperlink to the “Exporter Configuration” or architecture overview can improve context.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~28-~28: Loose punctuation mark.
Context: ...cess to exported interfaces. * host: A system running the exporter service, ...

(UNLIKELY_OPENING_PUNCTUATION)


34-42: Indent list items under device for clarity.
Restructuring to:

* `device`: A device that is exposed on an exporter. Examples include:
  - Network interface
  - Serial port
  -

will enhance readability.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~34-~34: Loose punctuation mark.
Context: ... to hardware. ## Concepts * device: A device that is exposed on an exporter...

(UNLIKELY_OPENING_PUNCTUATION)


43-45: Refine the lease description.
Rather than “Leases ensure exclusive access to specific devices/exporters,” consider:

Leases ensure exclusive access to exporter resources for a defined time period.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~43-~43: Loose punctuation mark.
Context: ..., etc.) * CAN bus interface * lease: A time-limited reservation of an export...

(UNLIKELY_OPENING_PUNCTUATION)


66-71: Split and simplify the driver definition.
The current sentence contains two “otherwise” clauses and may be hard to parse. Consider:

Drivers in the main `jumpstarter` repo are called `in-tree drivers`.  
External packages are called `out-of-tree drivers`.  
Drivers implementing predefined interfaces are called `standard drivers`; all others are custom drivers.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~66-~66: Loose punctuation mark.
Context: ...th the exporter resources. * driver: The term for both the driver class an...

(UNLIKELY_OPENING_PUNCTUATION)


[typographical] ~68-~68: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...n the main jumpstarter repository are called in-tree drivers, otherwise they are called out-of-tree drivers. ...

(THUS_SENTENCE)


[typographical] ~70-~70: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...enting predefined interfaces are called standard drivers, otherwise they are called custom drivers. * ...

(THUS_SENTENCE)

docs/source/getting-started/usage/examples.md (3)

1-5: Consider clarifying the page title.
Changing the heading from “Examples” to “Usage Examples” (or similar) would align it with other Getting Started pages and make it clearer in the navigation.


28-46: Remove or explain the placeholder text in the CLI snippet.
The line “Generic composite device” appears to be a placeholder. It may confuse users—either replace it with a concrete example or remove it.


68-84: Standardize Python code indentation.
Within the code block, use consistent 4-space indentation under with env() as client: to match PEP 8:

-with env() as client:
-   client.power.on()
-   client.power.off()
+with env() as client:
+    client.power.on()
+    client.power.off()
docs/source/getting-started/configuration/authentication.md (1)

186-189: Remove extra colon at the end of the sentence.
The line ends with “claim mappings.:” which combines a period and a colon. It should end with just a colon before the code block:

-   service account name with "dex:" as configured in the claim mappings.:
+   service account name with "dex:" as configured in the claim mappings:
🧰 Tools
🪛 LanguageTool

[uncategorized] ~186-~186: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... appropriate OIDC usernames. Prefix the full service account name with "dex:" as configured ...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[formatting] ~187-~187: These punctuation marks differ from each other. Use only one if you are ending a sentence.
Context: ...ex:" as configured in the claim mappings.: ```shell $ jmp admin create exporter t...

(DOUBLE_PUNCTUATION_PREMIUM)

docs/source/getting-started/usage/integration-patterns.md (1)

338-346: Remove duplicate reference to “the controller”.
The phrase is repeated back-to-back and can be consolidated to improve readability.

🧰 Tools
🪛 LanguageTool

[grammar] ~342-~342: This phrase is duplicated. You should probably use “the controller” only once.
Context: ...equest access to remote devices through the controller - The controller manages leases and routes connections t...

(PHRASE_REPETITION)

docs/source/introduction/adapters.md (5)

3-5: Streamline introductory paragraph
Combine lines 3–5 into a single paragraph to improve Markdown rendering and avoid awkward manual line breaks. Also, add a period at the end of the sentence for consistency.


13-15: Unify list item punctuation
Some list items end with a period, others don’t. For consistency, either add periods to all items or remove them entirely.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~14-~14: A period might be missing here.
Context: ...in a way that's tailored for specific scenarios The architecture consists of these key...

(AI_EN_LECTOR_MISSING_PUNCTUATION_PERIOD)


16-21: Refine component description for clarity
Consider rephrasing the Adapter Base description to “Adapters accept a driver client and return a transformed interface,” which aligns more directly with the transformation pattern discussed above.


29-33: Use consistent relative linking
Update the link to Drivers to use ../introduction/drivers.md for clarity and to ensure the doc generator resolves it correctly in the site structure.


69-75: Enhance readability of recommended practices
The numbered list is helpful. To improve readability, break long lines into shorter sentences or indent multi-line items uniformly under each numeral.

CONTRIBUTING.md (2)

17-18: Break out setup commands for clarity
Instead of inline code in step 3, consider listing make sync and make test as separate commands in a fenced block:

- 3. Set up the development environment: `make sync` and `make test`
+ 3. Set up the development environment:
+    ```shell
+    $ make sync
+    $ make test
+    ```

This improves readability and maintains consistency with other command sections.


45-46: Consistent bullet formatting under Code Contributions
Under ### Code Contributions, convert the standalone line into a bullet item for consistency:

- We welcome bug fixes, features, and improvements to the core codebase.
+ - We welcome bug fixes, features, and improvements to the core codebase.
docs/source/getting-started/installation/service.md (2)

3-11: Extract prerequisites into a dedicated section
For better discoverability, move the bullet list of prerequisites into its own ## Prerequisites subsection rather than inline at the top.


200-202: Capitalize Kind and refine phrasing
Update to:

- First, create a kind cluster config that enables nodeports to host the Services.
+ First, create a Kind cluster configuration to enable node ports to host the services.

This improves grammar and consistency.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~201-~201: Possible missing preposition found.
Context: ...te a kind cluster First, create a kind cluster config that enables nodeports to host t...

(AI_EN_LECTOR_MISSING_PREPOSITION)

docs/source/introduction/drivers.md (2)

7-10: Refine Exporter description for clarity
Rephrase the opening sentence to improve clarity and flow:

- An [Exporter](exporters.md) uses Drivers to "export" these interfaces from a
- host machine to the clients via [gRPC](https://grpc.io/).
+ Exporters use drivers to expose interfaces over gRPC, making hardware and virtual
+ device connections available to remote clients.

77-78: Correct article usage
Replace “on a exporter” with “on an exporter”:

- ... shell driver commands on a exporter.
+ ... shell driver commands on an exporter.
🧰 Tools
🪛 LanguageTool

[misspelling] ~78-~78: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...tions, such as shell driver commands on a exporter. ### Composite Drivers Compo...

(EN_A_VS_AN)

docs/source/introduction/index.md (2)

6-8: Hyphenate compound adjective
Change “cloud native approach” to “cloud-native approach” for correct compound adjective usage:

- Jumpstarter democratizes this technology through a free, cloud native approach that works with both physical hardware and virtual devices.
+ Jumpstarter democratizes this technology through a free, cloud-native approach that works with both physical hardware and virtual devices.

168-170: Fix nested list indentation
Adjust nested list under Distributed Mode to use two spaces per level:

-    - **Driver Access Control**: ...
-      - **Driver Allowlist**: ...
+      - **Driver Access Control**: ...
+        - **Driver Allowlist**: ...
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

168-168: Unordered list indentation
Expected: 2; Actual: 3

(MD007, ul-indent)


169-169: Unordered list indentation
Expected: 2; Actual: 3

(MD007, ul-indent)


170-170: Unordered list indentation
Expected: 2; Actual: 3

(MD007, ul-indent)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0b4ede1 and cf615d1.

📒 Files selected for processing (107)
  • CONTRIBUTING.md (1 hunks)
  • README.md (2 hunks)
  • __templates__/create_driver.sh (1 hunks)
  • docs/source/api-reference/adapters.md (0 hunks)
  • docs/source/api-reference/adapters/index.md (0 hunks)
  • docs/source/api-reference/adapters/network.md (0 hunks)
  • docs/source/api-reference/drivers.md (0 hunks)
  • docs/source/api-reference/drivers/can.md (0 hunks)
  • docs/source/api-reference/drivers/corellium.md (0 hunks)
  • docs/source/api-reference/drivers/dbus.md (0 hunks)
  • docs/source/api-reference/drivers/dutlink.md (0 hunks)
  • docs/source/api-reference/drivers/flashers.md (0 hunks)
  • docs/source/api-reference/drivers/http.md (0 hunks)
  • docs/source/api-reference/drivers/network.md (0 hunks)
  • docs/source/api-reference/drivers/opendal.md (0 hunks)
  • docs/source/api-reference/drivers/power.md (0 hunks)
  • docs/source/api-reference/drivers/probe-rs.md (0 hunks)
  • docs/source/api-reference/drivers/proxy.md (0 hunks)
  • docs/source/api-reference/drivers/pyserial.md (0 hunks)
  • docs/source/api-reference/drivers/qemu.md (0 hunks)
  • docs/source/api-reference/drivers/raspberrypi.md (0 hunks)
  • docs/source/api-reference/drivers/sdwire.md (0 hunks)
  • docs/source/api-reference/drivers/shell.md (0 hunks)
  • docs/source/api-reference/drivers/snmp.md (0 hunks)
  • docs/source/api-reference/drivers/tftp.md (0 hunks)
  • docs/source/api-reference/drivers/uboot.md (0 hunks)
  • docs/source/api-reference/drivers/ustreamer.md (0 hunks)
  • docs/source/api-reference/drivers/yepkit.md (0 hunks)
  • docs/source/api-reference/index.md (0 hunks)
  • docs/source/architecture.md (0 hunks)
  • docs/source/cli/clients.md (0 hunks)
  • docs/source/cli/exporters.md (0 hunks)
  • docs/source/cli/index.md (0 hunks)
  • docs/source/cli/reference/index.md (0 hunks)
  • docs/source/cli/reference/jmp-admin.md (0 hunks)
  • docs/source/cli/run-tests.md (0 hunks)
  • docs/source/conf.py (1 hunks)
  • docs/source/config/cli.md (0 hunks)
  • docs/source/config/index.md (0 hunks)
  • docs/source/config/oidc.md (0 hunks)
  • docs/source/getting-started/configuration/authentication.md (1 hunks)
  • docs/source/getting-started/configuration/files.md (1 hunks)
  • docs/source/getting-started/configuration/index.md (1 hunks)
  • docs/source/getting-started/configuration/loading-order.md (1 hunks)
  • docs/source/getting-started/index.md (1 hunks)
  • docs/source/getting-started/installation/index.md (1 hunks)
  • docs/source/getting-started/installation/packages.md (1 hunks)
  • docs/source/getting-started/installation/service.md (1 hunks)
  • docs/source/getting-started/setup-exporter-client.md (0 hunks)
  • docs/source/getting-started/setup-local-exporter.md (0 hunks)
  • docs/source/getting-started/usage/examples.md (1 hunks)
  • docs/source/getting-started/usage/index.md (1 hunks)
  • docs/source/getting-started/usage/integration-patterns.md (10 hunks)
  • docs/source/getting-started/usage/setup-distributed-mode.md (1 hunks)
  • docs/source/getting-started/usage/setup-local-mode.md (1 hunks)
  • docs/source/glossary.md (4 hunks)
  • docs/source/index.md (1 hunks)
  • docs/source/installation/index.md (0 hunks)
  • docs/source/installation/python-package.md (0 hunks)
  • docs/source/installation/service/index.md (0 hunks)
  • docs/source/installation/service/kind-helm.md (0 hunks)
  • docs/source/installation/service/kubernetes-helm.md (0 hunks)
  • docs/source/installation/service/minikube-helm.md (0 hunks)
  • docs/source/installation/service/openshift-argocd.md (0 hunks)
  • docs/source/installation/service/openshift-helm.md (0 hunks)
  • docs/source/introduction/adapters.md (1 hunks)
  • docs/source/introduction/clients.md (2 hunks)
  • docs/source/introduction/drivers.md (6 hunks)
  • docs/source/introduction/exporters.md (2 hunks)
  • docs/source/introduction/index.md (1 hunks)
  • docs/source/introduction/service.md (3 hunks)
  • docs/source/reference/index.md (1 hunks)
  • docs/source/reference/man-pages/index.md (1 hunks)
  • docs/source/reference/man-pages/j.md (1 hunks)
  • docs/source/reference/man-pages/jmp.md (1 hunks)
  • docs/source/reference/package-apis/drivers/can.md (1 hunks)
  • docs/source/reference/package-apis/drivers/corellium.md (1 hunks)
  • docs/source/reference/package-apis/drivers/dutlink.md (1 hunks)
  • docs/source/reference/package-apis/drivers/flashers.md (1 hunks)
  • docs/source/reference/package-apis/drivers/http.md (1 hunks)
  • docs/source/reference/package-apis/drivers/index.md (1 hunks)
  • docs/source/reference/package-apis/drivers/network.md (1 hunks)
  • docs/source/reference/package-apis/drivers/opendal.md (1 hunks)
  • docs/source/reference/package-apis/drivers/power.md (1 hunks)
  • docs/source/reference/package-apis/drivers/probe-rs.md (1 hunks)
  • docs/source/reference/package-apis/drivers/pyserial.md (1 hunks)
  • docs/source/reference/package-apis/drivers/qemu.md (1 hunks)
  • docs/source/reference/package-apis/drivers/raspberrypi.md (1 hunks)
  • docs/source/reference/package-apis/drivers/sdwire.md (1 hunks)
  • docs/source/reference/package-apis/drivers/shell.md (1 hunks)
  • docs/source/reference/package-apis/drivers/snmp.md (1 hunks)
  • docs/source/reference/package-apis/drivers/tftp.md (1 hunks)
  • docs/source/reference/package-apis/drivers/uboot.md (1 hunks)
  • docs/source/reference/package-apis/drivers/ustreamer.md (1 hunks)
  • docs/source/reference/package-apis/drivers/yepkit.md (1 hunks)
  • docs/source/reference/package-apis/index.md (1 hunks)
  • packages/jumpstarter-driver-can/README.md (1 hunks)
  • packages/jumpstarter-driver-corellium/README.md (1 hunks)
  • packages/jumpstarter-driver-dutlink/README.md (1 hunks)
  • packages/jumpstarter-driver-flashers/README.md (4 hunks)
  • packages/jumpstarter-driver-network/README.md (1 hunks)
  • packages/jumpstarter-driver-opendal/README.md (2 hunks)
  • packages/jumpstarter-driver-power/README.md (1 hunks)
  • packages/jumpstarter-driver-probe-rs/README.md (2 hunks)
  • packages/jumpstarter-driver-pyserial/README.md (1 hunks)
  • packages/jumpstarter-driver-qemu/README.md (1 hunks)
  • packages/jumpstarter-driver-raspberrypi/README.md (1 hunks)
⛔ Files not processed due to max files limit (7)
  • packages/jumpstarter-driver-sdwire/README.md
  • packages/jumpstarter-driver-shell/README.md
  • packages/jumpstarter-driver-snmp/README.md
  • packages/jumpstarter-driver-tftp/README.md
  • packages/jumpstarter-driver-uboot/README.md
  • packages/jumpstarter-driver-ustreamer/README.md
  • packages/jumpstarter-driver-yepkit/README.md
💤 Files with no reviewable changes (46)
  • docs/source/api-reference/drivers/sdwire.md
  • docs/source/api-reference/drivers/power.md
  • docs/source/api-reference/drivers/network.md
  • docs/source/api-reference/drivers/shell.md
  • docs/source/api-reference/drivers/opendal.md
  • docs/source/api-reference/drivers/http.md
  • docs/source/api-reference/drivers/raspberrypi.md
  • docs/source/cli/reference/jmp-admin.md
  • docs/source/api-reference/drivers/snmp.md
  • docs/source/api-reference/drivers/probe-rs.md
  • docs/source/installation/service/kubernetes-helm.md
  • docs/source/api-reference/drivers/qemu.md
  • docs/source/api-reference/drivers/yepkit.md
  • docs/source/cli/reference/index.md
  • docs/source/api-reference/adapters/index.md
  • docs/source/api-reference/drivers/ustreamer.md
  • docs/source/api-reference/drivers/dutlink.md
  • docs/source/api-reference/drivers/can.md
  • docs/source/installation/service/openshift-helm.md
  • docs/source/api-reference/drivers/pyserial.md
  • docs/source/installation/index.md
  • docs/source/config/index.md
  • docs/source/api-reference/drivers/uboot.md
  • docs/source/api-reference/drivers/corellium.md
  • docs/source/installation/service/index.md
  • docs/source/cli/exporters.md
  • docs/source/cli/run-tests.md
  • docs/source/api-reference/drivers/flashers.md
  • docs/source/api-reference/drivers/proxy.md
  • docs/source/architecture.md
  • docs/source/installation/python-package.md
  • docs/source/api-reference/drivers/dbus.md
  • docs/source/cli/index.md
  • docs/source/installation/service/minikube-helm.md
  • docs/source/cli/clients.md
  • docs/source/installation/service/openshift-argocd.md
  • docs/source/api-reference/index.md
  • docs/source/api-reference/adapters/network.md
  • docs/source/getting-started/setup-local-exporter.md
  • docs/source/getting-started/setup-exporter-client.md
  • docs/source/api-reference/drivers/tftp.md
  • docs/source/api-reference/adapters.md
  • docs/source/config/cli.md
  • docs/source/installation/service/kind-helm.md
  • docs/source/api-reference/drivers.md
  • docs/source/config/oidc.md
🧰 Additional context used
🧠 Learnings (1)
docs/source/reference/package-apis/drivers/tftp.md (2)
Learnt from: bennyz
PR: jumpstarter-dev/jumpstarter#241
File: packages/jumpstarter-driver-tftp/jumpstarter_driver_tftp/client.py:52-60
Timestamp: 2025-01-29T11:52:43.554Z
Learning: The TFTP driver (packages/jumpstarter-driver-tftp/jumpstarter_driver_tftp/driver.py) handles all low-level concerns like path validation, error handling, and checksum computation. The client (packages/jumpstarter-driver-tftp/jumpstarter_driver_tftp/client.py) should remain simple as it delegates these responsibilities to the driver.
Learnt from: bennyz
PR: jumpstarter-dev/jumpstarter#267
File: packages/jumpstarter-driver-tftp/jumpstarter_driver_tftp/driver.py:32-40
Timestamp: 2025-02-08T16:08:34.616Z
Learning: In the TFTP driver (jumpstarter_driver_tftp), the TFTP server component is read-only, while file management operations (upload, delete) are handled through the driver's client interface, not through the TFTP protocol itself.
🪛 LanguageTool
packages/jumpstarter-driver-qemu/README.md

[uncategorized] ~3-~3: You might be missing the article “the” here.
Context: ...ides functionality for interacting with QEMU virtualization platform. ## Installati...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

docs/source/getting-started/configuration/index.md

[typographical] ~12-~12: Consider adding a comma here.
Context: ...uration options including an explanation please refer to the [MAN pages](../../referenc...

(PLEASE_COMMA)

docs/source/reference/man-pages/index.md

[uncategorized] ~6-~6: Loose punctuation mark.
Context: ...documentation covers: - jmp: Main command-line interface for Jumpsta...

(UNLIKELY_OPENING_PUNCTUATION)

docs/source/introduction/exporters.md

[uncategorized] ~66-~66: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...ave Python {{requires_python}} installed and the driver packages specified in the co...

(COMMA_COMPOUND_SENTENCE_2)


[uncategorized] ~77-~77: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...apabilities in case something goes wrong and it needs to be restarted.

(COMMA_COMPOUND_SENTENCE)

docs/source/index.md

[uncategorized] ~25-~25: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... Meeting ``` Jumpstarter is a free and open source testing tool that bridges the gap betwe...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

docs/source/reference/man-pages/j.md

[style] ~4-~4: This phrase is redundant (‘I’ stands for ‘interfaces’). Use simply “CLIs”.
Context: ...p shell). It provides access to driver CLI interfaces configured in your exporter. Usage: ...

(ACRONYM_TAUTOLOGY)


[uncategorized] ~17-~17: Possible missing preposition found.
Context: ...o see all available driver interfaces - Access specific drivers with `j <driver_type> ...

(AI_HYDRA_LEO_MISSING_TO)

docs/source/getting-started/installation/packages.md

[uncategorized] ~7-~7: Loose punctuation mark.
Context: ...llable Python packages: - jumpstarter: Core package for exporter interaction a...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~93-~93: Possible missing comma found.
Context: ... jmp' If you've configured a `jmp` alias you can undefine it with: shell $ u...

(AI_HYDRA_LEO_MISSING_COMMA)

docs/source/getting-started/usage/examples.md

[style] ~25-~25: This phrase is redundant (‘I’ stands for ‘interfaces’). Use simply “CLIs”.
Context: ...xporter shell provides access to driver CLI interfaces through the magic j command: ```shel...

(ACRONYM_TAUTOLOGY)


[style] ~48-~48: This phrase is redundant (‘I’ stands for ‘interfaces’). Use simply “CLIs”.
Context: ...he exporter shell, you're accessing the CLI interfaces exposed by the drivers configured in yo...

(ACRONYM_TAUTOLOGY)


[style] ~139-~139: Try using a synonym here to strengthen your writing.
Context: ...method receives the client parameter, giving access to all driver interfaces just...

(GIVE_PROVIDE)


[uncategorized] ~141-~141: A determiner appears to be missing. Consider inserting it.
Context: ...es just like in the previous examples. Benefits of using pytest with Jumpstarter are:...

(AI_EN_LECTOR_MISSING_DETERMINER)


[style] ~145-~145: ‘with success’ might be wordy. Consider a shorter alternative.
Context: ... and methods - Generate test reports with success/failure statuses - Use pytest's ex...

(EN_WORDINESS_PREMIUM_WITH_SUCCESS)

docs/source/getting-started/configuration/authentication.md

[uncategorized] ~75-~75: You might be missing the article “a” here.
Context: ...--token ``` For exporters, use similar login command but with the --exporter...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


[uncategorized] ~186-~186: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... appropriate OIDC usernames. Prefix the full service account name with "dex:" as configured ...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[formatting] ~187-~187: These punctuation marks differ from each other. Use only one if you are ending a sentence.
Context: ...ex:" as configured in the claim mappings.: ```shell $ jmp admin create exporter t...

(DOUBLE_PUNCTUATION_PREMIUM)

docs/source/glossary.md

[uncategorized] ~24-~24: Loose punctuation mark.
Context: ...ble exporters and clients. * router: A service used by the controller to rou...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~28-~28: Loose punctuation mark.
Context: ...cess to exported interfaces. * host: A system running the exporter service, ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~34-~34: Loose punctuation mark.
Context: ... to hardware. ## Concepts * device: A device that is exposed on an exporter...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~43-~43: Loose punctuation mark.
Context: ..., etc.) * CAN bus interface * lease: A time-limited reservation of an export...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~47-~47: Loose punctuation mark.
Context: ...specific devices/exporters. * adapter: A component that transforms connections...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~61-~61: Loose punctuation mark.
Context: ...ely by clients. * driver client class: The driver client class that is used di...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~66-~66: Loose punctuation mark.
Context: ...th the exporter resources. * driver: The term for both the driver class an...

(UNLIKELY_OPENING_PUNCTUATION)


[typographical] ~68-~68: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...n the main jumpstarter repository are called in-tree drivers, otherwise they are called out-of-tree drivers. ...

(THUS_SENTENCE)


[typographical] ~70-~70: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...enting predefined interfaces are called standard drivers, otherwise they are called custom drivers. * ...

(THUS_SENTENCE)


[uncategorized] ~73-~73: Loose punctuation mark.
Context: ... custom drivers. * composite driver: A driver that combines multiple lower-l...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~77-~77: Loose punctuation mark.
Context: ...x device configurations. * local mode: An operation mode where clients communi...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~82-~82: Loose punctuation mark.
Context: ... virtual devices. * distributed mode: An operation mode that enables multiple...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~83-~83: Possible missing comma found.
Context: ...ely share hardware resources across a network using a Kubernetes-based controller t...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~86-~86: Loose punctuation mark.
Context: ...exporters and manage leases. * stream: A continuous data exchange channel esta...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~90-~90: Loose punctuation mark.
Context: ...erfaces across the network. * message: Commands sent from driver clients to dr...

(UNLIKELY_OPENING_PUNCTUATION)

docs/source/getting-started/usage/integration-patterns.md

[grammar] ~342-~342: This phrase is duplicated. You should probably use “the controller” only once.
Context: ...equest access to remote devices through the controller - The controller manages leases and routes connections t...

(PHRASE_REPETITION)

docs/source/introduction/adapters.md

[uncategorized] ~14-~14: A period might be missing here.
Context: ...in a way that's tailored for specific scenarios The architecture consists of these key...

(AI_EN_LECTOR_MISSING_PUNCTUATION_PERIOD)

docs/source/introduction/drivers.md

[uncategorized] ~57-~57: The preposition “in” seems more likely in this position.
Context: ...use cases. ## Types The API reference of the documentation provides a complete l...

(AI_EN_LECTOR_REPLACEMENT_PREPOSITION)


[misspelling] ~78-~78: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...tions, such as shell driver commands on a exporter. ### Composite Drivers Compo...

(EN_A_VS_AN)

docs/source/introduction/index.md

[uncategorized] ~3-~3: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: # Introduction Jumpstarter is an open source framework that brings enterprise-grade ...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

docs/source/getting-started/installation/service.md

[uncategorized] ~201-~201: Possible missing preposition found.
Context: ...te a kind cluster First, create a kind cluster config that enables nodeports to host t...

(AI_EN_LECTOR_MISSING_PREPOSITION)

🪛 markdownlint-cli2 (0.17.2)
packages/jumpstarter-driver-flashers/README.md

269-269: Trailing punctuation in heading
Punctuation: ':'

(MD026, no-trailing-punctuation)


292-292: Multiple headings with the same content
null

(MD024, no-duplicate-heading)

docs/source/getting-started/usage/setup-local-mode.md

51-51: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


59-59: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

docs/source/introduction/index.md

93-93: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


94-94: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


168-168: Unordered list indentation
Expected: 2; Actual: 3

(MD007, ul-indent)


169-169: Unordered list indentation
Expected: 2; Actual: 3

(MD007, ul-indent)


170-170: Unordered list indentation
Expected: 2; Actual: 3

(MD007, ul-indent)


180-180: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


181-181: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


182-182: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

docs/source/getting-started/installation/service.md

52-52: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


53-53: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


144-144: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


155-155: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


238-238: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


250-250: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

⏰ Context from checks skipped due to timeout of 90000ms (4)
  • GitHub Check: e2e
  • GitHub Check: pytest-matrix (3.11)
  • GitHub Check: pytest-matrix (3.13)
  • GitHub Check: pytest-matrix (3.12)
🔇 Additional comments (120)
docs/source/conf.py (1)

43-46: Align comment indentation for consistency
The secondary comment in the suppress_warnings list is now properly aligned under the "ref.class" entry, enhancing readability without affecting functionality.

docs/source/reference/package-apis/drivers/dutlink.md (1)

1-1: 🛠️ Refactor suggestion

Ensure the README link renders as a hyperlink
As written, the raw path will render as plain text rather than a clickable link. Use proper Markdown link syntax or a Sphinx include directive so readers can follow the reference.

Proposed change:

- ../../../../../packages/jumpstarter-driver-dutlink/README.md
+ [jumpstarter-driver-dutlink README](../../../../../packages/jumpstarter-driver-dutlink/README.md)

Likely an incorrect or invalid review comment.

docs/source/reference/package-apis/drivers/snmp.md (1)

1-1: 🛠️ Refactor suggestion

Render the README path as a hyperlink
The relative path alone won’t link out. Convert it into a Markdown link or use a Sphinx include so users can click through.

Proposed change:

- ../../../../../packages/jumpstarter-driver-snmp/README.md
+ [jumpstarter-driver-snmp README](../../../../../packages/jumpstarter-driver-snmp/README.md)

Likely an incorrect or invalid review comment.

docs/source/reference/package-apis/drivers/tftp.md (1)

1-1: 🛠️ Refactor suggestion

Convert the plain path into a clickable link
A raw filesystem path won’t hyperlink. Use Markdown link syntax or a Sphinx include directive so readers can navigate to the package README.

Proposed change:

- ../../../../../packages/jumpstarter-driver-tftp/README.md
+ [jumpstarter-driver-tftp README](../../../../../packages/jumpstarter-driver-tftp/README.md)
⛔ Skipped due to learnings
Learnt from: bennyz
PR: jumpstarter-dev/jumpstarter#241
File: packages/jumpstarter-driver-tftp/jumpstarter_driver_tftp/client.py:52-60
Timestamp: 2025-01-29T11:52:43.554Z
Learning: The TFTP driver (packages/jumpstarter-driver-tftp/jumpstarter_driver_tftp/driver.py) handles all low-level concerns like path validation, error handling, and checksum computation. The client (packages/jumpstarter-driver-tftp/jumpstarter_driver_tftp/client.py) should remain simple as it delegates these responsibilities to the driver.
Learnt from: bennyz
PR: jumpstarter-dev/jumpstarter#267
File: packages/jumpstarter-driver-tftp/jumpstarter_driver_tftp/driver.py:32-40
Timestamp: 2025-02-08T16:08:34.616Z
Learning: In the TFTP driver (jumpstarter_driver_tftp), the TFTP server component is read-only, while file management operations (upload, delete) are handled through the driver's client interface, not through the TFTP protocol itself.
Learnt from: bennyz
PR: jumpstarter-dev/jumpstarter#241
File: packages/jumpstarter-driver-tftp/jumpstarter_driver_tftp/client.py:52-60
Timestamp: 2025-01-29T11:52:50.888Z
Learning: The TFTP driver (driver.py) already handles error cases and file path security, so the client (client.py) doesn't need to duplicate these safeguards.
packages/jumpstarter-driver-dutlink/README.md (1)

3-4: Approve formatting change
This split is purely cosmetic and improves readability in narrow terminals without altering the meaning.

docs/source/reference/man-pages/jmp.md (1)

1-5: Verify man‐page title after cleanup
You removed the original title—ensure the Sphinx man-page builder still assigns the correct command name. If it doesn’t, reintroduce an RST title above the .. click:: directive or update the toctree accordingly.

docs/source/reference/package-apis/drivers/ustreamer.md (3)

3-5: Verify description consistency.

The description is succinct and accurate. No changes needed here unless you want to add cross-references or badges.


30-36: API reference directive looks good.

The autoclass block correctly targets jumpstarter_driver_ustreamer.client.UStreamerClient and includes all members.


17-19:

Details

✅ Verification successful

Ensure the example YAML file was relocated.

The literalinclude directive references ustreamer.yaml. Please verify that this file exists under docs/source/reference/package-apis/drivers/.


🏁 Script executed:

#!/bin/bash
# Check if the YAML snippet exists in the new docs directory
fd ustreamer.yaml docs/source/reference/package-apis/drivers

Length of output: 120


Verified: ustreamer.yaml is correctly located
The literalinclude directive in docs/source/reference/package-apis/drivers/ustreamer.md now references docs/source/reference/package-apis/drivers/ustreamer.yaml, which exists. No further changes required.

docs/source/reference/package-apis/drivers/uboot.md (1)

3-33: Overall content alignment and formatting look solid.

The installation, configuration, doctest example, and API reference directives correctly reflect the U-Boot driver.

__templates__/create_driver.sh (1)

31-31: DOCS_DIRECTORY path updated correctly.

The new docs/source/reference/package-apis/drivers location aligns with the restructured documentation layout.

docs/source/reference/package-apis/drivers/can.md (4)

1-1: Verify relative path to package README
The file starts with a 5-level relative path to the driver’s README. Please build or link-check to ensure ../../../../../packages/jumpstarter-driver-can/README.md resolves correctly in the published docs.


3-4: Documentation clarity is good
The descriptive sentence clearly explains the driver’s purpose. No changes needed here.


8-10: Installation instructions are correct
The pip install jumpstarter-driver-can snippet is accurate and follows project conventions.


16-22: Verify configuration type path
The example uses type: jumpstarter_driver_can.Can. Confirm that this matches the actual entry point (e.g., module path jumpstarter_driver_can.driver.Can vs. client.CanClient).

docs/source/reference/package-apis/drivers/shell.md (4)

1-1: Verify relative path to package README
Ensure that ../../../../../packages/jumpstarter-driver-shell/README.md correctly points to the shell driver README once the site is built.


3-4: Description reads well
The one-line summary of the shell driver is concise and clear.


8-10: Installation snippet is accurate
pip install jumpstarter-driver-shell aligns with package naming conventions.


16-34: Configuration example is comprehensive
The YAML example covers required and optional parameters, including multi-line methods. It’s well formatted and informative.

packages/jumpstarter-driver-raspberrypi/README.md (1)

3-4: Formatting split improves readability
Splitting the long sentence into two lines makes the intro easier to scan without altering meaning.

docs/source/reference/package-apis/drivers/opendal.md (6)

1-1: Verify relative path to package README
Confirm that ../../../../../packages/jumpstarter-driver-opendal/README.md resolves correctly in the built documentation.


3-4: Description is clear and concise
The summary of the Opendal driver’s purpose is well stated.


8-10: Installation snippet is correct
pip install jumpstarter-driver-opendal matches the package name.


16-18: Check literalinclude source path
The directive uses opendal.yaml without a path. Ensure that opendal.yaml exists next to this MD file or adjust the relative path.


24-31: Doctest examples look solid
The usage examples and assertions provide good coverage of core functionality.


32-45: Test setup/cleanup sections are well organized
The testsetup and testcleanup blocks correctly manage the driver instance lifecycle.

packages/jumpstarter-driver-network/README.md (1)

3-4: Formatting split improves readability
Breaking the sentence about network drivers into two lines enhances readability in terminal views.

packages/jumpstarter-driver-probe-rs/README.md (2)

3-4: Formatting improvement enhances readability
Breaking the introductory sentence into two lines improves readability in narrow views without altering meaning.


47-48: Formatting improvement enhances readability
Splitting the CLI description across two lines improves flow in terminal previews.

docs/source/reference/package-apis/drivers/pyserial.md (1)

1-1: Verify the relative link path
The relative path ../../../../../packages/jumpstarter-driver-pyserial/README.md may be brittle. Please ensure this correctly resolves in the generated documentation build and consider using a Sphinx cross-reference or a shorter alias if possible.

packages/jumpstarter-driver-pyserial/README.md (1)

3-4: Formatting improvement enhances readability
Splitting the package description into two lines aligns with other driver READMEs and improves readability in narrow terminal windows.

packages/jumpstarter-driver-opendal/README.md (2)

3-4: Improve description readability
Splitting the long sentence into two lines makes the package description more readable in terminal views without altering meaning.


37-38: Update driver-config path
The from_path call now points to source/reference/package-apis/drivers/opendal.yaml to match the new documentation layout. Please verify that this file exists at the new location and that the literalinclude in Sphinx picks it up correctly.

docs/source/reference/man-pages/index.md (1)

1-17: Approve new CLI man-pages index
The page cleanly introduces the jmp and j tools and leverages a hidden toctree for concise navigation. No issues detected.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~6-~6: Loose punctuation mark.
Context: ...documentation covers: - jmp: Main command-line interface for Jumpsta...

(UNLIKELY_OPENING_PUNCTUATION)

docs/source/getting-started/usage/index.md (1)

1-23: Approve "Usage" section structure
The new index clearly organizes local vs. distributed setup, examples, and integration patterns using a hidden toctree. Ready to merge.

docs/source/introduction/service.md (2)

7-9: Approve service installation overview
The updated text succinctly describes installation in any Kubernetes cluster, improving clarity.


19-21: Approve Controller responsibilities
This wording clearly outlines the Controller’s roles (access control, authentication, labeling) in line with the CRD-based design.

packages/jumpstarter-driver-flashers/README.md (1)

43-51: Approve child drivers table
Adding this table makes it much clearer which drivers are auto-created versus manually defined—great improvement.

README.md (2)

11-11: Unified Testing highlight looks good
The updated emoji and description clearly convey the feature.


13-13: Hardware Abstraction highlight looks good
The concise phrasing aligns with the streamlined Highlights section.

docs/source/getting-started/installation/index.md (1)

1-14: Installation index structured correctly
The new Installation landing page with a toctree linking to packages.md and service.md provides clear navigation. The headings, descriptions, and hidden table of contents are well organized.

docs/source/getting-started/configuration/index.md (1)

1-21: Configuration index adds clear structure
The overview and toctree linking to files, loading order, and authentication guides are well organized and align with the new documentation flow.

🧰 Tools
🪛 LanguageTool

[typographical] ~12-~12: Consider adding a comma here.
Context: ...uration options including an explanation please refer to the [MAN pages](../../referenc...

(PLEASE_COMMA)

docs/source/reference/index.md (1)

1-19: Reference overview organized effectively
The new Reference section and toctree for CLI man pages and package APIs provide a concise entry point for developers.

docs/source/reference/package-apis/index.md (1)

1-15: Package APIs index is clear and concise
Linking to drivers/index.md under the toctree correctly organizes the package API references for extension and integration.

docs/source/reference/package-apis/drivers/index.md (7)

3-6: Improve readability with line breaks
The introduction text is now wrapped across multiple lines for enhanced terminal readability.


18-23: Consistent bullet formatting for System Control Drivers
The list items are split to separate link and description lines, improving clarity. Indentation and list-marker consistency look good.


29-38: Review Communication Drivers list formatting
Line-wrapped bullets improve readability. Ensure all sub-lines use the same indent (two spaces) to maintain alignment.


45-48: Storage and Data Drivers formatting
These entries are consistently wrapped with accurate descriptions.


54-55: Media Drivers list readability
Good use of line wrapping for the UStreamer description.


61-69: Debug and Programming Drivers section flow
Multi-line bullet descriptions are clear and consistent across entries.


75-76: Utility Drivers entry consistency
The “Shell” driver entry follows the same style as other sections.

docs/source/introduction/clients.md (2)

25-27: List formatting whitespace
Inserting a blank line before the parameter list cleanly separates the note from the list.


29-32: Note block formatting consistency
The {note} admonition is properly formatted. Ensure all admonitions across docs use the same style and indentation.

docs/source/index.md (1)

41-42: Navigation prompt clarity
The prompt effectively directs users to the navigation menu. No changes needed here.

docs/source/getting-started/index.md (2)

6-11: Bullet list formatting
Line-wrapped bullets enhance readability. Ensure colon placement ():) is uniform after each link and sub-lines are indented by two spaces.


19-21:

Details

✅ Verification successful

Toctree entry alignment
These toctree entries correctly reference the new guide indexes. Verify these files exist and their titles match:


🏁 Script executed:

# Ensure guide index files are present
fd "index.md" docs/source/getting-started/installation
fd "index.md" docs/source/getting-started/configuration
fd "index.md" docs/source/getting-started/usage

Length of output: 302


🏁 Script executed:

#!/bin/bash
# Verify that each guide index has the correct title heading
for dir in installation configuration usage; do
  file="docs/source/getting-started/$dir/index.md"
  echo "$dir -> $(grep -m1 '^# ' "$file")"
done

Length of output: 689


Toctree entries verified and titles match
All referenced guide indexes exist with correct top-level headings:

  • docs/source/getting-started/installation/index.md → “# Installation”
  • docs/source/getting-started/configuration/index.md → “# Configuration”
  • docs/source/getting-started/usage/index.md → “# Usage”

No further action required.

docs/source/introduction/exporters.md (5)

10-12: Approve revised host description for clarity.
Changing “Raspberry Pi or Mini PC” to “single board computer” generalizes the guidance appropriately without losing context.


17-17: Heading update is clear and descriptive.
Renaming “Configuration” to “Exporter Configuration” improves section discoverability.


22-23: Example config file path is accurate.
The updated path /etc/jumpstarter/exporters/demo.yaml correctly reflects the canonical location.


56-56: Verify the ‘reference’ block usage.
Please confirm that the reference: key with the nested ref field is supported by the exporter schema and accurately demonstrates referencing another export definition.


69-69: Approve added local run instruction.
Explicitly showing how to invoke jmp run --exporter in the terminal enhances usability for new users.

docs/source/getting-started/installation/packages.md (7)

15-27: Installing release packages instructions look good.
The extra index URL and global vs. virtual-env recommendations are clear and correct.


29-36: Virtual environment setup is accurate.
Using a .venv directory and activating before installation is standard practice.


38-54: Verify prerequisite tooling list.
The command installs uv, make, and git. Please confirm that uv is intended (e.g., unzip or another utility) and that no other build tools (like python3, pip) should be included.


56-61: Approve activation of development environment.
The steps to source .venv and confirm the CLI version are straightforward.


63-76: Container alias instructions are clear.
The podman run alias shows the working directory and volumes correctly, making CLI usage seamless.


78-91: Privileged container example is correct.
Host networking, device mounts, and privileged mode flags are well-documented for hardware access scenarios.


93-97: Alias removal instructions are correct.
Including unalias jmp ensures users can revert to native CLI usage.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~93-~93: Possible missing comma found.
Context: ... jmp' If you've configured a `jmp` alias you can undefine it with: shell $ u...

(AI_HYDRA_LEO_MISSING_COMMA)

docs/source/getting-started/usage/setup-local-mode.md (8)

1-5: Approve title and introduction.
The page clearly states its purpose and scope, guiding users on local-mode setup.


8-9: Prerequisites link is correct.
The relative path to the packages guide points to the intended document.


11-13: List of mock driver packages is accurate.
Including jumpstarter-cli, jumpstarter-driver-opendal, and jumpstarter-driver-power covers the needed mock implementations.


15-17: Confirm mock driver note.
Stating that these drivers include mock implementations is helpful for testing without hardware.


22-42: YAML example is well-formed.
The example-local.yaml snippet correctly illustrates endpoint/token defaults and mock driver configuration.


46-52: Shell invocation snippet is clear.
Showing jmp shell --exporter example-local provides a straightforward demonstration.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

51-51: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


56-60: Exit instruction is correct.
Using exit to terminate the exporter shell is intuitive and easy to follow.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

59-59: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


62-66: Next steps reference is appropriate.
Linking to examples.md offers users additional guidance once their shell is active.

docs/source/getting-started/configuration/loading-order.md (6)

1-5: Approve title and overview.
The introduction clearly explains the hierarchical loading concept.


6-16: Configuration sources list is accurate.
The precedence order (CLI, environment variables, user, system) aligns with typical application patterns.


17-28: Client configuration hierarchy is clear.
Listing each priority level with paths and flags provides users with practical guidance.


29-37: Exporter configuration hierarchy is correct.
The fewer override layers for exporters reflect the expected operational model.


38-63: Example walkthrough is comprehensive.
The YAML and shell examples together illustrate how overrides function in practice.


64-72: Use-case recommendations are helpful.
Summarizing best practices for development, CI/CD, and system defaults aids decision-making.

docs/source/getting-started/usage/setup-distributed-mode.md (10)

1-5: Approve title and introduction.
This section clearly presents the distributed-mode setup workflow.


8-16: Prerequisites instructions are correct.
Linking to the package installation guide and listing mock driver dependencies provides the necessary setup context.


18-21: Service prerequisite link is valid.
Referring to service.md and Kubernetes setup ensures users meet controller requirements.


26-35: Exporter creation CLI snippet is accurate.
jmp admin create exporter example-distributed --save correctly illustrates how to bootstrap a remote exporter.


36-42: Config edit command is clear.
Using jmp config exporter edit demonstrates the recommended way to update the generated YAML.


44-60: YAML configuration example is correct.
The snippet shows the automatic filling of endpoint/token and mock driver setup clearly.


62-68: Exporter run command is straightforward.
jmp run --exporter example-distributed correctly demonstrates the invocation.


85-93: Client shell invocation is clear.
The jmp shell --client hello --selector example effectively demonstrates how to acquire a lease.


95-101: Exit instruction matches earlier patterns.
Using exit to terminate the session is consistent and easy to follow.


103-107: Next steps reference is helpful.
Linking to the examples page encourages users to explore further workflows.

docs/source/glossary.md (7)

47-51: The adapter definition is clear and concise. No changes needed.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~47-~47: Loose punctuation mark.
Context: ...specific devices/exporters. * adapter: A component that transforms connections...

(UNLIKELY_OPENING_PUNCTUATION)


61-65: The driver client class description is well-defined. No adjustments required.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~61-~61: Loose punctuation mark.
Context: ...ely by clients. * driver client class: The driver client class that is used di...

(UNLIKELY_OPENING_PUNCTUATION)


73-76: The composite driver description is clear. No suggestions.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~73-~73: Loose punctuation mark.
Context: ... custom drivers. * composite driver: A driver that combines multiple lower-l...

(UNLIKELY_OPENING_PUNCTUATION)


77-80: The local mode entry is concise and accurate.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~77-~77: Loose punctuation mark.
Context: ...x device configurations. * local mode: An operation mode where clients communi...

(UNLIKELY_OPENING_PUNCTUATION)


82-85: The distributed mode entry is clear and aligns with the rest of the glossary.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~82-~82: Loose punctuation mark.
Context: ... virtual devices. * distributed mode: An operation mode that enables multiple...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~83-~83: Possible missing comma found.
Context: ...ely share hardware resources across a network using a Kubernetes-based controller t...

(AI_HYDRA_LEO_MISSING_COMMA)


86-89: The stream concept is well explained. No revisions needed.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~86-~86: Loose punctuation mark.
Context: ...exporters and manage leases. * stream: A continuous data exchange channel esta...

(UNLIKELY_OPENING_PUNCTUATION)


90-92: The message definition is straightforward. No action needed.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~90-~90: Loose punctuation mark.
Context: ...erfaces across the network. * message: Commands sent from driver clients to dr...

(UNLIKELY_OPENING_PUNCTUATION)

docs/source/getting-started/usage/examples.md (8)

6-22: The instructions for starting and exiting sessions are straightforward and well formatted.


23-27: The introduction to the j CLI within the exporter shell is clear; no improvements needed.

🧰 Tools
🪛 LanguageTool

[style] ~25-~25: This phrase is redundant (‘I’ stands for ‘interfaces’). Use simply “CLIs”.
Context: ...xporter shell provides access to driver CLI interfaces through the magic j command: ```shel...

(ACRONYM_TAUTOLOGY)


48-53: The examples of invoking j power and j storage are clear and accurate.

🧰 Tools
🪛 LanguageTool

[style] ~48-~48: This phrase is redundant (‘I’ stands for ‘interfaces’). Use simply “CLIs”.
Context: ...he exporter shell, you're accessing the CLI interfaces exposed by the drivers configured in yo...

(ACRONYM_TAUTOLOGY)


55-67: The description of using the Python API in the shell is concise and informative.


86-99: The numbered explanation of the Python example is clear and well-structured.


100-107: The benefits list for using Python with Jumpstarter covers the key points effectively.


108-128: The pytest example and associated shell commands are correct and easy to follow.


130-147: The explanation of the JumpstarterTest fixture and its benefits is well articulated.

🧰 Tools
🪛 LanguageTool

[style] ~139-~139: Try using a synonym here to strengthen your writing.
Context: ...method receives the client parameter, giving access to all driver interfaces just...

(GIVE_PROVIDE)


[uncategorized] ~141-~141: A determiner appears to be missing. Consider inserting it.
Context: ...es just like in the previous examples. Benefits of using pytest with Jumpstarter are:...

(AI_EN_LECTOR_MISSING_DETERMINER)


[style] ~145-~145: ‘with success’ might be wordy. Consider a shorter alternative.
Context: ... and methods - Generate test reports with success/failure statuses - Use pytest's ex...

(EN_WORDINESS_PREMIUM_WITH_SUCCESS)

docs/source/getting-started/configuration/authentication.md (11)

1-12: The overview and initial OIDC setup steps are clear and well organized.


14-24: The Keycloak example section is accurate and follows a logical progression.


28-41: The YAML snippet for the AuthenticationConfiguration is properly formatted.


43-51: The instructions for client/exporter creation with jmp admin create are valid.


52-60: The login command examples cover interactive authentication scenarios effectively.


61-67: The non-interactive and token-based login instructions are clear.


75-83: The Dex setup steps, including certificate generation and Helm configuration, are correct.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~75-~75: You might be missing the article “a” here.
Context: ...--token ``` For exporters, use similar login command but with the --exporter...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


97-113: The Dex values.yaml and Kubernetes secret instructions are well detailed.


151-158: The OIDC discovery clusterrolebinding example is accurate.


161-168: The Dex AuthenticationConfiguration example in YAML appears correct.


190-217: The remaining command blocks and reference sections are well formatted.

docs/source/introduction/index.md (2)

26-31: Core Components section looks solid
The list under ## Core Components is clear, concise, and matches the overall architecture. No changes needed here.


192-200: Approve updated toctree entries
The updated toctree including clients.md and service.md aligns perfectly with the new documentation flow and enhances discoverability.

Comment thread README.md Outdated
Comment thread docs/source/getting-started/installation/packages.md
Comment thread docs/source/getting-started/usage/integration-patterns.md
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
docs/source/getting-started/usage/integration-patterns.md (1)

342-342: Avoid duplicated reference to “the controller”
The back-to-back bullets both mention “the controller,” which is repetitive. Consider merging them or dropping the extra subject, for example:

-   - The same test code can request access to remote devices through the controller
-   - The controller manages leases and routes connections through the standard infrastructure
+   - The same test code can request access to remote devices through the controller, which manages leases and routes connections through the standard infrastructure
🧰 Tools
🪛 LanguageTool

[grammar] ~342-~342: This phrase is duplicated. You should probably use “the controller” only once.
Context: ...equest access to remote devices through the controller - The controller manages leases and routes connections t...

(PHRASE_REPETITION)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cf615d1 and 4494c5d.

📒 Files selected for processing (2)
  • README.md (2 hunks)
  • docs/source/getting-started/usage/integration-patterns.md (10 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • README.md
🧰 Additional context used
🪛 LanguageTool
docs/source/getting-started/usage/integration-patterns.md

[grammar] ~342-~342: This phrase is duplicated. You should probably use “the controller” only once.
Context: ...equest access to remote devices through the controller - The controller manages leases and routes connections t...

(PHRASE_REPETITION)

⏰ Context from checks skipped due to timeout of 90000ms (4)
  • GitHub Check: pytest-matrix (3.11)
  • GitHub Check: pytest-matrix (3.12)
  • GitHub Check: e2e
  • GitHub Check: pytest-matrix (3.13)
🔇 Additional comments (7)
docs/source/getting-started/usage/integration-patterns.md (7)

1-1: Title updated for clarity
Renaming the heading to “Integration Patterns” accurately reflects the content focus. Make sure any table of contents or navigation links referencing the old title are updated accordingly.


3-4: Introductory text improved
The revised introduction clearly scopes the document to integration patterns. This reads well and sets expectations appropriately.


6-7: Context statement clarified
Good enhancement—explicitly calling out the hardware development lifecycle helps readers understand the breadth of supported tools.


9-10: Integration categories streamlined
Renaming “Infrastructure Tools” to “Infrastructure” and “Development Workflows” to “Developer Environments” makes the list more concise. The examples under each category look comprehensive.


113-113: Approve updates to Self-Hosted CI Runner diagram arrows
The flow now correctly shows Runner1 executing tests in local mode and Actions updating the Git repository status, mirroring the CI pattern above.

Also applies to: 116-116


129-133: List introduction formatted for readability
Inserting a standalone line for “This approach works best when:” and spacing before the bullet list improves readability in plain-text renderers.


183-184: Cost management intro refined
The added sentence gives clear context before the mermaid diagram. This helps set up the chargeback model.

@raballew raballew enabled auto-merge April 25, 2025 06:27
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ Duplicate comments (1)
docs/source/getting-started/installation/packages.md (1)

7-14: 🛠️ Refactor suggestion

Include jumpstarter-all meta-package in the list
The installation examples use jumpstarter-all, but it isn’t listed among the available packages. Adding a bullet like:

- `jumpstarter-all`: Meta-package including all Jumpstarter modules

ensures consistency and helps users discover this bundled option.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~7-~7: Loose punctuation mark.
Context: ...llable Python packages: - jumpstarter: Core package for exporter interaction a...

(UNLIKELY_OPENING_PUNCTUATION)

🧹 Nitpick comments (9)
docs/source/getting-started/installation/packages.md (3)

8-9: Fix bullet wrapping for readability
The description for jumpstarter-cli is split across two lines:

- `jumpstarter-cli`: CLI components metapackage including admin and user
  interfaces

Combine into a single line or adjust indentation so it renders cleanly in terminal environments.


23-36: Suppress or address MD014 warnings around shell snippets
All of the code blocks with $ prompts trigger MD014 (commands-show-output) in markdownlint. Since these are intended as input-only examples, consider one of:

  • Disabling MD014 locally with <!-- markdownlint-disable MD014 -->/<!-- markdownlint-enable MD014 -->.
  • Including sample output or a placeholder comment.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

24-24: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


25-25: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


26-26: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


33-33: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


34-34: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


35-35: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


47-54: Broaden package installation instructions for non-RHEL systems
Currently the source install uses dnf. To support Debian/Ubuntu users, consider adding an apt-get example:

$ sudo apt-get install -y make git

This will make the guide more inclusive across distributions.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

47-47: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


48-48: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


49-49: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


50-50: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


51-51: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


52-52: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


53-53: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

docs/source/getting-started/usage/setup-distributed-mode.md (1)

1-1: Consider refining the title for consistency
The H1 reads “# Setup Distributed Mode.” For parallelism with other guides, you might rename to “# Setting Up Distributed Mode.”

docs/source/getting-started/configuration/loading-order.md (5)

13-15: Unify inline code formatting for user configuration path.

The User configuration files entry breaks the path onto a separate line and wraps it in a code span only on the second line, whereas the System configuration files entry uses inline backticks. For consistency and readability, collapse the path into the same line and wrap it in backticks:

-3. **User configuration files** - Located in
-   `${HOME}/.config/jumpstarter/`
+3. **User configuration files** - Located in `~/.config/jumpstarter/`

21-28: Unify inline code formatting and list layout for client configuration entries.

To improve readability, merge multi-line list items into single lines with inline backticks:

-1. **Command-line options** such as `--endpoint` or `--client-config`
+1. **Command-line options** such as `--endpoint` or `--client-config`

-2. **Environment variables** such as `JMP_ENDPOINT`, `JMP_TOKEN`, or
-  `JMP_CLIENT_CONFIG`
+2. **Environment variables** such as `JMP_ENDPOINT`, `JMP_TOKEN`, or `JMP_CLIENT_CONFIG`

-3. **Current client** defined in
-   `${HOME}/.config/jumpstarter/config.yaml`
+3. **Current client** defined in `~/.config/jumpstarter/config.yaml`

-4. **Specific client file** in
-   `${HOME}/.config/jumpstarter/clients/<n>.yaml`
+4. **Specific client file** in `~/.config/jumpstarter/clients/<n>.yaml`

31-36: Merge multi-line environment variable listing in exporter hierarchy.

The exporter hierarchy breaks the environment variables onto two lines. Consolidate them into one line:

-2. **Environment variables** such as `JMP_ENDPOINT`, `JMP_TOKEN`, or
-  `JMP_NAMESPACE`
+2. **Environment variables** such as `JMP_ENDPOINT`, `JMP_TOKEN`, or `JMP_NAMESPACE`

51-53: Remove shell prompt prefixes or disable MD014 lint rule.

Your shell examples use the $ prompt without showing output, which triggers markdownlint’s MD014. To make these snippets more copy-paste friendly, either remove the $ prefix or annotate the code fence to disable the rule:

-```shell
-$ export JMP_ENDPOINT="jumpstarter2.my-lab.com:1443"
-```
+```shell
+export JMP_ENDPOINT="jumpstarter2.my-lab.com:1443"
+```

-```shell
-$ jmp --endpoint jumpstarter3.my-lab.com:1443 info
-```
+```shell
+jmp --endpoint jumpstarter3.my-lab.com:1443 info
+```

Also applies to: 57-59

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

52-52: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


6-10: Add cross-references to related configuration docs.

Consider adding quick links to the files.md and authentication.md subpages at the top of this document to help users navigate the broader configuration guide:

> See also: [Configuration Files](files.md), [Authentication](authentication.md)
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4494c5d and 65a5dbb.

📒 Files selected for processing (3)
  • docs/source/getting-started/configuration/loading-order.md (1 hunks)
  • docs/source/getting-started/installation/packages.md (1 hunks)
  • docs/source/getting-started/usage/setup-distributed-mode.md (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
docs/source/getting-started/configuration/loading-order.md

52-52: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


58-58: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

docs/source/getting-started/installation/packages.md

24-24: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


25-25: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


26-26: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


33-33: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


34-34: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


35-35: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


47-47: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


48-48: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


49-49: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


50-50: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


51-51: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


52-52: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


53-53: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


59-59: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


60-60: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


96-96: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

docs/source/getting-started/usage/setup-distributed-mode.md

33-33: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


41-41: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


67-67: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


81-81: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


92-92: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


100-100: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

🪛 LanguageTool
docs/source/getting-started/installation/packages.md

[uncategorized] ~7-~7: Loose punctuation mark.
Context: ...llable Python packages: - jumpstarter: Core package for exporter interaction a...

(UNLIKELY_OPENING_PUNCTUATION)

⏰ Context from checks skipped due to timeout of 90000ms (7)
  • GitHub Check: Redirect rules - jumpstarter-docs
  • GitHub Check: Header rules - jumpstarter-docs
  • GitHub Check: Pages changed - jumpstarter-docs
  • GitHub Check: pytest-matrix (3.12)
  • GitHub Check: pytest-matrix (3.11)
  • GitHub Check: pytest-matrix (3.13)
  • GitHub Check: e2e
🔇 Additional comments (4)
docs/source/getting-started/installation/packages.md (1)

1-97: Overall: Installation document is clear and well-structured
The new packages.md aligns with the PR’s objective of a streamlined Getting Started flow. With the adjustments above, the content will be both consistent and more accessible.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~7-~7: Loose punctuation mark.
Context: ...llable Python packages: - jumpstarter: Core package for exporter interaction a...

(UNLIKELY_OPENING_PUNCTUATION)

🪛 markdownlint-cli2 (0.17.2)

24-24: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


25-25: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


26-26: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


33-33: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


34-34: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


35-35: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


47-47: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


48-48: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


49-49: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


50-50: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


51-51: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


52-52: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


53-53: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


59-59: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


60-60: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


96-96: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

docs/source/getting-started/usage/setup-distributed-mode.md (2)

103-107: Verify existence of examples.md
The “Next Steps” section links to ./examples.md. Please confirm that docs/source/getting-started/usage/examples.md exists (and is included in the TOC), or update the path accordingly.


1-107: Overall: Distributed mode setup is comprehensive
This new guide cleanly covers prerequisites, exporter/client creation, and shell interaction. It meets the PR objective of clearer usage documentation.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

33-33: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


41-41: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


67-67: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


81-81: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


92-92: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


100-100: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

docs/source/getting-started/configuration/loading-order.md (1)

19-28: Clarify omission of system-level configuration in the client hierarchy.

The global Configuration Sources section lists system configuration files (/etc/jumpstarter/) as a fallback, but the Client Configuration Hierarchy only references user-level files and specific client files. Please confirm whether system-level client configuration (e.g., /etc/jumpstarter/clients/<n>.yaml) is intentionally omitted or update the hierarchy to include it.


1. You create a client configuration file at
`${XDG_CONFIG_DIRS}/.config/jumpstarter/clients/default.yaml`:
`${HOME}/.config/jumpstarter/clients/default.yaml`:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

There was a technical reason for using the XDG_HOME_DIRS, may be @NickCao can clarify better

@mangelajo
Copy link
Copy Markdown
Member

There is a regression, the landing page goes back to a table of contents instead of our main page.

https://deploy-preview-424--jumpstarter-docs.netlify.app/#
image

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ Duplicate comments (1)
docs/source/getting-started/installation/packages.md (1)

7-14: 🛠️ Refactor suggestion

Add jumpstarter-all meta-package to the enumeration

The install examples in the “Installing Release Packages” section reference jumpstarter-all, but it’s not listed here. To keep the docs consistent and prevent confusion, please insert:

 Jumpstarter includes the following installable Python packages:
- `jumpstarter`: Core package for exporter interaction and service hosting
+ - `jumpstarter-all`: Meta-package including all Jumpstarter modules
+ - `jumpstarter`: Core package for exporter interaction and service hosting
- `jumpstarter-cli`: CLI components metapackage including admin and user
🧰 Tools
🪛 LanguageTool

[uncategorized] ~7-~7: Loose punctuation mark.
Context: ...llable Python packages: - jumpstarter: Core package for exporter interaction a...

(UNLIKELY_OPENING_PUNCTUATION)

🧹 Nitpick comments (4)
docs/source/getting-started/installation/packages.md (4)

8-10: Merge the wrapped bullet for jumpstarter-cli

The jumpstarter-cli description is split awkwardly across two lines:

- `jumpstarter-cli`: CLI components metapackage including admin and user
  interfaces

Combine it into one line for clarity:

- `jumpstarter-cli`: CLI components metapackage including admin and user
- interfaces
+ `jumpstarter-cli`: CLI components metapackage including admin and user interfaces

25-27: Make mkdir invocations idempotent

Currently, directory creation uses plain mkdir, which errors if the directory already exists. Prefer mkdir -p:

- $ sudo mkdir /etc/jumpstarter
+ $ sudo mkdir -p /etc/jumpstarter

Apply this change in both the “Installing Release Packages” (lines 25–27) and “Installing from Source” (lines 49–52) sections.

Also applies to: 49-52

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

25-25: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


26-26: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


24-27: Remove leading $ or disable Markdown lint rule MD014

Fenced code blocks use leading $ prompts without showing output, which triggers MD014 (commands-show-output). To satisfy linting, either:

  1. Strip out all leading $ characters:
    pip3 install --extra-index-url https://pkg.jumpstarter.dev/ jumpstarter-all
  2. Or disable the rule around each block:
    <!-- markdownlint-disable MD014 -->
    ```shell
    $ pip3 install --extra-index-url https://pkg.jumpstarter.dev/ jumpstarter-all
    ...
    
    
    
    

Also applies to: 33-36, 45-52, 57-58, 94-95

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

24-24: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


25-25: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


26-26: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


23-36: Unify code-block syntax across the file

The file currently mixes standard backtick fences (shell) and MyST-style directives ({code-block} shell). For consistency, pick one style—e.g., prefer MyST directives:

- ```shell
+ ```{code-block} shell- ```{code-block} shell
+ ```shell

Apply uniformly to all code examples.

Also applies to: 68-89

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

24-24: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


25-25: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


26-26: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


33-33: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


34-34: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


35-35: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 65a5dbb and 449aced.

📒 Files selected for processing (1)
  • docs/source/getting-started/installation/packages.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/source/getting-started/installation/packages.md

[uncategorized] ~7-~7: Loose punctuation mark.
Context: ...llable Python packages: - jumpstarter: Core package for exporter interaction a...

(UNLIKELY_OPENING_PUNCTUATION)

🪛 markdownlint-cli2 (0.17.2)
docs/source/getting-started/installation/packages.md

24-24: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


25-25: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


26-26: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


33-33: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


34-34: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


35-35: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


45-45: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


46-46: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


47-47: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


48-48: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


49-49: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


50-50: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


51-51: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


57-57: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


58-58: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


94-94: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: pytest-matrix (3.12)
  • GitHub Check: pytest-matrix (3.13)
  • GitHub Check: pytest-matrix (3.11)
🔇 Additional comments (1)
docs/source/getting-started/installation/packages.md (1)

76-81: Verify the local-only workflow link anchor

The link [local-only workflow](../../introduction/index.md#local-mode) may not match the actual heading anchor in the introduction. Please confirm in the live preview that it navigates correctly, or adjust the anchor to the correct section ID.

@raballew
Copy link
Copy Markdown
Member Author

@mangelajo looks like a netlify bug, it renders just fine when running make docs-serve or make docs-serve-all locally

@mangelajo
Copy link
Copy Markdown
Member

@mangelajo looks like a netlify bug, it renders just fine when running make docs-serve or make docs-serve-all locally

Ack, I will test locally and try to figure out what is wrong with netlify.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (3)
docs/source/index.md (3)

25-29: Consider hyphenating the compound adjective for clarity
The phrase “free and open source testing tool” is a compound adjective modifying “testing tool.” Using hyphens would improve readability, for example:

- Jumpstarter is a free and open source testing tool...
+ Jumpstarter is a free-and-open-source testing tool...
🧰 Tools
🪛 LanguageTool

[uncategorized] ~25-~25: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... Meeting ``` Jumpstarter is a free and open source testing tool that bridges the gap betwe...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


30-30: Wrap raw HTML in a raw directive to ensure consistent rendering
Embedding a <script> tag directly in Markdown can be unreliable depending on your Sphinx/MyST configuration. Consider using a raw directive so that all build environments (including Netlify) handle it correctly:

```{raw} html
<script src="https://asciinema.org/a/xhJLxvKMsF8r8Sb7o2EIURufU.js" async></script>

---

`32-34`: **Use inline code for `Makefile` and simplify the sentence**  
Rather than italicizing “Makefile,” prefer inline code to clearly denote it as a filename. You could also split the long sentence or link out to “Getting Started.” For example:  
```diff
- same automation scripts everywhere - like a *Makefile* for device automation.
+ same automation scripts everywhere — like a `Makefile` for device automation.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 449aced and e918113.

📒 Files selected for processing (1)
  • docs/source/index.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/source/index.md

[uncategorized] ~25-~25: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... Meeting ``` Jumpstarter is a free and open source testing tool that bridges the gap betwe...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: e2e
🔇 Additional comments (2)
docs/source/index.md (2)

41-42: Great call-to-action to orient users
The new prompt—“Ready to get started? Use the navigation menu to find documentation that fits your needs.”—concise and user-focused.


48-54:

Details

✅ Verification successful

Verify the updated toctree aligns with the new structure and is supported in Netlify builds

  • Ensure introduction/index.md, getting-started/index.md, and reference/index.md exist at these paths.
  • Confirm that the MyST toctree extension (and the :hidden: option) is enabled in your conf.py; Netlify may be falling back to a default TOC if it isn’t.

🏁 Script executed:

#!/bin/bash
# Verify presence of key docs pages and myst extensions in conf.py
set -e
echo "Checking for doc files..."
for page in docs/source/introduction/index.md docs/source/getting-started/index.md docs/source/reference/index.md; do
  if [[ ! -f $page ]]; then
    echo "ERROR: Missing $page"
    exit 1
  fi
done
echo "Inspecting conf.py for myst_enable_extensions..."
grep -R "myst_enable_extensions" docs/source/conf.py || echo "WARNING: myst_enable_extensions not found"

Length of output: 745


All required documentation pages and MyST configuration verified

  • docs/source/introduction/index.md, docs/source/getting-started/index.md, and docs/source/reference/index.md are present
  • myst_enable_extensions is set in docs/source/conf.py

The updated toctree structure is correctly supported in Netlify builds.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (2)
docs/source/index.md (2)

25-28: Use hyphen for compound adjective in "free and open source"
The phrase “free and open source testing tool” should be hyphenated as “free and open-source testing tool” to follow compound adjective conventions.

Apply this diff:

- Jumpstarter is a free and open source testing tool that bridges the gap between
+ Jumpstarter is a free and open-source testing tool that bridges the gap between
🧰 Tools
🪛 LanguageTool

[uncategorized] ~25-~25: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... Meeting ``` Jumpstarter is a free and open source testing tool that bridges the gap betwe...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


41-42: Enhance the call-to-action with a direct link
Pointing readers to the navigation menu can be abstract—consider adding a direct link to the Getting Started section to improve discoverability.

Example:

- Ready to get started? Use the navigation menu to find documentation that fits your needs.
+ Ready to get started? Jump right into the [Getting Started guide](getting-started/index.md).
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e918113 and 35af4d8.

📒 Files selected for processing (1)
  • docs/source/index.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/source/index.md

[uncategorized] ~25-~25: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... Meeting ``` Jumpstarter is a free and open source testing tool that bridges the gap betwe...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

⏰ Context from checks skipped due to timeout of 90000ms (4)
  • GitHub Check: e2e
  • GitHub Check: pytest-matrix (3.11)
  • GitHub Check: pytest-matrix (3.13)
  • GitHub Check: pytest-matrix (3.12)
🔇 Additional comments (2)
docs/source/index.md (2)

50-50: Great consolidation of the Getting Started section
Replacing fragmented entry points with a single getting-started/index.md centralizes the onboarding flow and simplifies navigation.


54-54:

Details

✅ Verification successful

Verify existence of the new reference index file
Ensure that docs/source/reference/index.md was created and is referenced correctly in your site configuration.


🏁 Script executed:

#!/bin/bash
# Verify that the consolidated reference index file exists
if [ ! -f docs/source/reference/index.md ]; then
  echo "Error: docs/source/reference/index.md not found"
  exit 1
fi
echo "Found docs/source/reference/index.md"

Length of output: 130


Reference Index File Verified
The file docs/source/reference/index.md exists as expected. No further action required.

Comment thread docs/source/index.md Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ Duplicate comments (1)
docs/source/index.md (1)

30-37: Asciinema embed properly wrapped in MyST raw HTML block
The interactive terminal recording is now correctly enclosed in a {raw} html block, addressing the previous recommendation for reliable rendering across Sphinx and Netlify builds.

🧹 Nitpick comments (2)
docs/source/index.md (2)

25-28: Use hyphens for compound adjectives
The phrases “open source” and “cloud native” act as compound adjectives here. For clarity and consistency, consider hyphenating them as “open-source” and “cloud-native”.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~25-~25: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... Meeting ``` Jumpstarter is a free and open source testing tool that bridges the gap betwe...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


48-49: Consider adding a direct link to Getting Started
To reduce friction for new users, you might hyperlink “navigation menu” or add a direct link to the Getting Started guide here, e.g.:

Ready to get started? See the [Getting Started guide](getting-started/index.md) or use the navigation menu to find documentation that fits your needs.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 35af4d8 and 8151a30.

📒 Files selected for processing (1)
  • docs/source/index.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/source/index.md

[uncategorized] ~25-~25: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... Meeting ``` Jumpstarter is a free and open source testing tool that bridges the gap betwe...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

⏰ Context from checks skipped due to timeout of 90000ms (4)
  • GitHub Check: pytest-matrix (3.11)
  • GitHub Check: pytest-matrix (3.13)
  • GitHub Check: pytest-matrix (3.12)
  • GitHub Check: e2e
🔇 Additional comments (1)
docs/source/index.md (1)

55-62:

Details

✅ Verification successful

Verify that toctree entries point to existing pages
Make sure that introduction/index.md, getting-started/index.md, and reference/index.md truly exist and include the intended content. You can run:


🏁 Script executed:

#!/bin/bash
set -e
for page in introduction/index.md getting-started/index.md reference/index.md; do
  if [ ! -f docs/source/$page ]; then
    echo "❌ Missing docs/source/$page"
    exit 1
  fi
done
echo "✅ All toctree entries exist."

Length of output: 468


All toctree entries verified
Ran the provided script against docs/source; the following files are present and correctly referenced:

  • introduction/index.md
  • getting-started/index.md
  • reference/index.md

No broken links detected.

Copy link
Copy Markdown
Member

@mangelajo mangelajo left a comment

Choose a reason for hiding this comment

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

A few details, I am also good if we do some of them as follow ups. Let me know what you think

Comment thread CONTRIBUTING.md Outdated
Comment thread CONTRIBUTING.md
Comment thread CONTRIBUTING.md Outdated
Comment thread CONTRIBUTING.md Outdated
Comment thread CONTRIBUTING.md
Comment thread README.md
Comment thread docs/source/config/cli.md
Comment thread docs/source/getting-started/configuration/files.md Outdated
Comment thread docs/source/reference/package-apis/index.md
Comment thread packages/jumpstarter-driver-flashers/README.md
@raballew
Copy link
Copy Markdown
Member Author

@mangelajo i implemented your suggestions. please review again.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (3)
docs/source/getting-started/configuration/files.md (3)

1-2: Consider renaming the page title for clarity
The top-level heading # Files is quite generic. To better convey the content and align with other docs, consider renaming it to something like # Configuration Files or # Jumpstarter Configuration Files.

-# Files
+# Configuration Files

12-14: Improve File/Location formatting for readability
Combining File and Location on a single line can get cramped. Consider splitting into separate lines (or using a definition list) to enhance readability:

-**File**: `config.yaml` **Location**: `~/.config/jumpstarter/config.yaml`
+**File**:     `config.yaml`
+**Location**: `~/.config/jumpstarter/config.yaml`

You can apply the same pattern to the exporter section for consistency.


48-58: Consider consolidating repeated environment variables
You list JUMPSTARTER_GRPC_INSECURE (and other globals) in both the Client and Exporter sections. To reduce duplication and maintenance overhead, you might introduce a “Global Environment Variables” section that covers shared vars, then reference it from each subsection.

Also applies to: 100-106

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8151a30 and 72c318a.

📒 Files selected for processing (2)
  • CONTRIBUTING.md (1 hunks)
  • docs/source/getting-started/configuration/files.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • CONTRIBUTING.md
🧰 Additional context used
🪛 Gitleaks (8.21.2)
docs/source/getting-started/configuration/files.md

43-43: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


84-84: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

🔇 Additional comments (3)
docs/source/getting-started/configuration/files.md (3)

6-8: Verify the relative link to the loading-order page
The link [Loading Order](loading-order.md) assumes your build tool resolves .md extensions correctly. If you’re using MyST/Sphinx, you may need to drop the extension (e.g., [Loading Order](loading-order)) or adjust the path to prevent broken links in the published site.

Could you confirm that loading-order.md resolves as intended in Netlify and local builds?


33-44: Use placeholders for example tokens to avoid confusion or inadvertent leaks
Both the client and exporter YAML samples include what appear to be real-looking tokens. Even if these are dummy values, it’s safer to use clear placeholders (e.g., <YOUR_AUTH_TOKEN>) to prevent users from copying a token that might actually work or triggering static-analysis alerts.
[ suggest_essential_refactor ]
Apply this diff to both code blocks:

-  token: "dGhpc2lzYXRva2Vu-LONGTOKEN-EXAMPLE"
+  token: "<YOUR_AUTH_TOKEN>"

Also applies to: 75-90

🧰 Tools
🪛 Gitleaks (8.21.2)

43-43: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


130-136: Validate code-block directive support in Markdown builds
The INI example uses a {code-block} ini directive, which is specific to MyST/Sphinx. If your pipeline doesn’t support directives, this block will render incorrectly. Please confirm support for MyST directives; otherwise, switch to a standard fenced code block:

-```{code-block} ini
-:substitutions:
+```ini
 [Unit]
 ...

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

@raballew raballew requested a review from mangelajo April 29, 2025 14:47
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (6)
docs/source/getting-started/configuration/files.md (6)

1-2: Suggestion: Make the section title more descriptive
The top-level heading “Files” is quite generic within the configuration context. Consider renaming it to “Configuration Files” to improve clarity in navigation and avoid ambiguity.


14-15: Minor style: add comma for readability
Insert a comma after “settings” for better grammatical flow.

- **Description**: Defines global user settings including current client
+ **Description**: Defines global user settings, including current client
🧰 Tools
🪛 LanguageTool

[uncategorized] ~14-~14: Possible missing comma found.
Context: ... Description: Defines global user settings including current client selection. ...

(AI_HYDRA_LEO_MISSING_COMMA)


25-25: Refine wording for consistency
“Modified through jmp config commands” could read more naturally as “Managed using the jmp config commands.”


45-46: Use placeholder rather than an actual token
The example API token may be mistaken for a real secret. Replace it with a clear placeholder such as <TOKEN>.

- token: "dGhpc2lzYXRva2Vu-…"
+ token: "<TOKEN>"
🧰 Tools
🪛 Gitleaks (8.21.2)

45-45: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


85-101: Sanitize example credentials and tokens
The exporter snippet contains what look like real hostnames, tokens, and passwords. Use placeholders (<HOST>, <TOKEN>, <USERNAME>, <PASSWORD>) to avoid confusion and discourage embedding real secrets in documentation.

- token: "dGhpc2lzYXRva2Vu-…"
+ token: "<TOKEN>"

- host: "192.168.1.111"
+ host: "<HOST>"
- username: "admin"
+ username: "<USERNAME>"
- password: "secret"
+ password: "<PASSWORD>"
🧰 Tools
🪛 Gitleaks (8.21.2)

87-87: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


133-135: Review MyST code-block directive usage
The :substitutions: directive is empty and may be unnecessary or incomplete. Either remove it or provide the intended substitutions.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 72c318a and fec0328.

📒 Files selected for processing (1)
  • docs/source/getting-started/configuration/files.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/source/getting-started/configuration/files.md

[uncategorized] ~14-~14: Possible missing comma found.
Context: ... Description: Defines global user settings including current client selection. ...

(AI_HYDRA_LEO_MISSING_COMMA)

🪛 Gitleaks (8.21.2)
docs/source/getting-started/configuration/files.md

45-45: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


87-87: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

🔇 Additional comments (3)
docs/source/getting-started/configuration/files.md (3)

129-131: Systemd instructions for persistent exporters are present
Great job reintroducing the systemd service example using podman-systemd. This directly addresses the earlier request to document exporter service setup.


61-67: No comments needed for these CLI snippets
The jmp config and jmp run command examples are clear and consistent with the rest of the documentation.

Also applies to: 110-115, 121-128


6-8:

Details

✅ Verification successful

Verify the Loading Order link resolves correctly
Please ensure that the [Loading Order](loading-order.md) link points to the correct document in both local and Netlify builds.

Run this to confirm the file exists and is discoverable:


🏁 Script executed:

#!/bin/bash
# Check that loading-order.md is present under the same directory
fd loading-order.md docs/source/getting-started/configuration

Length of output: 122


Loading Order link confirmed
The file docs/source/getting-started/configuration/loading-order.md exists alongside files.md, so the relative link [Loading Order](loading-order.md) will resolve correctly in both local and Netlify builds.

@raballew raballew merged commit a851d30 into jumpstarter-dev:main Apr 29, 2025
15 checks passed
@mangelajo mangelajo added the backport release-0.6 Backport PR to release-0.6 branch label Apr 29, 2025
@jumpstarter-backport-bot
Copy link
Copy Markdown

Successfully created backport PR for release-0.6:

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

backport release-0.6 Backport PR to release-0.6 branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants