Skip to content

Commit 36b408c

Browse files
committed
docs: mise à jour du README avec les commandes réelles et synchronisation UX
1 parent 3246709 commit 36b408c

4 files changed

Lines changed: 60 additions & 111 deletions

File tree

README.md

Lines changed: 36 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Build Python apps with a predictable workflow, a configurable pre-compile pipeli
2323
- **Structured CLI**: explicit `gui`, `engine`, `workspace`, `doctor`, and `scaffold` commands, with JSON output on key headless paths.
2424
- **Standalone tools**: dedicated BCASL and Engines managers, plus CLI entry points and dry-run support.
2525
- **Extensible SDKs**: create new engines and BCASL plugins with the provided SDKs.
26+
- **Theme-aware dynamic colors and SVG icons**: 100% dynamic UI integration using QPalette and themed SVGs.
2627
- **Customizable**: theming and translations out of the box.
2728

2829
---
@@ -49,6 +50,8 @@ python pycompiler_ark.py
4950
python -m pycompiler_ark
5051
```
5152

53+
*Note: The application features a centered and auto-scaled splash screen for a professional startup experience.*
54+
5255
---
5356

5457
## How it works
@@ -75,106 +78,56 @@ Compilation (PyInstaller / Nuitka / cx_Freeze)
7578

7679
---
7780

78-
## CLI shortcuts
79-
80-
```bash
81-
python pycompiler_ark.py --help
82-
python pycompiler_ark.py --version
83-
python pycompiler_ark.py --info
84-
python pycompiler_ark.py --cli
85-
python pycompiler_ark.py gui main --ide
86-
python pycompiler_ark.py gui main --classic --no-splash
87-
python pycompiler_ark.py gui bcasl /path/to/workspace
88-
python pycompiler_ark.py gui engines /path/to/workspace
89-
python pycompiler_ark.py engine list --json
90-
python pycompiler_ark.py engine doctor nuitka src/main.py --json
91-
python pycompiler_ark.py workspace inspect . --json
92-
python pycompiler_ark.py doctor --json
93-
python pycompiler_ark.py init /path/to/workspace --json
94-
python pycompiler_ark.py init /path/to/workspace --with-venv --json
95-
python pycompiler_ark.py config-auto /path/to/workspace --json
96-
python pycompiler_ark.py cfg-auto /path/to/workspace --json
97-
python pycompiler_ark.py ws init /path/to/workspace --json
98-
python pycompiler_ark.py check /path/to/workspace --json
99-
python pycompiler_ark.py scaffold engine demo_engine --json
100-
python pycompiler_ark.py unload --json
101-
```
102-
103-
### CLI groups
104-
105-
- `gui`: launch graphical entrypoints explicitly
106-
- `engine`: inspect engines, run compatibility checks, dry-run or compile
107-
- `bcasl`: BCASL GUI or delegated headless actions
108-
- `workspace`: inspect the current workspace and resolved entrypoint
109-
- `init`: initialize a workspace directory and base configs (`ark.yml`, `bcasl.yml`, `.ark/pref.json`)
110-
- `--with-venv`: also create/reuse a local workspace venv and set it in `.ark/pref.json`
111-
- `config-auto`: auto-detect entrypoint and update workspace config
112-
- `cfg-auto`: short alias for `config-auto`
113-
- `ws`: short group alias for workspace bootstrap (`ws init`, `ws config-auto`)
114-
- `check`: strict CI/CD preflight shortcut
115-
- `doctor`: global diagnostics snapshot
116-
- `scaffold`: generate starter templates for engines and plugins
117-
118-
### Headless note
119-
120-
The CLI router no longer bootstraps the main Qt application for headless paths such as:
81+
## CLI Usage
12182

122-
- `--help`
123-
- `--version`
124-
- `--info`
125-
- `--cli`
126-
- `unload`
127-
- `workspace ...`
83+
The ARK CLI provides a structured set of commands for workspace management, building, and developer tasks.
12884

129-
Structured command groups such as `engine`, `bcasl`, `doctor`, and `scaffold`
130-
also avoid launching the main GUI entrypoint.
85+
### Core Commands
13186

132-
This keeps scripting and CI workflows friendly on machines where no GUI window
133-
should be opened.
134-
135-
### CI-friendly exit codes
136-
137-
- `0`: success
138-
- `3`: precheck failure (`check --strict`)
139-
- `4`: invalid or missing workspace
140-
- `5`: engine not found
87+
```bash
88+
# Workspace Initialization
89+
python pycompiler_ark.py init --entry src/main.py [--icon icon.ico] [--with-venv]
14190

142-
These are the stable codes to key on in CI for the structured headless commands.
91+
# Building
92+
python pycompiler_ark.py build # Build using ark.yml engine
93+
python pycompiler_ark.py build --engine nuitka # Override engine
94+
python pycompiler_ark.py build --lock latest.lock # Rebuild from lock file
14395

