Skip to content
This repository was archived by the owner on Jul 4, 2025. It is now read-only.

Commit 312e206

Browse files
committed
v1.0.2 QA checklist (6 Nov)
1 parent c48c7ee commit 312e206

File tree

1 file changed

+68
-48
lines changed

1 file changed

+68
-48
lines changed

.github/ISSUE_TEMPLATE/QA_checklist.md

Lines changed: 68 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -17,43 +17,49 @@ OS (select one)
1717

1818
--------
1919

20-
# 1. Manual QA
20+
# 1. Manual QA (CLI)
2121
## Installation
22+
- [ ] it should install with local installer (default; no internet required during installation, all dependencies bundled)
2223
- [ ] it should install with network installer
23-
- [ ] it should install with local installer
24-
- [ ] it should install 2 binaries (cortex and cortex-server)
24+
- [ ] it should install 2 binaries (cortex and cortex-server) [mac: binaries in `/usr/local/bin`]
2525
- [ ] it should install with correct folder permissions
2626
- [ ] it should install with folders: /engines /logs (no /models folder until model pull)
27-
27+
- [ ] It should install with Docker image https://cortex.so/docs/installation/docker/
2828

2929
## Data/Folder structures
3030
- [ ] cortex.so models are stored in `cortex.so/model_name/variants/`, with .gguf and model.yml file
3131
- [ ] huggingface models are stored `huggingface.co/author/model_name` with .gguf and model.yml file
32-
- [ ] downloaded models are saved in cortex.db (view via SQL)
33-
- [ ] [to add] tests for copying models data folder & relative paths
34-
32+
- [ ] downloaded models are saved in cortex.db with the right fields: `model`, `author_repo_id`, `branch_name`, `path_to_model_yaml` (view via SQL)
3533

3634
## Cortex Update
3735
- [ ] cortex -v should check output current version and check for updates
3836
- [ ] cortex update replaces the app, installer, uninstaller and binary file (without installing cortex.llamacpp)
39-
- [ ] cortex update should update from ~3-5 versions ago to latest (+3 to 5 bump)
40-
- [ ] cortex update should update from the previous version to latest (+1 bump)
41-
- [ ] cortex update should update from previous stable version to latest (stable checking)
42-
- [ ] it should gracefully update when server is actively running
37+
- [ ] `cortex update` should update from ~3-5 versions ago to latest (+3 to 5 bump)
38+
- [ ] `cortex update` should update from the previous version to latest (+1 bump)
39+
- [ ] `cortex update -v 1.x.x-xxx` should update from the previous version to specified version
40+
- [ ] `cortex update` should update from previous stable version to latest
41+
- [ ] it should gracefully update when server is actively running
4342

