Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
132 commits
Select commit Hold shift + click to select a range
b82609d
docs: consolidate and improve documentation across the repository
raballew May 19, 2026
da5c132
fix: update old jumpstarter-controller repo URL to monorepo path
raballew May 19, 2026
4dd4c53
fix: remove duplicate license files and sections from subdirectories
raballew May 19, 2026
7009772
fix: simplify Contributing sections in subdirectory READMEs
raballew May 19, 2026
1f2f37a
fix: repair broken links across documentation
raballew May 19, 2026
aff804f
fix: update outdated references in documentation
raballew May 19, 2026
60a1492
fix(ci): add timeout-minutes to linkcheck job
raballew May 19, 2026
56998d2
fix: remove Contributing sections from subdirectory READMEs
raballew May 19, 2026
1dfac31
fix: remove duplicate Links section from config-svc README
raballew May 19, 2026
174871f
fix: remove duplicate Related Projects and Documentation sections
raballew May 19, 2026
1493b6d
fix: standardize subdirectory READMEs and remove duplicated content
raballew May 19, 2026
0505b53
fix: repair docs build include path and broken prometheus anchor
raballew May 19, 2026
c6af8f4
docs: add agentic by design framing across README and docs
raballew May 19, 2026
443182e
docs: restructure guides into examples and integration patterns
raballew May 19, 2026
6d1c5a8
fix: repair cross-references after docs restructure
raballew May 19, 2026
02d8392
fix: replace en-dash characters with hyphens in JEPs
raballew May 19, 2026
6796fce
docs: move setup guides into setup/ subdirectory
raballew May 19, 2026
a8b1d73
fix: shorten agentic highlight and update docs copyright to 2026
raballew May 19, 2026
9a1d764
fix: remove duplicate Router section from introduction
raballew May 19, 2026
2c58571
docs: add Router mermaid diagram to service.md
raballew May 19, 2026
f64bb24
docs: move RPC section from introduction to drivers
raballew May 19, 2026
e9e08e6
docs: nest setup guides under setup/index in navigation
raballew May 19, 2026
7111e78
docs: polish index pages, titles, and diagram themes
raballew May 19, 2026
2483792
docs: merge Project Governance into Contributing
raballew May 19, 2026
ef67c09
docs: add JEP reference to contributing and fix dev environment paths
raballew May 19, 2026
fdfedc2
docs: move JEPs from internal/ to contributing/jeps/
raballew May 19, 2026
48b09cc
docs: merge CI/CD and agentic bullets, remove JEPs abbreviation
raballew May 19, 2026
83cf1b1
docs: merge operator install into production deployment page
raballew May 19, 2026
d83ed33
fix: replace em-dash and en-dash characters with ASCII dashes
raballew May 19, 2026
257b939
docs: expand glossary with all terms from documentation
raballew May 19, 2026
7510577
docs: trim glossary to Jumpstarter-specific terms only
raballew May 19, 2026
724f862
docs: convert glossary to Sphinx directive and add term references
raballew May 19, 2026
2e4a88a
docs: organize glossary into Acronyms, Entities, Concepts, Tools
raballew May 19, 2026
471fb9e
docs: add missing glossary term references across all docs
raballew May 19, 2026
7b3aab3
docs: link all glossary term occurrences and fix redundant expansions
raballew May 19, 2026
8539341
docs: add Direct Mode to introduction operation modes
raballew May 19, 2026
8d8106f
docs: add MicroShift bootc option to service installation index
raballew May 19, 2026
e9794d4
docs: rename service install pages to CLI, Operator, Bootc Image
raballew May 19, 2026
3992d40
docs: add Bootc Image to service toctree as external link
raballew May 19, 2026
5ba5337
docs: comprehensive glossary term linking across all user-facing docs
raballew May 19, 2026
4ee02a5
docs: mention all three operation modes consistently
raballew May 19, 2026
9980031
docs: add SSH MITM driver, split categories, fix naming consistency
raballew May 19, 2026
6cbeff7
docs: standardize all driver page titles to "Name Driver" format
raballew May 19, 2026
9a5bcd7
fix: update driver category anchors to match renamed sections
raballew May 19, 2026
f5e699f
docs: move bootc deployment into docs site as a proper page
raballew May 19, 2026
5cba725
docs: align bootc page structure with CLI and Operator pages
raballew May 19, 2026
6fb1a5b
docs: align CLI, Operator, and Bootc page structures
raballew May 19, 2026
e9d8b1c
docs: move Operator API reference to reference section
raballew May 19, 2026
85ee2d2
fix: drop specific Fedora version from dev environment docs
raballew May 19, 2026
3b174f4
chore: move devcontainer and devfile to repo root
raballew May 19, 2026
4aec913
docs: prefer open source project names over commercial products
raballew May 19, 2026
be14e30
docs: use OpenShift consistently instead of OKD
raballew May 19, 2026
a400971
docs: trim glossary from 48 to 24 core terms
raballew May 19, 2026
028d2fa
docs: link driver and client terms in core components section
raballew May 19, 2026
9881d85
Revert "docs: link driver and client terms in core components section"
raballew May 19, 2026
173a296
docs: rename Enhancement Proposals to Jumpstarter Enhancement Proposals
raballew May 19, 2026
b35ed2a
docs: split contributing into index with child pages
raballew May 19, 2026
6fb9d49
docs: remove acronym expansion guideline
raballew May 19, 2026
58dd69f
fix: remove trailing dot from bullet point
raballew May 19, 2026
d8d8c48
fix: remove redundant sentence from contributing guidelines
raballew May 19, 2026
5bae550
docs: rename JEPs page title, increase contributing toctree depth
raballew May 19, 2026
9563314
docs: remove JEPs from sidebar toctree
raballew May 19, 2026
dbff81c
docs: sync operator API reference with Go CRD types
raballew May 19, 2026
a00a6a7
docs: auto-generate operator API reference from CRD schema
raballew May 19, 2026
e4709d7
docs: replace sphinx-jsonschema with auto-generated CRD tables
raballew May 19, 2026
e1da6ec
docs: split Kubernetes API Extensions into individual CRD pages
raballew May 19, 2026
1081c50
docs: rename kubernetes-api to kubernetes-api-extensions
raballew May 19, 2026
dca2de8
docs: rename kubernetes-api-extensions to crds, add CRD to glossary
raballew May 19, 2026
e0beb43
docs: set consistent width for first table column
raballew May 19, 2026
25fbf66
docs: skip expanding well-known Kubernetes types in CRD tables
raballew May 19, 2026
af89c6e
fix: correct CRD doc comments and remove scaffolding boilerplate
raballew May 19, 2026
f9cbe65
chore: integrate CRD doc generation into build and gitignore
raballew May 19, 2026
0f09d9b
docs: rename files to match page titles
raballew May 19, 2026
0ac2106
docs: move MCP to integration-patterns, fix index titles
raballew May 19, 2026
1a642d7
docs: replace GitHub controller link with internal CRDs reference
raballew May 19, 2026
808a52b
docs: rename examples, merge MCP into AI agent integration
raballew May 19, 2026
f588ff0
docs: rename to Agentic Integration, restore MCP to package reference
raballew May 19, 2026
5d23a71
docs: trim MCP README to reference-only, remove duplicated content
raballew May 19, 2026
6857006
docs: apply blue sequence diagram theme to agentic workflow chart
raballew May 19, 2026
1214f04
fix: stop generator from overwriting CRDs index.md
raballew May 19, 2026
baa473c
fix: add docs-generate-crds dependency to docs-all target
raballew May 19, 2026
330ff0e
chore: regenerate CRD manifests from corrected Go type comments
raballew May 19, 2026
7c5666c
docs: rename Contributing > Getting Started to How to Contribute
raballew May 19, 2026
d4ed44a
docs: add dynamic mermaid theme switching for light/dark mode
raballew May 20, 2026
da1a9eb
docs: rename integration pattern pages to consistent noun phrases
raballew May 20, 2026
7029351
docs: replace glossary links with hover tooltips
raballew May 20, 2026
9637741
fix: rewrite glossary tooltip JS to match Sphinx HTML structure
raballew May 20, 2026
192976a
docs: use CSS tooltip for instant glossary hover, drop help cursor
raballew May 20, 2026
4e27d0e
docs: shorten glossary definitions for concise tooltips
raballew May 20, 2026
b595d7e
docs: add tap-to-show tooltips on touch devices
raballew May 20, 2026
7417371
docs: add mermaid diagram for Direct Mode
raballew May 20, 2026
27526db
docs: show all three operation modes in core components diagram
raballew May 20, 2026
57a7046
fix: capitalize glossary terms consistently in component interactions
raballew May 20, 2026
564247a
fix: use plain text in page links to prevent tooltip interference
raballew May 20, 2026
a201c64
docs: remove documentation-in-progress warning banner
raballew May 20, 2026
f557b34
docs: align sidebar logo with content heading
raballew May 20, 2026
0280324
docs: wrap code references in backticks across all user-facing docs
raballew May 20, 2026
ff53f84
fix: remove global table-layout fixed CSS that broke non-CRD tables
raballew May 20, 2026
04eea2c
docs: shorten tab headings on operator install page
raballew May 20, 2026
f33ba13
docs: rework operator page with synced inline-tabs
raballew May 20, 2026
db2448b
docs: replace inline auth reference with link to CRD page
raballew May 20, 2026
a3e516e
docs: standardize list styles across all docs
raballew May 20, 2026
3675dca
docs: standardize shell code blocks to console
raballew May 20, 2026
9695c3c
fix: regenerate CRD manifests with controller-gen v0.18.0
raballew May 20, 2026
c9dec12
fix: restore operator image tag to latest
raballew May 20, 2026
79a7178
docs: standardize to MAN Pages and add MAN to glossary
raballew May 20, 2026
931b67c
fix: restore driver doc symlinks to package READMEs
raballew May 20, 2026
e27f83f
docs: add autoclass API reference to 9 driver READMEs
raballew May 20, 2026
e6a17df
docs: add docstrings and replace manual API docs with autoclass
raballew May 20, 2026
6c8c643
fix: add class docstrings to fix RST emphasis warnings
raballew May 20, 2026
73c516a
docs: add missing Installation, Configuration, API sections to 5 drivers
raballew May 20, 2026
6ac4b34
docs: standardize driver README heading order across all packages
raballew May 20, 2026
a929925
docs: mark Usage and Architecture as optional in driver template
raballew May 20, 2026
2641827
docs: eliminate driver README outlier sections
raballew May 20, 2026
dbbe1e8
docs: add optional Troubleshooting section to driver template
raballew May 20, 2026
ef79658
fix: harden CRD docs generator with error handling and cleanup
raballew May 20, 2026
66d09ce
test: add comprehensive test suite for generate-crd-docs.py
raballew May 20, 2026
0004fa0
fix: replace stale Identity references with Client in controller
raballew May 20, 2026
0317145
fix: replace em-dash characters with ASCII hyphens in jep-process
raballew May 20, 2026
cccab60
fix: use textContent instead of innerHTML in glossary tooltips
raballew May 20, 2026
8b198fb
fix: resolve import sorting and unused import lint errors
raballew May 20, 2026
3aafc3c
fix: use textContent instead of innerHTML in mermaid-theme.js
raballew May 20, 2026
e7392da
docs: replace em dash characters with ASCII hyphens
raballew May 20, 2026
dca540e
docs: replace en dash characters with ASCII hyphens
raballew May 20, 2026
a155ef1
docs: replace prose double-hyphens with single hyphens
raballew May 20, 2026
29b8e37
docs: fix dash guideline to reference single hyphens
raballew May 20, 2026
90da82e
ci: update e2e workflows to Go 1.24 to match controller/go.mod
raballew May 20, 2026
ab82e91
fix: add docs-generate-crds dependency to all doc targets
raballew May 20, 2026
24beead
docs: rename authentication heading to Username Collisions
raballew May 20, 2026
e4ea76c
docs: remove cost management and testing from integration patterns
raballew May 20, 2026
e8c5db8
Update python/docs/source/glossary.md
raballew May 20, 2026
cd29093
docs: fix mermaid syntax and rename service installation pages
raballew May 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .cursor/rules/jep-process.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ This rule helps with creating Jumpstarter Enhancement Proposals (JEPs).

