You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,8 @@ Build Python apps with a predictable workflow, a configurable pre-compile pipeli
19
19
-**BuildContext-driven builds**: engines receive a normalized project context, abstracting away the source of configuration (YAML vs. Lock files).
20
20
-**Multi-engine support**: switch between PyInstaller, Nuitka, and cx_Freeze seamlessly.
21
21
-**Extensible SDKs**: create new engines and BCASL plugins using simplified, consolidated APIs.
22
-
-**Auto-detection for tricky dependencies**: engine-specific auto-args based on requirements or import scanning.
22
+
-**Zero-Config auto-mapping for 80+ libraries**: automatic import detection covers major AI, modern web, data science, and automation stacks, with engine-specific arguments applied without manual tuning.
23
+
-**Simplified build inclusions**: `build.include` forces package bundling and ARK translates it automatically per engine.
23
24
-**Workspace-first UI**: filter files, manage exclusions, and follow progress and logs in one place.
24
25
-**Venv-aware execution**: engines can use the project virtual environment automatically.
25
26
-**Theme-aware dynamic UI**: 100% dynamic integration using QPalette and themed SVGs.
Copy file name to clipboardExpand all lines: docs/ark_main_config.md
+34-3Lines changed: 34 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,8 @@ build:
22
22
engine: pyinstaller
23
23
output: dist/
24
24
icon: assets/icon.ico
25
+
include:
26
+
- "ma_bibliotheque"
25
27
exclude:
26
28
- "tkinter"
27
29
- "unittest"
@@ -64,12 +66,37 @@ Determines which **Python packages/modules** are ignored by the compiler.
64
66
- **Restriction**: This is **NOT** a general folder excluder. It should **NEVER** contain technical patterns like `*.pyc`, `__pycache__`, or `.git`. These are handled automatically by the Core or should be hidden via `workspace.exclude`.
65
67
66
68
⚠️ **CRITICAL WARNING: Name Collisions**
67
-
Patterns in `build.exclude` are passed to engines (like Nuitka or PyInstaller) as **logical module exclusions**.
69
+
Entries in `build.exclude` are passed to engines (like Nuitka or PyInstaller) as **logical package exclusions**.
68
70
69
71
If you have a local folder named `venv` (your virtual environment) and you add `venv` to `build.exclude` thinking you are excluding a directory, you are actually telling the compiler: *"Do not bundle the Python package named 'venv'"*.
70
72
If your project or any dependency uses `import venv` (the standard library), your application **will crash** because the library was removed from the bundle.
71
73
72
-
**Rule of thumb**: Only use `build.exclude` for real Python modules you want to remove (e.g., `tkinter`, `unittest`, or a specific large sub-package). For everything else, use `workspace.exclude`.
74
+
**Rule of thumb**: Only use `build.exclude` for real Python packages you want to remove (e.g., `tkinter`, `unittest`, or a specific large sub-package). For everything else, use `workspace.exclude`.
75
+
76
+
## Build Inclusions vs Build Exclusions
77
+
78
+
ARK v1.5.0 introduces a dedicated `build.include` section to force package inclusion during compilation.
79
+
80
+
```yaml
81
+
build:
82
+
include:
83
+
- "ma_bibliotheque"
84
+
- "langchain"
85
+
exclude:
86
+
- "unittest"
87
+
```
88
+
89
+
- `build.include`forces Python packages to be bundled even when automatic detection is not enough.
90
+
- `build.exclude`ignores Python packages that should not be bundled.
91
+
- `build.include`is the complement of `build.exclude`, not a UI filter and not a generic file/folder rule.
92
+
93
+
ARK translates `build.include` automatically according to the selected engine:
94
+
95
+
- Nuitka: `--include-package`
96
+
- PyInstaller: `--collect-all`
97
+
- cx_Freeze: `--includes`
98
+
99
+
This keeps the configuration zero-config for the user while preserving engine-specific control under the hood.
73
100
74
101
## Build Entrypoint
75
102
@@ -95,12 +122,13 @@ The fields in `ark.yml` are mapped directly to the `BuildContext` data structure
95
122
| :--- | :--- |
96
123
| `project.name` | `project_name` |
97
124
| `project.entry` | `entry_point` |
125
+
| `build.include` | `include_packages` |
98
126
| `build.exclude` | `exclude_patterns` |
99
127
| `build.output` | `output_dir` |
100
128
| `build.data` | `data_mappings` |
101
129
| `build.icon` | `icon` |
102
130
103
-
> **Note**: `workspace.exclude` is used only for the GUI workspace view filter. `build.exclude` determines which files are ignored during compilation and BCASL phases.
131
+
> **Note**: `workspace.exclude` is used only for the GUI workspace view filter. `build.exclude` determines which Python packages are ignored during compilation and BCASL phases, while `build.include` forces package bundling when needed.
104
132
105
133
## Plugins Configuration
106
134
@@ -116,3 +144,6 @@ If `bcasl_enabled` is set to `false`, the entire pipeline is skipped during comp
116
144
## Advanced Config Editor (GUI)
117
145
118
146
The main GUI has a **Configurations avancées** button that opens a dedicated editor for `ark.yml` managed by PyCompiler ARK.
147
+
148
+
- A dedicated **Inclusions Build** field is now available for `build.include`.
149
+
- The **Exclusions Build** label now explicitly means "Python packages to ignore" to avoid ambiguity with workspace filters.
0 commit comments