144-
### Dedicated CLI quick commands
96+
# Execution
97+
python pycompiler_ark.py run bcasl # Execute BCASL pipeline
98+
python pycompiler_ark.py run bcasl --timeout 30 # With custom timeout
14599

146-
```text
147-
ark-cli> main
148-
ark-cli> main --ide-gui
149-
ark-cli> bcasl run ~/my_workspace --timeout 30
150-
ark-cli> engine dry-run pyinstaller src/main.py
151-
ark-cli> engine list
152-
ark-cli> unload
100+
# GUI
101+
python pycompiler_ark.py gui # Launch modern IDE-like GUI
102+
python pycompiler_ark.py gui --legacy # Launch classic GUI
153103
```
154104

155-
### GUI entrypoints
105+
### Developer Commands
156106

157107
```bash
158-
python pycompiler_ark.py gui main --ide
159-
python pycompiler_ark.py gui bcasl
160-
python pycompiler_ark.py gui engines
161-
```
108+
# Discovery
109+
python pycompiler_ark.py list engines # List available engines
110+
python pycompiler_ark.py list plugins # List available BCASL plugins
111+
112+
# Configuration (User Paths)
113+
python pycompiler_ark.py set user-engine-dir /path # Set custom engine directory
114+
python pycompiler_ark.py get user-engine-dir # Retrieve path
162115

163-
### Standalone modules
116+
# Scaffolding
117+
python pycompiler_ark.py scaffold engine demo # Create a new engine template
118+
python pycompiler_ark.py scaffold plugin-bcasl demo # Create a new BCASL plugin template
119+
```
164120

121+
### JSON Output
122+
For CI/CD and scripting, key commands support the `--json` flag to return machine-readable results:
165123
```bash
166-
python -m OnlyMod.BcaslOnlyMod --gui
167-
python -m OnlyMod.BcaslOnlyMod --list-plugins
168-
python -m OnlyMod.BcaslOnlyMod --run --workspace /path/to/workspace
169-
python -m OnlyMod.EngineOnlyMod
170-
python -m OnlyMod.EngineOnlyMod --list-engines
171-
python -m OnlyMod.EngineOnlyMod --check-compat nuitka
172-
python -m OnlyMod.EngineOnlyMod --engine nuitka -f script.py --dry-run
124+
python pycompiler_ark.py build --json
125+
python pycompiler_ark.py init --entry main.py --json
173126
```
174127

175128
---
176129

177-
## Documentation
130+
## How it works
178131

179132
- [Changelog](CHANGELOG.md)
180133
- [Release process](docs/release_process.md)

docs/architecture.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Responsibilities:
4040
- map Qt widgets to Python attributes
4141
- connect UI actions to shared application logic
4242
- support both classic and IDE-like layouts
43-
- apply theme and translation behavior
43+
- apply 100% dynamic theme and translation behavior (QPalette + themed SVG icons)
4444

4545
### 3. Workspace and environment management
4646

docs/dev_docs/Bcasl_Ux_design_review.md

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,42 +13,37 @@ L'UI BCASL est un éditeur visuel du pipeline qui respecte les contraintes du sy
1313
· Lecture seule : la catégorie d'un plugin ne peut pas être changée
1414
· Ordre modifiable : à l'intérieur d'une section (même catégorie)
1515
· Guidage : plages de priorité recommandées
16-
· Sauvegarde : tout est écrit dans bcasl.yml
16+
· Sauvegarde : tout est écrit dans bcasl.yml
17+
· Thème : 100% dynamique via QPalette et icônes SVG thémées
1718

1819
---
1920

2021
2. Vue principale
2122

2223
```
2324
┌─────────────────────────────────────────────────────────────────────┐
24-
│ BCASL Pipeline                                              [Save]
25+
│ BCASL Pipeline                                                     
2526
├─────────────────────────────────────────────────────────────────────┤
2627
│                                                                     │
27-
Validation (10-19)                                               │
28+
[✓] Validation (10-19)         (QGroupBox collapsible)              │
2829
│   ┌─────────────────────────────────────────────────────────────┐  │
29-
│   │ ☑ syntax_checker               priority [12]  [] [] (drag)│  │
30-
│   │ ☑ type_checker                 priority [15]  [] []       │  │
30+
│   │ ☑ syntax_checker               priority [12]  [˄] [˅] (svg) │  │
31+
│   │ ☑ type_checker                 priority [15]  [˄] [˅]       │  │
3132
│   └─────────────────────────────────────────────────────────────┘  │
3233
│                                                                     │
33-
Transformation (20-39)                                           │
34+
[✓] Transformation (20-39)                                          │
3435
│   ┌─────────────────────────────────────────────────────────────┐  │
35-
│   │ ☑ minifier                     priority [25]  [] []       │  │
36+
│   │ ☑ minifier                     priority [25]  [˄] [˅]       │  │
3637
│   └─────────────────────────────────────────────────────────────┘  │
3738
│                                                                     │
38-
Obfuscation (40-59)                                              │
39+
[✓] Obfuscation (40-59)                                            │
3940
│   ┌─────────────────────────────────────────────────────────────┐  │
40-
│   │ ☐ pyobfus                      priority [45]  [] []       │  │
41-
│   │ ⚠️ ☑ byteshift                  priority [22]  [] []       │  │
41+
│   │ ☐ pyobfus                      priority [45]  [˄] [˅]       │  │
42+
│   │ ⚠️ ☑ byteshift                  priority [22]  [˄] [˅]       │  │
4243
│   │       ↑ hors plage (40-59)                                   │  │
4344
│   └─────────────────────────────────────────────────────────────┘  │
44-
│                                                                     │
45-
│ ▼ Preparation (60-79)                                              │
46-
│   ┌─────────────────────────────────────────────────────────────┐  │
47-
│   │ ☐ signer                       priority [70]  [↑] [↓]       │  │
48-
│   └─────────────────────────────────────────────────────────────┘  │
49-
│                                                                     │
5045
├─────────────────────────────────────────────────────────────────────┤
51-
                                        [Cancel]  [Save to bcasl.yml]│