## Creating a JEP

1. **Choose the next JEP number**: Look at existing files in `python/docs/source/internal/jeps/` and pick the next available incrementing integer. JEP-0000 through JEP-0009 are reserved for process/meta-JEPs, so start from JEP-0010 for regular proposals.
1. **Choose the next JEP number**: Look at existing files in `python/docs/source/contributing/jeps/` and pick the next available incrementing integer. JEP-0000 through JEP-0009 are reserved for process/meta-JEPs, so start from JEP-0010 for regular proposals.

2. **Create the file**: Copy the template from `python/docs/source/internal/jeps/JEP-NNNN-template.md` to `python/docs/source/internal/jeps/JEP-NNNN-short-title.md`, replacing `NNNN` with the zero-padded number and `short-title` with a descriptive slug.
2. **Create the file**: Copy the template from `python/docs/source/contributing/jeps/JEP-NNNN-template.md` to `python/docs/source/contributing/jeps/JEP-NNNN-short-title.md`, replacing `NNNN` with the zero-padded number and `short-title` with a descriptive slug.

3. **Fill in the metadata table**:
- Set the JEP number (incrementing integer, NOT the PR number)
Expand Down Expand Up @@ -45,8 +45,8 @@ JEPs use this format for individual decisions:

**Alternatives considered:**

