quickscale-cli 0.73.0__tar.gz → 0.75.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/PKG-INFO +168 -12
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/README.md +166 -10
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/pyproject.toml +7 -2
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/_version.py +1 -1
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/commands/apply_command.py +282 -55
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/commands/deployment_commands.py +53 -15
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/commands/development_commands.py +27 -9
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/commands/module_commands.py +55 -20
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/commands/module_config.py +408 -335
- quickscale_cli-0.75.0/src/quickscale_cli/commands/module_wiring_specs.py +199 -0
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/commands/plan_command.py +193 -76
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/commands/remove_command.py +27 -82
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/commands/status_command.py +6 -3
- quickscale_cli-0.75.0/src/quickscale_cli/module_catalog.py +77 -0
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/schema/config_schema.py +95 -23
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/schema/state_schema.py +32 -4
- quickscale_cli-0.75.0/src/quickscale_cli/utils/module_wiring_manager.py +115 -0
- quickscale_cli-0.75.0/src/quickscale_cli/utils/project_identity.py +99 -0
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/utils/project_manager.py +17 -5
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/utils/railway_utils.py +133 -33
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/__init__.py +0 -0
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/commands/__init__.py +0 -0
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/main.py +0 -0
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/schema/__init__.py +0 -0
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/schema/delta.py +0 -0
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/utils/__init__.py +0 -0
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/utils/dependency_utils.py +0 -0
- {quickscale_cli-0.73.0 → quickscale_cli-0.75.0}/src/quickscale_cli/utils/docker_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: quickscale-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.75.0
|
|
4
4
|
Summary: Command-line interface for QuickScale Django project generator
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Keywords: django,cli,project-generator,saas
|
|
@@ -17,7 +17,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.13
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.14
|
|
19
19
|
Requires-Dist: click (>=8.3.1,<9.0.0)
|
|
20
|
-
Requires-Dist: quickscale-core (>=0.
|
|
20
|
+
Requires-Dist: quickscale-core (>=0.75.0,<0.76.0)
|
|
21
21
|
Project-URL: Documentation, https://github.com/Experto-AI/quickscale/tree/main/docs
|
|
22
22
|
Project-URL: Homepage, https://github.com/Experto-AI/quickscale
|
|
23
23
|
Project-URL: Repository, https://github.com/Experto-AI/quickscale
|
|
@@ -25,6 +25,14 @@ Description-Content-Type: text/markdown
|
|
|
25
25
|
|
|
26
26
|
# 🚀 QuickScale
|
|
27
27
|
|
|
28
|
+
[](https://pypi.org/project/quickscale/)
|
|
29
|
+
[](https://github.com/Experto-AI/quickscale/actions/workflows/ci.yml)
|
|
30
|
+
[](https://github.com/Experto-AI/quickscale/actions/workflows/ci.yml)
|
|
31
|
+
[](https://www.python.org/downloads/)
|
|
32
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
33
|
+
[](https://github.com/Experto-AI/quickscale/releases)
|
|
34
|
+
[](https://github.com/astral-sh/ruff)
|
|
35
|
+
|
|
28
36
|
> **You are here**: **QuickScale README** (Project Overview)
|
|
29
37
|
> **Related docs**: [Start Here](START_HERE.md) | [Glossary](GLOSSARY.md) | [Decisions](docs/technical/decisions.md) | [User Manual](docs/technical/user_manual.md)
|
|
30
38
|
|
|
@@ -93,10 +101,15 @@ See [decisions.md - Glossary section](./docs/technical/decisions.md#document-res
|
|
|
93
101
|
|
|
94
102
|
### Development Flow
|
|
95
103
|
1. `quickscale plan myapp` → Interactive configuration wizard
|
|
96
|
-
2. `
|
|
97
|
-
3.
|
|
98
|
-
4.
|
|
99
|
-
5.
|
|
104
|
+
2. `cd myapp` → Navigate to your project directory
|
|
105
|
+
3. `quickscale apply` → Generates production-ready Django project
|
|
106
|
+
4. Add your custom Django apps and features
|
|
107
|
+
5. Build your unique client application
|
|
108
|
+
6. Deploy to Railway with `quickscale deploy railway` (or use standard Django deployment)
|
|
109
|
+
|
|
110
|
+
`quickscale.yml` now uses explicit identity fields:
|
|
111
|
+
- `project.slug`: filesystem/service slug (for directory names)
|
|
112
|
+
- `project.package`: Python package/import name (for Django module paths)
|
|
100
113
|
|
|
101
114
|
ℹ️ The [MVP Feature Matrix](./docs/technical/decisions.md#mvp-feature-matrix-authoritative) is the single source of truth for what's in or out.
|
|
102
115
|
|
|
@@ -104,6 +117,7 @@ See [decisions.md - Glossary section](./docs/technical/decisions.md#document-res
|
|
|
104
117
|
|
|
105
118
|
Running `quickscale plan myapp && quickscale apply` generates a **production-ready Django project** with:
|
|
106
119
|
|
|
120
|
+
- ✅ **React + shadcn/ui** frontend (TypeScript, Vite, Tailwind CSS) — **NEW in v0.74.0**
|
|
107
121
|
- ✅ **Docker** setup (development + production)
|
|
108
122
|
- ✅ **PostgreSQL** configuration
|
|
109
123
|
- ✅ **Environment-based** settings (dev/prod split)
|
|
@@ -115,6 +129,8 @@ Running `quickscale plan myapp && quickscale apply` generates a **production-rea
|
|
|
115
129
|
- ✅ **Poetry** for dependency management
|
|
116
130
|
- ✅ **One-Command Deployment**: Deploy to Railway with `quickscale deploy railway` - fully automated setup
|
|
117
131
|
|
|
132
|
+
**Alternative**: Use `quickscale plan myapp --theme showcase_html` for pure HTML/CSS (simpler projects).
|
|
133
|
+
|
|
118
134
|
**See the complete project structure:** [scaffolding.md - Generated Project Output](./docs/technical/scaffolding.md#5-generated-project-output)
|
|
119
135
|
|
|
120
136
|
The generated project is **yours to own and modify** - no vendor lock-in, just Django best practices.
|
|
@@ -132,8 +148,148 @@ See [competitive_analysis.md](./docs/overview/competitive_analysis.md) for detai
|
|
|
132
148
|
|
|
133
149
|
---
|
|
134
150
|
|
|
151
|
+
## Installation
|
|
152
|
+
|
|
153
|
+
QuickScale can be installed in two ways:
|
|
154
|
+
|
|
155
|
+
### Method 1: Install from PyPI (Recommended)
|
|
156
|
+
|
|
157
|
+
**Quick install:**
|
|
158
|
+
```bash
|
|
159
|
+
pip install quickscale
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Or with Poetry:**
|
|
163
|
+
```bash
|
|
164
|
+
poetry add quickscale
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Then use directly:**
|
|
168
|
+
```bash
|
|
169
|
+
quickscale plan myapp
|
|
170
|
+
cd myapp
|
|
171
|
+
quickscale apply
|
|
172
|
+
```
|
|
135
173
|
|
|
136
|
-
|
|
174
|
+
### Method 2: Install from Source
|
|
175
|
+
|
|
176
|
+
**For those who prefer building from source:**
|
|
177
|
+
```bash
|
|
178
|
+
git clone https://github.com/Experto-AI/quickscale.git
|
|
179
|
+
cd quickscale
|
|
180
|
+
./scripts/install_global.sh
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Then use directly:**
|
|
184
|
+
```bash
|
|
185
|
+
quickscale plan myapp
|
|
186
|
+
cd myapp
|
|
187
|
+
quickscale apply
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Both methods use the same command syntax:** `quickscale plan`, `quickscale apply`, etc.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
### For Contributors
|
|
195
|
+
|
|
196
|
+
If you want to contribute to QuickScale development, see the [Development Guide](./docs/technical/development.md) for setup instructions.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## 🚀 5-Minute Quickstart
|
|
201
|
+
|
|
202
|
+
**Want to see QuickScale in action right now?** Here's the fastest path to a working Django SaaS:
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
# 1. Install QuickScale
|
|
206
|
+
./scripts/install_global.sh
|
|
207
|
+
|
|
208
|
+
# 2. Create your project configuration
|
|
209
|
+
quickscale plan myapp
|
|
210
|
+
# → Accept defaults: theme (showcase_react), no modules, Docker enabled
|
|
211
|
+
|
|
212
|
+
# 3. Generate and enter the project
|
|
213
|
+
cd myapp
|
|
214
|
+
quickscale apply
|
|
215
|
+
# → Docker services auto-start! (default: docker.start=true)
|
|
216
|
+
|
|
217
|
+
# 4. Setup and verify
|
|
218
|
+
quickscale manage migrate
|
|
219
|
+
quickscale manage createsuperuser
|
|
220
|
+
quickscale ps # Check services are running
|
|
221
|
+
|
|
222
|
+
# 5. Open http://localhost:8000
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**That's it!** 🎉 You now have a production-ready Django SaaS running with Docker + PostgreSQL.
|
|
226
|
+
|
|
227
|
+
**Note**: Services started automatically during `quickscale apply`. No need to run `quickscale up` manually!
|
|
228
|
+
|
|
229
|
+
**Prefer native Python?** After step 3, run:
|
|
230
|
+
```bash
|
|
231
|
+
poetry install
|
|
232
|
+
poetry run python manage.py migrate
|
|
233
|
+
poetry run python manage.py runserver
|
|
234
|
+
# Open http://localhost:8000
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Understanding Docker Auto-Start
|
|
240
|
+
|
|
241
|
+
**When does `quickscale apply` start Docker automatically?**
|
|
242
|
+
|
|
243
|
+
✅ **Services auto-start** (no `quickscale up` needed):
|
|
244
|
+
- First-time project generation
|
|
245
|
+
- When `docker.start: true` in quickscale.yml (**default**)
|
|
246
|
+
- When `--no-docker` flag is NOT used
|
|
247
|
+
|
|
248
|
+
❌ **Manual start required** (`quickscale up` needed):
|
|
249
|
+
- You set `docker.start: false` during `quickscale plan` wizard
|
|
250
|
+
- After stopping services with `quickscale down`
|
|
251
|
+
- When running `quickscale apply --no-docker`
|
|
252
|
+
- Adding modules to existing project (incremental apply)
|
|
253
|
+
|
|
254
|
+
**Example - No manual start needed:**
|
|
255
|
+
```bash
|
|
256
|
+
quickscale plan myapp # Accept defaults (docker.start: true)
|
|
257
|
+
cd myapp
|
|
258
|
+
quickscale apply # ← Docker services auto-start!
|
|
259
|
+
|
|
260
|
+
# Already running - just check status:
|
|
261
|
+
quickscale ps
|
|
262
|
+
curl http://localhost:8000 # ✅ Works immediately
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**Example - Manual start needed:**
|
|
266
|
+
```bash
|
|
267
|
+
quickscale plan myapp
|
|
268
|
+
# During wizard, set: "Docker start? [Y/n]: n"
|
|
269
|
+
cd myapp
|
|
270
|
+
quickscale apply # Services do NOT start
|
|
271
|
+
|
|
272
|
+
# Must start manually:
|
|
273
|
+
quickscale up
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
**Docker configuration options** in quickscale.yml:
|
|
277
|
+
|
|
278
|
+
```yaml
|
|
279
|
+
docker:
|
|
280
|
+
start: true # Auto-start services during apply?
|
|
281
|
+
build: true # Rebuild images? (slower but ensures latest)
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
- `start: true` + `build: true` → Full rebuild + start (slowest, most reliable)
|
|
285
|
+
- `start: true` + `build: false` → Start with cached images (faster)
|
|
286
|
+
- `start: false` → Manual control with `quickscale up`
|
|
287
|
+
|
|
288
|
+
**Need more details?** See [Docker Workflows Guide](./docs/technical/docker_workflows.md) for comprehensive scenarios and troubleshooting.
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Full Documentation & Setup
|
|
137
293
|
|
|
138
294
|
```bash
|
|
139
295
|
# Install QuickScale globally
|
|
@@ -142,11 +298,11 @@ See [competitive_analysis.md](./docs/overview/competitive_analysis.md) for detai
|
|
|
142
298
|
# Create a configuration interactively
|
|
143
299
|
quickscale plan myapp
|
|
144
300
|
# → Select theme, modules, Docker options
|
|
145
|
-
# → Generates quickscale.yml
|
|
301
|
+
# → Generates quickscale.yml in myapp/ directory
|
|
146
302
|
|
|
147
|
-
#
|
|
148
|
-
quickscale apply
|
|
303
|
+
# Navigate to project and execute the configuration
|
|
149
304
|
cd myapp
|
|
305
|
+
quickscale apply
|
|
150
306
|
```
|
|
151
307
|
|
|
152
308
|
**Choose your development workflow:**
|
|
@@ -154,7 +310,7 @@ cd myapp
|
|
|
154
310
|
### Option 1: Docker (Recommended for production parity)
|
|
155
311
|
|
|
156
312
|
```bash
|
|
157
|
-
# Start all services (
|
|
313
|
+
# Start all services (backend + database)
|
|
158
314
|
quickscale up
|
|
159
315
|
|
|
160
316
|
# Run migrations
|
|
@@ -164,7 +320,7 @@ quickscale manage migrate
|
|
|
164
320
|
quickscale manage createsuperuser
|
|
165
321
|
|
|
166
322
|
# View logs
|
|
167
|
-
quickscale logs -f
|
|
323
|
+
quickscale logs -f backend
|
|
168
324
|
|
|
169
325
|
# Open a shell in the container
|
|
170
326
|
quickscale shell
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# 🚀 QuickScale
|
|
2
2
|
|
|
3
|
+
[](https://pypi.org/project/quickscale/)
|
|
4
|
+
[](https://github.com/Experto-AI/quickscale/actions/workflows/ci.yml)
|
|
5
|
+
[](https://github.com/Experto-AI/quickscale/actions/workflows/ci.yml)
|
|
6
|
+
[](https://www.python.org/downloads/)
|
|
7
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
8
|
+
[](https://github.com/Experto-AI/quickscale/releases)
|
|
9
|
+
[](https://github.com/astral-sh/ruff)
|
|
10
|
+
|
|
3
11
|
> **You are here**: **QuickScale README** (Project Overview)
|
|
4
12
|
> **Related docs**: [Start Here](START_HERE.md) | [Glossary](GLOSSARY.md) | [Decisions](docs/technical/decisions.md) | [User Manual](docs/technical/user_manual.md)
|
|
5
13
|
|
|
@@ -68,10 +76,15 @@ See [decisions.md - Glossary section](./docs/technical/decisions.md#document-res
|
|
|
68
76
|
|
|
69
77
|
### Development Flow
|
|
70
78
|
1. `quickscale plan myapp` → Interactive configuration wizard
|
|
71
|
-
2. `
|
|
72
|
-
3.
|
|
73
|
-
4.
|
|
74
|
-
5.
|
|
79
|
+
2. `cd myapp` → Navigate to your project directory
|
|
80
|
+
3. `quickscale apply` → Generates production-ready Django project
|
|
81
|
+
4. Add your custom Django apps and features
|
|
82
|
+
5. Build your unique client application
|
|
83
|
+
6. Deploy to Railway with `quickscale deploy railway` (or use standard Django deployment)
|
|
84
|
+
|
|
85
|
+
`quickscale.yml` now uses explicit identity fields:
|
|
86
|
+
- `project.slug`: filesystem/service slug (for directory names)
|
|
87
|
+
- `project.package`: Python package/import name (for Django module paths)
|
|
75
88
|
|
|
76
89
|
ℹ️ The [MVP Feature Matrix](./docs/technical/decisions.md#mvp-feature-matrix-authoritative) is the single source of truth for what's in or out.
|
|
77
90
|
|
|
@@ -79,6 +92,7 @@ See [decisions.md - Glossary section](./docs/technical/decisions.md#document-res
|
|
|
79
92
|
|
|
80
93
|
Running `quickscale plan myapp && quickscale apply` generates a **production-ready Django project** with:
|
|
81
94
|
|
|
95
|
+
- ✅ **React + shadcn/ui** frontend (TypeScript, Vite, Tailwind CSS) — **NEW in v0.74.0**
|
|
82
96
|
- ✅ **Docker** setup (development + production)
|
|
83
97
|
- ✅ **PostgreSQL** configuration
|
|
84
98
|
- ✅ **Environment-based** settings (dev/prod split)
|
|
@@ -90,6 +104,8 @@ Running `quickscale plan myapp && quickscale apply` generates a **production-rea
|
|
|
90
104
|
- ✅ **Poetry** for dependency management
|
|
91
105
|
- ✅ **One-Command Deployment**: Deploy to Railway with `quickscale deploy railway` - fully automated setup
|
|
92
106
|
|
|
107
|
+
**Alternative**: Use `quickscale plan myapp --theme showcase_html` for pure HTML/CSS (simpler projects).
|
|
108
|
+
|
|
93
109
|
**See the complete project structure:** [scaffolding.md - Generated Project Output](./docs/technical/scaffolding.md#5-generated-project-output)
|
|
94
110
|
|
|
95
111
|
The generated project is **yours to own and modify** - no vendor lock-in, just Django best practices.
|
|
@@ -107,8 +123,148 @@ See [competitive_analysis.md](./docs/overview/competitive_analysis.md) for detai
|
|
|
107
123
|
|
|
108
124
|
---
|
|
109
125
|
|
|
126
|
+
## Installation
|
|
127
|
+
|
|
128
|
+
QuickScale can be installed in two ways:
|
|
129
|
+
|
|
130
|
+
### Method 1: Install from PyPI (Recommended)
|
|
131
|
+
|
|
132
|
+
**Quick install:**
|
|
133
|
+
```bash
|
|
134
|
+
pip install quickscale
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Or with Poetry:**
|
|
138
|
+
```bash
|
|
139
|
+
poetry add quickscale
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Then use directly:**
|
|
143
|
+
```bash
|
|
144
|
+
quickscale plan myapp
|
|
145
|
+
cd myapp
|
|
146
|
+
quickscale apply
|
|
147
|
+
```
|
|
110
148
|
|
|
111
|
-
|
|
149
|
+
### Method 2: Install from Source
|
|
150
|
+
|
|
151
|
+
**For those who prefer building from source:**
|
|
152
|
+
```bash
|
|
153
|
+
git clone https://github.com/Experto-AI/quickscale.git
|
|
154
|
+
cd quickscale
|
|
155
|
+
./scripts/install_global.sh
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Then use directly:**
|
|
159
|
+
```bash
|
|
160
|
+
quickscale plan myapp
|
|
161
|
+
cd myapp
|
|
162
|
+
quickscale apply
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Both methods use the same command syntax:** `quickscale plan`, `quickscale apply`, etc.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
### For Contributors
|
|
170
|
+
|
|
171
|
+
If you want to contribute to QuickScale development, see the [Development Guide](./docs/technical/development.md) for setup instructions.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## 🚀 5-Minute Quickstart
|
|
176
|
+
|
|
177
|
+
**Want to see QuickScale in action right now?** Here's the fastest path to a working Django SaaS:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# 1. Install QuickScale
|
|
181
|
+
./scripts/install_global.sh
|
|
182
|
+
|
|
183
|
+
# 2. Create your project configuration
|
|
184
|
+
quickscale plan myapp
|
|
185
|
+
# → Accept defaults: theme (showcase_react), no modules, Docker enabled
|
|
186
|
+
|
|
187
|
+
# 3. Generate and enter the project
|
|
188
|
+
cd myapp
|
|
189
|
+
quickscale apply
|
|
190
|
+
# → Docker services auto-start! (default: docker.start=true)
|
|
191
|
+
|
|
192
|
+
# 4. Setup and verify
|
|
193
|
+
quickscale manage migrate
|
|
194
|
+
quickscale manage createsuperuser
|
|
195
|
+
quickscale ps # Check services are running
|
|
196
|
+
|
|
197
|
+
# 5. Open http://localhost:8000
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**That's it!** 🎉 You now have a production-ready Django SaaS running with Docker + PostgreSQL.
|
|
201
|
+
|
|
202
|
+
**Note**: Services started automatically during `quickscale apply`. No need to run `quickscale up` manually!
|
|
203
|
+
|
|
204
|
+
**Prefer native Python?** After step 3, run:
|
|
205
|
+
```bash
|
|
206
|
+
poetry install
|
|
207
|
+
poetry run python manage.py migrate
|
|
208
|
+
poetry run python manage.py runserver
|
|
209
|
+
# Open http://localhost:8000
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Understanding Docker Auto-Start
|
|
215
|
+
|
|
216
|
+
**When does `quickscale apply` start Docker automatically?**
|
|
217
|
+
|
|
218
|
+
✅ **Services auto-start** (no `quickscale up` needed):
|
|
219
|
+
- First-time project generation
|
|
220
|
+
- When `docker.start: true` in quickscale.yml (**default**)
|
|
221
|
+
- When `--no-docker` flag is NOT used
|
|
222
|
+
|
|
223
|
+
❌ **Manual start required** (`quickscale up` needed):
|
|
224
|
+
- You set `docker.start: false` during `quickscale plan` wizard
|
|
225
|
+
- After stopping services with `quickscale down`
|
|
226
|
+
- When running `quickscale apply --no-docker`
|
|
227
|
+
- Adding modules to existing project (incremental apply)
|
|
228
|
+
|
|
229
|
+
**Example - No manual start needed:**
|
|
230
|
+
```bash
|
|
231
|
+
quickscale plan myapp # Accept defaults (docker.start: true)
|
|
232
|
+
cd myapp
|
|
233
|
+
quickscale apply # ← Docker services auto-start!
|
|
234
|
+
|
|
235
|
+
# Already running - just check status:
|
|
236
|
+
quickscale ps
|
|
237
|
+
curl http://localhost:8000 # ✅ Works immediately
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
**Example - Manual start needed:**
|
|
241
|
+
```bash
|
|
242
|
+
quickscale plan myapp
|
|
243
|
+
# During wizard, set: "Docker start? [Y/n]: n"
|
|
244
|
+
cd myapp
|
|
245
|
+
quickscale apply # Services do NOT start
|
|
246
|
+
|
|
247
|
+
# Must start manually:
|
|
248
|
+
quickscale up
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**Docker configuration options** in quickscale.yml:
|
|
252
|
+
|
|
253
|
+
```yaml
|
|
254
|
+
docker:
|
|
255
|
+
start: true # Auto-start services during apply?
|
|
256
|
+
build: true # Rebuild images? (slower but ensures latest)
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
- `start: true` + `build: true` → Full rebuild + start (slowest, most reliable)
|
|
260
|
+
- `start: true` + `build: false` → Start with cached images (faster)
|
|
261
|
+
- `start: false` → Manual control with `quickscale up`
|
|
262
|
+
|
|
263
|
+
**Need more details?** See [Docker Workflows Guide](./docs/technical/docker_workflows.md) for comprehensive scenarios and troubleshooting.
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Full Documentation & Setup
|
|
112
268
|
|
|
113
269
|
```bash
|
|
114
270
|
# Install QuickScale globally
|
|
@@ -117,11 +273,11 @@ See [competitive_analysis.md](./docs/overview/competitive_analysis.md) for detai
|
|
|
117
273
|
# Create a configuration interactively
|
|
118
274
|
quickscale plan myapp
|
|
119
275
|
# → Select theme, modules, Docker options
|
|
120
|
-
# → Generates quickscale.yml
|
|
276
|
+
# → Generates quickscale.yml in myapp/ directory
|
|
121
277
|
|
|
122
|
-
#
|
|
123
|
-
quickscale apply
|
|
278
|
+
# Navigate to project and execute the configuration
|
|
124
279
|
cd myapp
|
|
280
|
+
quickscale apply
|
|
125
281
|
```
|
|
126
282
|
|
|
127
283
|
**Choose your development workflow:**
|
|
@@ -129,7 +285,7 @@ cd myapp
|
|
|
129
285
|
### Option 1: Docker (Recommended for production parity)
|
|
130
286
|
|
|
131
287
|
```bash
|
|
132
|
-
# Start all services (
|
|
288
|
+
# Start all services (backend + database)
|
|
133
289
|
quickscale up
|
|
134
290
|
|
|
135
291
|
# Run migrations
|
|
@@ -139,7 +295,7 @@ quickscale manage migrate
|
|
|
139
295
|
quickscale manage createsuperuser
|
|
140
296
|
|
|
141
297
|
# View logs
|
|
142
|
-
quickscale logs -f
|
|
298
|
+
quickscale logs -f backend
|
|
143
299
|
|
|
144
300
|
# Open a shell in the container
|
|
145
301
|
quickscale shell
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "quickscale-cli"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.75.0"
|
|
4
4
|
description = "Command-line interface for QuickScale Django project generator"
|
|
5
5
|
authors = ["Experto AI <victor@experto.ai>"]
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -25,7 +25,7 @@ packages = [{include = "quickscale_cli", from = "src"}]
|
|
|
25
25
|
[tool.poetry.dependencies]
|
|
26
26
|
python = "^3.12"
|
|
27
27
|
click = "^8.3.1"
|
|
28
|
-
quickscale-core = "^0.
|
|
28
|
+
quickscale-core = "^0.75.0"
|
|
29
29
|
|
|
30
30
|
[tool.poetry.group.dev.dependencies]
|
|
31
31
|
# Dev dependencies centralized in root pyproject.toml
|
|
@@ -49,6 +49,7 @@ addopts = [
|
|
|
49
49
|
"--cov=quickscale_cli",
|
|
50
50
|
"--cov-report=term-missing",
|
|
51
51
|
"--cov-report=html",
|
|
52
|
+
"--cov-fail-under=90",
|
|
52
53
|
"-m", "not e2e", # Skip E2E tests by default (run with: pytest -m e2e)
|
|
53
54
|
]
|
|
54
55
|
markers = [
|
|
@@ -57,6 +58,10 @@ markers = [
|
|
|
57
58
|
"e2e: end-to-end tests",
|
|
58
59
|
]
|
|
59
60
|
|
|
61
|
+
[tool.coverage.report]
|
|
62
|
+
fail_under = 90
|
|
63
|
+
# Per-file minimum target: 80% (enforced via code review)
|
|
64
|
+
|
|
60
65
|
# Ruff and mypy configurations centralized in root ruff.toml and mypy.ini
|
|
61
66
|
# Package-specific isort override
|
|
62
67
|
[tool.ruff.lint.isort]
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# Auto-generated by scripts/version_tool.sh
|
|
2
|
-
__version__ = "0.
|
|
2
|
+
__version__ = "0.75.0"
|