46+
[ ] Expert mode                         [Cancel]  [Save to bcasl.yml]│
5247
└─────────────────────────────────────────────────────────────────────┘
5348
```
5449

@@ -59,18 +54,17 @@ L'UI BCASL est un éditeur visuel du pipeline qui respecte les contraintes du sy
5954
3.1 Section (catégorie)
6055

6156
Élément Rôle
62-
▼ Validation (10-19) Titre de section (collapsible)
57+
[] Titre (QGroupBox) Titre de section + toggle natif (collapsible)
6358
Plage de priorité Indique les bornes recommandées
64-
Background Léger (gris très clair)
59+
Background Dynamique (QPalette.AlternateBase)
6560

6661
3.2 Ligne plugin
6762

6863
Élément Rôle
6964
☑ Checkbox enabled
7065
Nom plugin.name
7166
priority [22] Label + champ de saisie (spinbox)
72-
[] [] Boutons pour réorganiser
73-
(drag) Poignée pour drag & drop
67+
[˄] [˅] (svg) Boutons SVG thémés pour réorganiser
7468
⚠️ Warning si priorité hors plage
7569

7670
---
@@ -80,17 +74,17 @@ priority [22] Label + champ de saisie (spinbox)
8074
4.1 Réorganisation (même section)
8175

8276
Action Résultat
83-
Cliquer [] Échange avec plugin au-dessus (même section)
84-
Cliquer [] Échange avec plugin en-dessous
85-
Drag & drop Déplace dans la même section
77+
Cliquer [˄] Échange avec plugin au-dessus (même section)
78+
Cliquer [˅] Échange avec plugin en-dessous
79+
Drag & drop Déplace dans la même section (logiciel)
8680

8781
→ Si drop dans une autre section, opération annulée + message d'erreur.
8882

8983
4.2 Modification priorité
9084

9185
Action Résultat
9286
Changer spinbox Met à jour la priorité
93-
Si hors plage Affiche ⚠️ + tooltip explicatif
87+
Si hors plage Affiche ⚠️ + tooltip explicatif + style warning
9488
Sauvegarde Écrit la priorité (même hors plage)
9589

9690
4.3 Activation/désactivation
@@ -123,9 +117,9 @@ Use 'Expert mode' to disable warnings.
123117

124118
5.3 Priorité hors plage (warning visuel)
125119

126-
· Fond de ligne : #FFF3CD (jaune pâle)
120+
· Fond de ligne : Dynamique (ex: ambre sombre en dark mode)
127121
· Icône ⚠️ devant le nom
128-
· Bordure orange sur le spinbox
122+
· Bordure orange sur le spinbox (adaptée au thème)
129123

130124
---
131125

docs/releases/v1.0.0.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
## Highlights
44
- IDE-like GUI stable with full i18n parity.
5+
- Theme-aware dynamic styling (QPalette) and themed SVG icons integration.
56
- Complete headless CLI (engine compile/dry-run, workspace apply, venv management).
67
- BCASL plugins runtime + headless execution.
78
- AdvancedConfigEditor fully independent (LCS-based diff from scratch).
89
- Workspace persistence (.ark/pref.json, per-engine configs).
910
- Production-ready CI/CD (docs/ci_cd_ark_cli.md).
11+
- Improved startup experience with centered and auto-scaled splash screen.
1012

1113
## Completed Todos
1214
See root TODO.md for details.

0 commit comments

Comments
 (0)