1. **Option A** Brief description.
2. **Option B** Brief description.
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.

what changed here? hmm

Copy link
Copy Markdown
Member Author

@raballew raballew May 20, 2026

Choose a reason for hiding this comment

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

dashem to dash characters - essentially non ascii to ascii compatible format, you will find this 100s of times in this PR - its a common "mistake" LLMs/LRMs make

1. **Option A** - Brief description.
2. **Option B** - Brief description.

**Decision:** Option A.

Expand All @@ -56,7 +56,7 @@ JEPs use this format for individual decisions:
## Key Rules

- JEP numbers are incrementing integers, NOT derived from PR numbers
- JEPs live in `python/docs/source/internal/jeps/`
- JEPs live in `python/docs/source/contributing/jeps/`
- All JEPs should be merged as PRs so the documentation is part of the Jumpstarter docs/source
- Rejected JEPs are normally not merged, but can be merged with "Rejected" status if there is an architectural reason to preserve them
- The license for all documents is Apache-2.0
4 changes: 2 additions & 2 deletions .cursor/rules/releasing-operator.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ The operator bundle version is driven by variables in `controller/deploy/operato
- **`IMAGE_TAG_BASE`**: Registry prefix (`quay.io/jumpstarter-dev/jumpstarter-operator`).
- **`BUNDLE_IMG`** / **`CATALOG_IMG`**: Also derived from `IMAGE_TAG_BASE` and `VERSION` automatically.

The `config/manifests/bases/jumpstarter-operator.clusterserviceversion.yaml` uses placeholder version `0.0.0` -- the real version is injected by `make bundle`.
The `config/manifests/bases/jumpstarter-operator.clusterserviceversion.yaml` uses placeholder version `0.0.0` - the real version is injected by `make bundle`.

## Image Tag Convention

Expand All @@ -34,7 +34,7 @@ When preparing a new release version X.Y.Z, update these files together:

### 1. `controller/deploy/operator/Makefile`
- `VERSION ?= X.Y.Z`
- `REPLACES ?= jumpstarter-operator.vPREVIOUS` (the most recent version published to the OLM channel -- including RCs. E.g. if `v0.8.1-rc.1` was published, REPLACES must be `jumpstarter-operator.v0.8.1-rc.1`, not `v0.8.0`)
- `REPLACES ?= jumpstarter-operator.vPREVIOUS` (the most recent version published to the OLM channel - including RCs. E.g. if `v0.8.1-rc.1` was published, REPLACES must be `jumpstarter-operator.v0.8.1-rc.1`, not `v0.8.0`)
- Optionally update `OPENSHIFT_VERSIONS` if the supported range changes

### 2. `controller/deploy/operator/api/v1alpha1/jumpstarter_types.go`
Expand Down
18 changes: 9 additions & 9 deletions .cursor/skills/propose-jep/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,30 +10,30 @@ You are helping the user create a new Jumpstarter Enhancement Proposal (JEP).

## Context

JEPs are design documents for substantial changes to the Jumpstarter project changes that affect multiple components, alter public APIs or protocols, or require community consensus. Read `.cursor/rules/jep-process.mdc` for the full process definition.
JEPs are design documents for substantial changes to the Jumpstarter project - changes that affect multiple components, alter public APIs or protocols, or require community consensus. Read `.cursor/rules/jep-process.mdc` for the full process definition.

JEP topic: $ARGUMENTS

## Steps

### 1. Determine the next JEP number

List existing files in `python/docs/source/internal/jeps/` and pick the next available incrementing integer. JEP-0000 through JEP-0009 are reserved for process/meta-JEPs, so start from JEP-0010 for regular proposals.
List existing files in `python/docs/source/contributing/jeps/` and pick the next available incrementing integer. JEP-0000 through JEP-0009 are reserved for process/meta-JEPs, so start from JEP-0010 for regular proposals.

### 2. Gather information

Before writing the JEP, ask the user clarifying questions to understand:

- **What problem does this solve?** The motivation section needs a concrete problem description.
- **Who is affected?** Which components, drivers, or user workflows are impacted?
- **What are the alternatives?** Each design decision needs at least two alternatives considered.
- **What are the compatibility implications?** Does this break existing APIs, protocols, or workflows?
- **What problem does this solve?** - The motivation section needs a concrete problem description.
- **Who is affected?** - Which components, drivers, or user workflows are impacted?
- **What are the alternatives?** - Each design decision needs at least two alternatives considered.
- **What are the compatibility implications?** - Does this break existing APIs, protocols, or workflows?

If the user provided a description in `$ARGUMENTS`, use it as a starting point but still ask about gaps.

### 3. Create the JEP file

Copy the template from `python/docs/source/internal/jeps/JEP-NNNN-template.md` and create a new file at `python/docs/source/internal/jeps/JEP-NNNN-short-title.md` where:
Copy the template from `python/docs/source/contributing/jeps/JEP-NNNN-template.md` and create a new file at `python/docs/source/contributing/jeps/JEP-NNNN-short-title.md` where:

- `NNNN` is the zero-padded next number
- `short-title` is a descriptive slug derived from the proposal title
Expand All @@ -46,9 +46,9 @@ Fill in:

### 4. Update the JEP index

Add the new JEP to the appropriate table in `python/docs/source/internal/jeps/README.md` (Process, Standards Track, or Informational).
Add the new JEP to the appropriate table in `python/docs/source/contributing/jeps/index.md` (Process, Standards Track, or Informational).

Add the new JEP file to the `{toctree}` directive at the bottom of `python/docs/source/internal/jeps/README.md`.
Add the new JEP file to the `{toctree}` directive at the bottom of `python/docs/source/contributing/jeps/index.md`.

### 5. Present the result

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ WORKDIR /opt

COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv
COPY --from=ghcr.io/astral-sh/uv:latest /uvx /bin/uvx
COPY ./.python-version ./
COPY ./python/.python-version ./

# Install required tools for development
RUN apt-get update && apt-get install -y iperf3 libusb-dev
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"context": "..",
"dockerfile": "Dockerfile"
},
"postCreateCommand": "make sync",
"postStartCommand": "uv python pin 3.12 && uv run pre-commit install",
"postCreateCommand": "cd python && make sync",
"postStartCommand": "cd python && uv python pin 3.12 && uv run pre-commit install",
"remoteUser": "vscode",
// Mount USB devices to devcontainer for tests
"mounts": [
Expand Down
4 changes: 4 additions & 0 deletions python/.devfile.yaml → .devfile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,21 @@ commands:
- id: serve-docs
exec:
component: runtime
workingDir: ${PROJECT_SOURCE}/python
commandLine: make docs-serve DOC_LISTEN="--host 0.0.0.0"
- id: sync
exec:
component: runtime
workingDir: ${PROJECT_SOURCE}/python
commandLine: make sync
- id: clean
exec:
component: runtime
workingDir: ${PROJECT_SOURCE}/python
commandLine: make clean
- id: test
exec:
component: runtime
workingDir: ${PROJECT_SOURCE}/python
commandLine: make test

22 changes: 22 additions & 0 deletions .github/workflows/documentation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,28 @@ jobs:
- name: Build the documentation for the current version (no warnings allowed)
run: make sync && make docs

linkcheck:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true

- name: Install the latest version of uv
uses: astral-sh/setup-uv@803947b9bd8e9f986429fa0c5a41c367cd732b41 # v7.2.1
with:
version: "latest"

- name: Install Python
run: |
uv python pin 3.12
uv python install

- name: Check documentation links
run: make sync && make docs-linkcheck

# Deployment job
deploy:
environment:
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "1.22"
go-version: "1.24"

- name: Cache controller image
id: cache
Expand Down Expand Up @@ -104,7 +104,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "1.22"
go-version: "1.24"

- name: Cache operator artifacts
id: cache
Expand Down Expand Up @@ -189,7 +189,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "1.22"
go-version: "1.24"

- name: Download controller image
uses: actions/download-artifact@v4
Expand Down Expand Up @@ -259,7 +259,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "1.22"
go-version: "1.24"

- name: Setup compat environment (old controller v0.8.1)
run: make e2e-compat-setup COMPAT_SCENARIO=old-controller
Expand Down Expand Up @@ -287,7 +287,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "1.22"
go-version: "1.24"

- name: Download controller image
uses: actions/download-artifact@v4
Expand Down
File renamed without changes.
25 changes: 10 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,17 @@

A free, open source tool for automated testing on real and virtual hardware with
CI/CD integration. Simplify device automation with consistent rules across local
and distributed environments.
and distributed environments. Every interface is programmatic - there is no GUI
wall - so human developers, test scripts, CI pipelines, and AI agents interact
with hardware through the same APIs.

## Highlights

- 🧪 **Unified Testing** - One tool for local, virtual, and remote hardware
- 🐍 **Python-Powered** - Leverage Python's testing ecosystem
- 🔌 **Hardware Abstraction** - Simplify complex hardware interfaces with drivers
- 🌐 **Collaborative** - Share test hardware globally
- ⚙️ **CI/CD Ready** - Works with cloud native developer environments and pipelines
- ⚙️ **Automation Ready** - Same APIs for humans, test scripts, CI pipelines, and AI agents
- 💻 **Cross-Platform** - Supports Linux and macOS

## Repository Structure
Expand Down Expand Up @@ -115,20 +117,20 @@ make e2e-clean
### Prerequisites

- Python 3.11+ (for Python components)
- Go 1.22+ (for controller)
- Go 1.24+ (for controller)
Comment thread
mangelajo marked this conversation as resolved.
- Docker/Podman (for container builds)
- kubectl (for Kubernetes deployment)

### Building

```shell
# Build all components
make all
make build

# Build specific components
make python # Python packages
make controller # Controller binary
make protocol # Generate protocol code
make build-python # Python packages
make build-controller # Controller binary
make build-protocol # Generate protocol code

# Run tests
make test
Expand All @@ -139,20 +141,13 @@ make e2e # Run tests
make e2e-clean # Clean up
```

### Running Locally

```shell
# Start a local development environment
make dev
```

## Documentation

Jumpstarter's documentation is available at [jumpstarter.dev](https://jumpstarter.dev).

- [Getting Started](https://jumpstarter.dev/main/getting-started/)
- [User Guide](https://jumpstarter.dev/main/introduction/)
- [API Reference](https://jumpstarter.dev/main/api/)
- [API Reference](https://jumpstarter.dev/main/reference/)
- [Contributing Guide](https://jumpstarter.dev/main/contributing.html)

## Contributing
Expand Down
Loading
Loading