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

Commit c48c7ee

Browse files
committed
v1.0.1 QA template (22 Oct 2024)
1 parent 90bcb79 commit c48c7ee

File tree

1 file changed

+153
-0
lines changed

1 file changed

+153
-0
lines changed
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
---
2+
name: QA Checklist
3+
about: QA Checklist
4+
title: 'QA: [VERSION]'
5+
labels: 'type: QA checklist'
6+
assignees: ''
7+
---
8+
**QA details:**
9+
10+
Version: `v1.0.x-xxx`
11+
12+
OS (select one)
13+
- [ ] Windows 11 (online & offline)
14+
- [ ] Ubuntu 24, 22 (online & offline)
15+
- [ ] Mac Silicon OS 14/15 (online & offline)
16+
- [ ] Mac Intel (online & offline)
17+
18+
--------
19+
20+
# 1. Manual QA
21+
## Installation
22+
- [ ] it should install with network installer
23+
- [ ] it should install with local installer
24+
- [ ] it should install 2 binaries (cortex and cortex-server)
25+
- [ ] it should install with correct folder permissions
26+
- [ ] it should install with folders: /engines /logs (no /models folder until model pull)
27+
28+
29+
## Data/Folder structures
30+
- [ ] cortex.so models are stored in `cortex.so/model_name/variants/`, with .gguf and model.yml file
31+
- [ ] 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+
35+
36+
## Cortex Update
37+
- [ ] cortex -v should check output current version and check for updates
38+
- [ ] 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
43+
44+
## Overall / App Shell
45+
- [ ] cortex returns helpful text in a timely* way
46+
- [ ] `cortex` or `cortex -h` displays help commands
47+
- [ ] CLI commands should start the API server, if not running [WIP `cortex pull`, `cortex engines install`]
48+
- [ ] it should correctly log to cortex-cli.log and cortex.log
49+
- [ ] There should be no stdout from inactive shell session
50+
51+
## Engines
52+
- [ ] 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)
56+
- [ ] it should get engines
57+
- [ ] it should uninstall engines
58+
- [ ] it should gracefully continue engine installation if interrupted halfway (partial download)
59+
- [ ] it should gracefully handle when users try to CRUD incompatible engines (No variant found for xxx)
60+
- [ ] it should run trtllm models on trt-llm [WIP, not tested]
61+
- [ ] it shoud handle engine variants [WIP, not tested]
62+
- [ ] it should update engines versions [WIP, not tested]
63+
64+
## 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
69+
- [ ] `cortex ps` should return server status and running models (or no model loaded)
70+
71+
## Model Pulling
72+
- [ ] Pulling a model should pull .gguf and model.yml file
73+
- [ ] Model download progress should appear (with accurate %, total time, download size, speed)
74+
### cortex.so
75+
- [ ] it should pull by built in model_ID
76+
- [ ] pull by model_ID should recommend default variant at the top (set in HF model.yml)
77+
- [ ] it should pull by built-in model_id:variant
78+
### huggingface.co
79+
- [ ] it should pull by HF repo/model ID
80+
- [ ] it should pull by full HF url (ending in .gguf)
81+
### Interrupted Download
82+
- [ ] it should allow user to interrupt / stop download
83+
- [ ] pulling again after interruption should accurately calculates remainder of model file size neeed to be downloaded (`Found unfinished download! Additional XGB needs to be downloaded`)
84+
- [ ] it should allow to continue downloading the remainder after interruption
85+
86+
## Model Management
87+
- [ ] it should list downloaded models
88+
- [ ] it should get info of a local model
89+
- [ ] it should update models
90+
- [ ] it should delete a model
91+
- [ ] 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)
93+
94+
## Model Running
95+
- [ ] `cortex run <cortexso model>` - if no local models detected, shows `pull` model menu
96+
- [ ] `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
98+
- [ ] `cortex run <invalid model id>` should return gracefully `Model not found!`
99+
- [ ] run should autostart server
100+
- [ ] `cortex run <model>` starts interactive chat (by default)
101+
- [ ] `cortex run <model> -d` runs in detached mode
102+
- [ ] `cortex models start <model>`
103+
- [ ] terminate StdIn or `exit()` should exit interactive chat
104+
105+
## Hardware Detection / Acceleration [WIP]
106+
- [ ] it should auto offload max ngl
107+
- [ ] it should correctly detect available GPUs
108+
- [ ] it should gracefully detect missing dependencies/drivers
109+
CPU Extension (e.g. AVX-2, noAVX, AVX-512)
110+
GPU Acceleration (e.g. CUDA11, CUDA12, Vulkan, sycl, etc)
111+
112+
## Uninstallation / Reinstallation
113+
- [ ] it should uninstall 2 binaries (cortex and cortex-server)
114+
- [ ] it should uninstall with 2 options to delete or not delete data folder
115+
- [ ] it should gracefully uninstall when server is still running
116+
- [ ] uninstalling should not leave any dangling files
117+
- [ ] uninstalling should not leave any dangling processes
118+
- [ ] it should reinstall without having conflict issues with existing cortex data folders
119+
120+
--
121+
# 2. API QA
122+
123+
## Overall API
124+
- [ ] API page is updated at localhost:port endpoint (upon `cortex start`)
125+
- [ ] OpenAI compatibility for below
126+
- [ ] https://cortex.so/api-reference is updated
127+
128+
## Endpoints
129+
### Chat Completions
130+
- [ ] POST `v1/chat/completions`
131+
132+
### 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:
152+
- #1357 e2e tests for APIs in CI
153+
- #1147, #1225 for starting QA list

0 commit comments

Comments
 (0)