4443
## Overall / App Shell
45-
- [ ] cortex returns helpful text in a timely* way
44+
- [ ] cortex returns helpful text in a timely* way (< 5s)
4645
- [ ] `cortex` or `cortex -h` displays help commands
47-
- [ ] CLI commands should start the API server, if not running [WIP `cortex pull`, `cortex engines install`]
46+
- [ ] CLI commands should start the API server, if not running [except
4847
- [ ] it should correctly log to cortex-cli.log and cortex.log
4948
- [ ] There should be no stdout from inactive shell session
5049

5150
## Engines
5251
- [ ] llama.cpp should be installed by default
53-
- [ ] it should run gguf models on llamacpp
54-
- [ ] it should install engines
55-
- [ ] it should list engines (Compatible, Ready, Not yet installed)
52+
- [ ] it should run gguf models on llamacpp
53+
- [ ] it should list engines
5654
- [ ] it should get engines
55+
- [ ] it should install engines (latest version if not specified)
56+
- [ ] it should install engines (with specified variant and version)
57+
- [ ] it should get default engine
58+
- [ ] it should set default engine (with specified variant/version)
59+
- [ ] it should load engine
60+
- [ ] it should unload engine
61+
- [ ] it should update engine (to latest version)
62+
- [ ] it should update engine (to specified version)
5763
- [ ] it should uninstall engines
5864
- [ ] it should gracefully continue engine installation if interrupted halfway (partial download)
5965
- [ ] it should gracefully handle when users try to CRUD incompatible engines (No variant found for xxx)
@@ -62,15 +68,17 @@ OS (select one)
6268
- [ ] it should update engines versions [WIP, not tested]
6369

6470
## Server
65-
- [ ] `cortex start` should start server and output API documentation page
66-
- [ ] users can see API documentation page
67-
- [ ] `cortex stop` should stop server
68-
- [ ] it should correctly log to cortex logs
71+
- [ ] `cortex start` should start server and output localhost URL & port number
72+
- [ ] users can access API Swagger documentation page at localhost URL & port number
73+
- [ ] `cortex start` can be configured with parameters (port, [logLevel [WIP]](https://github.com/janhq/cortex.cpp/pull/1636)) https://cortex.so/docs/cli/start/
74+
- [ ] it should correctly log to cortex logs (logs/cortex.log, logs/cortex-cli.log)
6975
- [ ] `cortex ps` should return server status and running models (or no model loaded)
76+
- [ ] `cortex stop` should stop server
7077

7178
## Model Pulling
7279
- [ ] Pulling a model should pull .gguf and model.yml file
73-
- [ ] Model download progress should appear (with accurate %, total time, download size, speed)
80+
- [ ] Model download progress should appear as download bars for each file
81+
- [ ] Model download progress should be accurate (%, total time, download size, speed)
7482
### cortex.so
7583
- [ ] it should pull by built in model_ID
7684
- [ ] pull by model_ID should recommend default variant at the top (set in HF model.yml)
@@ -85,24 +93,23 @@ OS (select one)
8593

8694
## Model Management
8795
- [ ] it should list downloaded models
88-
- [ ] it should get info of a local model
89-
- [ ] it should update models
96+
- [ ] it should get a local model
97+
- [ ] it should update model parameters in model.yaml
9098
- [ ] it should delete a model
9199
- [ ] it should import models with model_id and model_path
92-
- [ ] [To deprecate] it should alias models (deprecate once `cortex run` with regex is implemented)
93100

94101
## Model Running
95102
- [ ] `cortex run <cortexso model>` - if no local models detected, shows `pull` model menu
96103
- [ ] `cortex run` - if local model detected, runs the local model
97-
- [ ] `cortex run` - if multiple local models detected, shows list of local models for users to select
104+
- [ ] `cortex run` - if multiple local models detected, shows list of local models (from multiple model sources eg cortexso, HF authors) for users to select (via regex search)
98105
- [ ] `cortex run <invalid model id>` should return gracefully `Model not found!`
99106
- [ ] run should autostart server
100107
- [ ] `cortex run <model>` starts interactive chat (by default)
101108
- [ ] `cortex run <model> -d` runs in detached mode
102109
- [ ] `cortex models start <model>`
103110
- [ ] terminate StdIn or `exit()` should exit interactive chat
104111

105-
## Hardware Detection / Acceleration [WIP]
112+
## Hardware Detection / Acceleration [WIP, no need to QA]
106113
- [ ] it should auto offload max ngl
107114
- [ ] it should correctly detect available GPUs
108115
- [ ] it should gracefully detect missing dependencies/drivers
@@ -120,34 +127,47 @@ GPU Acceleration (e.g. CUDA11, CUDA12, Vulkan, sycl, etc)
120127
--
121128
# 2. API QA
122129

123-
## Overall API
124-
- [ ] API page is updated at localhost:port endpoint (upon `cortex start`)
125-
- [ ] OpenAI compatibility for below
130+
## Checklist for each endpoint
131+
- [ ] Upon `cortex start`, API page is displayed at localhost:port endpoint
132+
- [ ] Endpoints should support the parameters stated in API reference (towards OpenAI Compatibility)
126133
- [ ] https://cortex.so/api-reference is updated
127134

128135
## Endpoints
129136
### Chat Completions
130137
- [ ] POST `v1/chat/completions`
138+
- [ ] Cortex supports Function Calling #295
131139

132140
### Engines
133-
- [ ] GET `/v1/engines`
134-
- [ ] DELETE `/v1/engines/install/{name}`
135-
- [ ] POST `/v1/engines/install/{name}`
136-
- [ ] GET `/v1/engines/{name}`
137-
138-
### Models
139-
- [ ] GET `/v1/models` lists models
140-
- [ ] POST `/v1/models/pull` starts download (websockets)
141-
- [ ] `websockets /events` emitted when model pull starts
142-
- [ ] DELETE `/v1/models/pull` stops download (websockets)
143-
- [ ] `websockets /events` stopped when model pull stops
144-
- [ ] POST `/v1/models/start` starts model
145-
- [ ] POST `/v1/models/stop` stops model
146-
- [ ] DELETE `/v1/models/{id}` deletes model
147-
- [ ] GET `/v1/models/{id}` gets model
148-
- [ ] PATCH `/v1/models/{model}` updates model.yaml params
149-
150-
----
151-
#### Test list for reference:
141+
- [ ] List engines: GET `/v1/engines`
142+
- [ ] Get engine: GET `/v1/engines/{name}`
143+
- [ ] Install engine: POST `/v1/engines/install/{name}`
144+
- [ ] Get default engine variant/version: GET `v1/engines/{name}/default`
145+
- [ ] Set default engine variant/version: POST `v1/engines/{name}/default`
146+
- [ ] Load engine: POST `v1/engines/{name}/load`
147+
- [ ] Unload engine: DELETE `v1/engines/{name}/load`
148+
- [ ] Update engine: POST `v1/engines/{name}/update`
149+
- [ ] uninstall engine: DELETE `/v1/engines/install/{name}`
150+
151+
### Pulling Models
152+
- [ ] Pull model: POST `/v1/models/pull` starts download (websockets)
153+
- [ ] Pull model: `websockets /events` emitted
154+
- [ ] Stop model download: DELETE `/v1/models/pull` (websockets)
155+
- [ ] Stop model download: `websockets /events` stopped
156+
- [ ] Import model: POST `v1/models/import`
157+
158+
### Running Models
159+
- [ ] List models: GET `v1/models`
160+
- [ ] Start model: POST `/v1/models/start`
161+
- [ ] Stop model: POST `/v1/models/stop`
162+
- [ ] Get model: GET `/v1/models/{id}`
163+
- [ ] Delete model: DELETE `/v1/models/{id}`
164+
- [ ] Update model: PATCH `/v1/models/{model}` updates model.yaml params
165+
166+
## Server
167+
- [ ] CORs [WIP]
168+
- [ ] health: GET `/healthz`
169+
- [ ] terminate server: DELETE `/processManager/destroy`
170+
--------
171+
Test list for reference:
152172
- #1357 e2e tests for APIs in CI
153173
- #1147, #1225 for starting QA list

0 commit comments

Comments
 (0)