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
docs: expand version compatibility page with BSON differences and version gates
Rewrite the version compatibility documentation to cover:
- Accurate feature matrix split by 9.x/10.x/11.0+/11.6+ requirements
- BSON structural differences across versions (view entities, page
parameters, design properties, association storage)
- Widget template versioning with MPK augmentation explanation
- Version gate directive syntax (-- @Version:) for MDL scripts
- Nightly test coverage across 10.24, 11.6, 11.8
- Known error codes when features are used on incompatible versions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
| 11.6 | v2 |**Yes**| Primary development target |
17
+
| 11.8 | v2 |**Yes**| Latest tested |
18
18
19
19
## MPR Format Versions
20
20
@@ -32,31 +32,125 @@ mxcli supports Mendix Studio Pro versions **8.x through 11.x**.
32
32
33
33
The library auto-detects the format. No configuration is needed.
34
34
35
-
## Widget Template Versions
35
+
## Feature Availability by Version
36
+
37
+
Not all MDL features work on all Mendix versions. The BSON document structure changes across versions, and some features were introduced in specific releases.
38
+
39
+
### Core Features (all supported versions)
36
40
37
-
Pluggable widget templates are versioned by Mendix release. The embedded templates cover:
41
+
| Feature | Minimum Version | Notes |
42
+
|---------|----------------|-------|
43
+
| Domain models (entities, attributes, associations) | 9.0 | Full CRUD support |
| 10.6.0 | DataGrid2, ComboBox, Gallery, and others |
42
-
| 11.6.0 | Updated templates for current widgets |
52
+
### Features Requiring Mendix 10.x+
43
53
44
-
When creating pages with pluggable widgets, the library selects the template matching the project's Mendix version, falling back to the nearest earlier version if an exact match is not available.
54
+
| Feature | Minimum Version | Notes |
55
+
|---------|----------------|-------|
56
+
| Business events | 10.0 | Event service definitions |
| Calculated attributes | 10.x | CALCULATED BY microflow |
77
+
| Portable app format | 11.6 | New deployment format |
78
+
79
+
## BSON Differences Across Versions
80
+
81
+
The Mendix metamodel evolves across versions. The reflection data shows ~42% type growth from Mendix 9.0 to 11.6. Key structural differences:
82
+
83
+
### View Entities (10.x vs 11.x)
84
+
85
+
View entities exist in both 10.18+ and 11.x, but the BSON structure differs. Mendix 10.x stores view entities without the OQL query field that 11.x requires. Writing a view entity with 11.x BSON to a 10.x project causes CE6775.
86
+
87
+
### Page Parameters (10.x vs 11.x)
88
+
89
+
Mendix 11.0 changed how page parameters are stored in BSON. The `Variable` property in page parameter mappings uses a different structure. Writing 11.x-style page parameters to a 10.x project causes an `InvalidOperationException`.
90
+
91
+
### Design Properties (Atlas v2 vs v3)
92
+
93
+
Atlas UI v3 (Mendix 11.0+) introduced new design properties like "Card style" and "Disable row wrap" for containers. These don't exist in the Atlas v2 theme bundled with 10.x, causing CE6083.
94
+
95
+
### Widget Type Definitions
96
+
97
+
Pluggable widget PropertyTypes change between Mendix versions. A widget template extracted from 11.6 may have more or fewer properties than the widget installed in a 10.24 project. The [widget augmentation system](../internals/widget-templates.md) handles this by reconciling templates against the project's `.mpk` files.
98
+
99
+
## Widget Template Versions
100
+
101
+
Embedded widget templates are extracted from Mendix 11.6 and cover:
When opening a project, mxcli checks the project's `widgets/` folder for `.mpk` packages. If a widget's installed version differs from the embedded template, the augmentation system:
117
+
118
+
1. Extracts the XML property definition from the `.mpk`
119
+
2. Adds properties found in `.mpk` but missing from the template
120
+
3. Removes properties in the template but not in the `.mpk`
121
+
4. Preserves the BSON structure (IDs, nesting, cross-references)
122
+
123
+
This reduces CE0463 ("widget definition changed") errors from widget version drift. See [Widget Templates](../internals/widget-templates.md) for details.
124
+
125
+
## Version Gates in MDL Scripts
126
+
127
+
MDL scripts can use `-- @version:` directives to gate sections by Mendix version. This is used in the doctype integration tests to skip features incompatible with older versions:
0 commit comments