expressir 2.1.30 → 2.1.31
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.
- checksums.yaml +4 -4
- data/.github/workflows/docs.yml +98 -0
- data/.github/workflows/links.yml +100 -0
- data/.github/workflows/rake.yml +4 -0
- data/.github/workflows/release.yml +5 -0
- data/.github/workflows/validate_schemas.yml +1 -1
- data/.gitignore +3 -0
- data/.rubocop.yml +1 -1
- data/.rubocop_todo.yml +244 -39
- data/Gemfile +2 -1
- data/README.adoc +621 -54
- data/docs/Gemfile +12 -0
- data/docs/_config.yml +141 -0
- data/docs/_guides/changes/changes-format.adoc +778 -0
- data/docs/_guides/changes/importing-eengine.adoc +898 -0
- data/docs/_guides/changes/index.adoc +396 -0
- data/docs/_guides/changes/programmatic-usage.adoc +1038 -0
- data/docs/_guides/changes/validating-changes.adoc +681 -0
- data/docs/_guides/cli/benchmark-performance.adoc +834 -0
- data/docs/_guides/cli/coverage-analysis.adoc +921 -0
- data/docs/_guides/cli/format-schemas.adoc +547 -0
- data/docs/_guides/cli/index.adoc +8 -0
- data/docs/_guides/cli/managing-changes.adoc +927 -0
- data/docs/_guides/cli/validate-ascii.adoc +645 -0
- data/docs/_guides/cli/validate-schemas.adoc +534 -0
- data/docs/_guides/index.adoc +165 -0
- data/docs/_guides/ler/creating-packages.adoc +664 -0
- data/docs/_guides/ler/index.adoc +305 -0
- data/docs/_guides/ler/loading-packages.adoc +707 -0
- data/docs/_guides/ler/package-formats.adoc +748 -0
- data/docs/_guides/ler/querying-packages.adoc +826 -0
- data/docs/_guides/ler/validating-packages.adoc +750 -0
- data/docs/_guides/liquid/basic-templates.adoc +813 -0
- data/docs/_guides/liquid/documentation-generation.adoc +1042 -0
- data/docs/_guides/liquid/drops-reference.adoc +829 -0
- data/docs/_guides/liquid/filters-and-tags.adoc +912 -0
- data/docs/_guides/liquid/index.adoc +468 -0
- data/docs/_guides/manifests/creating-manifests.adoc +483 -0
- data/docs/_guides/manifests/index.adoc +307 -0
- data/docs/_guides/manifests/resolving-manifests.adoc +557 -0
- data/docs/_guides/manifests/validating-manifests.adoc +713 -0
- data/docs/_guides/ruby-api/formatting-schemas.adoc +605 -0
- data/docs/_guides/ruby-api/index.adoc +257 -0
- data/docs/_guides/ruby-api/parsing-files.adoc +421 -0
- data/docs/_guides/ruby-api/search-engine.adoc +609 -0
- data/docs/_guides/ruby-api/working-with-repository.adoc +577 -0
- data/docs/_pages/data-model.adoc +665 -0
- data/docs/_pages/express-language.adoc +506 -0
- data/docs/_pages/getting-started.adoc +414 -0
- data/docs/_pages/index.adoc +116 -0
- data/docs/_pages/introduction.adoc +256 -0
- data/docs/_pages/ler-packages.adoc +837 -0
- data/docs/_pages/parsers.adoc +683 -0
- data/docs/_pages/schema-manifests.adoc +431 -0
- data/docs/_references/index.adoc +228 -0
- data/docs/_tutorials/creating-ler-package.adoc +735 -0
- data/docs/_tutorials/documentation-coverage.adoc +795 -0
- data/docs/_tutorials/index.adoc +221 -0
- data/docs/_tutorials/liquid-templates.adoc +806 -0
- data/docs/_tutorials/parsing-your-first-schema.adoc +522 -0
- data/docs/_tutorials/querying-schemas.adoc +751 -0
- data/docs/_tutorials/working-with-multiple-schemas.adoc +676 -0
- data/docs/index.adoc +242 -0
- data/docs/lychee.toml +84 -0
- data/examples/demo_ler_usage.sh +86 -0
- data/examples/ler/README.md +111 -0
- data/examples/ler/simple_example.ler +0 -0
- data/examples/ler/simple_schema.exp +33 -0
- data/examples/ler_build.rb +75 -0
- data/examples/ler_cli.rb +79 -0
- data/examples/ler_demo_complete.rb +276 -0
- data/examples/ler_query.rb +91 -0
- data/examples/ler_query_examples.rb +305 -0
- data/examples/ler_stats.rb +81 -0
- data/examples/phase3_demo.rb +159 -0
- data/examples/query_demo_simple.rb +131 -0
- data/expressir.gemspec +2 -0
- data/lib/expressir/cli.rb +12 -4
- data/lib/expressir/commands/manifest.rb +427 -0
- data/lib/expressir/commands/package.rb +1274 -0
- data/lib/expressir/commands/validate.rb +70 -37
- data/lib/expressir/commands/validate_ascii.rb +607 -0
- data/lib/expressir/commands/validate_load.rb +88 -0
- data/lib/expressir/express/formatter.rb +5 -1
- data/lib/expressir/express/formatters/remark_item_formatter.rb +25 -0
- data/lib/expressir/express/parser.rb +33 -0
- data/lib/expressir/manifest/resolver.rb +213 -0
- data/lib/expressir/manifest/validator.rb +195 -0
- data/lib/expressir/model/declarations/entity.rb +6 -0
- data/lib/expressir/model/dependency_resolver.rb +270 -0
- data/lib/expressir/model/indexes/entity_index.rb +103 -0
- data/lib/expressir/model/indexes/reference_index.rb +148 -0
- data/lib/expressir/model/indexes/type_index.rb +149 -0
- data/lib/expressir/model/interface_validator.rb +384 -0
- data/lib/expressir/model/repository.rb +400 -5
- data/lib/expressir/model/repository_validator.rb +295 -0
- data/lib/expressir/model/search_engine.rb +525 -0
- data/lib/expressir/model.rb +4 -94
- data/lib/expressir/package/builder.rb +200 -0
- data/lib/expressir/package/metadata.rb +81 -0
- data/lib/expressir/package/reader.rb +165 -0
- data/lib/expressir/schema_manifest.rb +11 -1
- data/lib/expressir/version.rb +1 -1
- data/lib/expressir.rb +15 -2
- metadata +114 -4
- data/docs/benchmarking.adoc +0 -107
- data/docs/liquid_drops.adoc +0 -1547
|
@@ -0,0 +1,483 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Creating Manifests
|
|
3
|
+
parent: Manifest Workflows
|
|
4
|
+
grand_parent: Guides
|
|
5
|
+
nav_order: 1
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
= Creating Schema Manifests
|
|
9
|
+
|
|
10
|
+
== Purpose
|
|
11
|
+
|
|
12
|
+
This guide shows you how to create schema manifests from root schemas, interpret the output, and handle unresolved schemas.
|
|
13
|
+
|
|
14
|
+
== What You'll Learn
|
|
15
|
+
|
|
16
|
+
* Using the `manifest create` command
|
|
17
|
+
* Understanding resolved vs unresolved schemas
|
|
18
|
+
* Configuring base directories
|
|
19
|
+
* Interpreting creation output
|
|
20
|
+
* Editing manifests to add missing paths
|
|
21
|
+
|
|
22
|
+
== Prerequisites
|
|
23
|
+
|
|
24
|
+
* Expressir installed
|
|
25
|
+
* EXPRESS schema files to package
|
|
26
|
+
* Understanding of link:../../pages/schema-manifests.html[Schema Manifests]
|
|
27
|
+
|
|
28
|
+
== The `manifest create` Command
|
|
29
|
+
|
|
30
|
+
=== Basic Syntax
|
|
31
|
+
|
|
32
|
+
[source,bash]
|
|
33
|
+
----
|
|
34
|
+
expressir manifest create ROOT_SCHEMA [MORE_SCHEMAS...] -o OUTPUT.yaml [OPTIONS]
|
|
35
|
+
----
|
|
36
|
+
|
|
37
|
+
=== Required Parameters
|
|
38
|
+
|
|
39
|
+
`ROOT_SCHEMA`::
|
|
40
|
+
One or more EXPRESS schema files to use as starting points
|
|
41
|
+
+
|
|
42
|
+
The command will parse these files and recursively resolve all their dependencies via `USE FROM` and `REFERENCE FROM` declarations.
|
|
43
|
+
|
|
44
|
+
`-o, --output OUTPUT.yaml`::
|
|
45
|
+
Path where the manifest file will be written
|
|
46
|
+
+
|
|
47
|
+
By convention, use `.yaml` or `.yml` extension.
|
|
48
|
+
|
|
49
|
+
=== Optional Parameters
|
|
50
|
+
|
|
51
|
+
`--base-dirs DIRS`::
|
|
52
|
+
Comma-separated list of directories to search for schema files
|
|
53
|
+
+
|
|
54
|
+
[source,bash]
|
|
55
|
+
----
|
|
56
|
+
--base-dirs /path/to/schemas,/another/path,/third/path
|
|
57
|
+
----
|
|
58
|
+
+
|
|
59
|
+
The resolver searches for schemas using these patterns:
|
|
60
|
+
+
|
|
61
|
+
* `<SCHEMA_ID>.exp` - Direct schema name match
|
|
62
|
+
* `<lowercase_module>/{mim,arm}.exp` - STEP module pattern
|
|
63
|
+
+
|
|
64
|
+
For example, `Activity_method_mim` will match:
|
|
65
|
+
+
|
|
66
|
+
* `Activity_method_mim.exp`
|
|
67
|
+
* `activity_method/mim.exp`
|
|
68
|
+
|
|
69
|
+
`--verbose`::
|
|
70
|
+
Show detailed progress and warnings during resolution
|
|
71
|
+
+
|
|
72
|
+
Highly recommended for understanding what's happening.
|
|
73
|
+
|
|
74
|
+
== Understanding Manifest Creation Output
|
|
75
|
+
|
|
76
|
+
When you run the create command, you'll see output like this:
|
|
77
|
+
|
|
78
|
+
[source,bash]
|
|
79
|
+
----
|
|
80
|
+
$ expressir manifest create schemas/activity/mim.exp \
|
|
81
|
+
-o activity_manifest.yaml \
|
|
82
|
+
--base-dirs ~/iso-10303/schemas \
|
|
83
|
+
--verbose
|
|
84
|
+
|
|
85
|
+
Creating manifest from 1 root schema(s)...
|
|
86
|
+
Base directories:
|
|
87
|
+
- /Users/user/iso-10303/schemas
|
|
88
|
+
Resolving dependencies...
|
|
89
|
+
USE FROM action_schema (in Activity_mim): ✓ action_schema.exp
|
|
90
|
+
REFERENCE FROM basic_attribute_schema (in action_schema): ✓ basic_attribute_schema.exp
|
|
91
|
+
USE FROM Activity_method_mim (in Activity_mim): ✗ not found
|
|
92
|
+
...
|
|
93
|
+
✓ Manifest created: activity_manifest.yaml
|
|
94
|
+
Resolved schemas: 41
|
|
95
|
+
|
|
96
|
+
⚠ Unresolved schemas (1):
|
|
97
|
+
- Activity_method_mim
|
|
98
|
+
|
|
99
|
+
Please edit activity_manifest.yaml and set 'path:' for unresolved schemas
|
|
100
|
+
Then validate with: expressir manifest validate activity_manifest.yaml
|
|
101
|
+
----
|
|
102
|
+
|
|
103
|
+
=== Output Components
|
|
104
|
+
|
|
105
|
+
**Resolution Progress** (`✓` and `✗`)::
|
|
106
|
+
Shows each dependency being resolved
|
|
107
|
+
+
|
|
108
|
+
* `✓` = Schema file found and added to manifest
|
|
109
|
+
* `✗` = Schema file not found in base directories
|
|
110
|
+
|
|
111
|
+
**Statistics**::
|
|
112
|
+
* Total root schemas provided
|
|
113
|
+
* Number of resolved schemas (with paths)
|
|
114
|
+
* Number of unresolved schemas (without paths)
|
|
115
|
+
|
|
116
|
+
**Next Steps**::
|
|
117
|
+
The output tells you what to do next - edit the manifest and validate it.
|
|
118
|
+
|
|
119
|
+
== Understanding Resolved vs Unresolved Schemas
|
|
120
|
+
|
|
121
|
+
=== Resolved Schemas
|
|
122
|
+
|
|
123
|
+
A schema is "resolved" when the system finds its `.exp` file:
|
|
124
|
+
|
|
125
|
+
[source,yaml]
|
|
126
|
+
----
|
|
127
|
+
schemas:
|
|
128
|
+
action_schema:
|
|
129
|
+
path: /Users/user/iso-10303/schemas/resources/action_schema/action_schema.exp
|
|
130
|
+
dependencies:
|
|
131
|
+
- schema_name: basic_attribute_schema
|
|
132
|
+
kind: REFERENCE
|
|
133
|
+
----
|
|
134
|
+
|
|
135
|
+
**Key points:**
|
|
136
|
+
|
|
137
|
+
* Has a `path:` field with full file path
|
|
138
|
+
* Can be used directly in package builds
|
|
139
|
+
* Dependencies are documented but optional
|
|
140
|
+
|
|
141
|
+
=== Unresolved Schemas
|
|
142
|
+
|
|
143
|
+
A schema is "unresolved" when the file cannot be found:
|
|
144
|
+
|
|
145
|
+
[source,yaml]
|
|
146
|
+
----
|
|
147
|
+
schemas:
|
|
148
|
+
Activity_method_mim:
|
|
149
|
+
dependencies:
|
|
150
|
+
- schema_name: action_schema
|
|
151
|
+
kind: USE
|
|
152
|
+
----
|
|
153
|
+
|
|
154
|
+
**Key points:**
|
|
155
|
+
|
|
156
|
+
* Missing `path:` field
|
|
157
|
+
* Will cause warnings during validation
|
|
158
|
+
* Must be manually resolved or removed
|
|
159
|
+
|
|
160
|
+
== Step-by-Step: Creating Your First Manifest
|
|
161
|
+
|
|
162
|
+
=== Step 1: Identify Your Root Schema
|
|
163
|
+
|
|
164
|
+
Find the main schema file you want to package:
|
|
165
|
+
|
|
166
|
+
[source,bash]
|
|
167
|
+
----
|
|
168
|
+
ls schemas/modules/activity/
|
|
169
|
+
# Output: mim.exp arm.exp
|
|
170
|
+
----
|
|
171
|
+
|
|
172
|
+
We'll use `mim.exp` as our root.
|
|
173
|
+
|
|
174
|
+
=== Step 2: Identify Base Directories
|
|
175
|
+
|
|
176
|
+
List directories where referenced schemas might be located:
|
|
177
|
+
|
|
178
|
+
[source]
|
|
179
|
+
----
|
|
180
|
+
schemas/
|
|
181
|
+
├── resources/ ← Resource schemas here
|
|
182
|
+
│ ├── action_schema/
|
|
183
|
+
│ └── approval_schema/
|
|
184
|
+
└── modules/ ← Application modules here
|
|
185
|
+
├── activity/
|
|
186
|
+
└── activity_method/
|
|
187
|
+
----
|
|
188
|
+
|
|
189
|
+
We need both `schemas/resources` and `schemas/modules`.
|
|
190
|
+
|
|
191
|
+
=== Step 3: Run the Create Command
|
|
192
|
+
|
|
193
|
+
[source,bash]
|
|
194
|
+
----
|
|
195
|
+
expressir manifest create schemas/modules/activity/mim.exp \
|
|
196
|
+
-o activity_manifest.yaml \
|
|
197
|
+
--base-dirs schemas/resources,schemas/modules \
|
|
198
|
+
--verbose
|
|
199
|
+
----
|
|
200
|
+
|
|
201
|
+
=== Step 4: Review the Output
|
|
202
|
+
|
|
203
|
+
Check for unresolved schemas:
|
|
204
|
+
|
|
205
|
+
[source]
|
|
206
|
+
----
|
|
207
|
+
✓ Manifest created: activity_manifest.yaml
|
|
208
|
+
Resolved schemas: 41
|
|
209
|
+
|
|
210
|
+
⚠ Unresolved schemas (2):
|
|
211
|
+
- Activity_method_mim
|
|
212
|
+
- geometric_model_schema
|
|
213
|
+
----
|
|
214
|
+
|
|
215
|
+
=== Step 5: Examine the Manifest File
|
|
216
|
+
|
|
217
|
+
Open `activity_manifest.yaml`:
|
|
218
|
+
|
|
219
|
+
[source,yaml]
|
|
220
|
+
----
|
|
221
|
+
name: ''
|
|
222
|
+
version: 1.0.0
|
|
223
|
+
created_at: '2025-12-06T12:00:00Z'
|
|
224
|
+
root_schemas:
|
|
225
|
+
- /full/path/to/schemas/modules/activity/mim.exp
|
|
226
|
+
base_dirs:
|
|
227
|
+
- /full/path/to/schemas/resources
|
|
228
|
+
- /full/path/to/schemas/modules
|
|
229
|
+
schemas:
|
|
230
|
+
Activity_mim:
|
|
231
|
+
path: /full/path/to/schemas/modules/activity/mim.exp
|
|
232
|
+
dependencies:
|
|
233
|
+
- schema_name: action_schema
|
|
234
|
+
kind: USE
|
|
235
|
+
action_schema:
|
|
236
|
+
path: /full/path/to/schemas/resources/action_schema/action_schema.exp
|
|
237
|
+
dependencies: []
|
|
238
|
+
Activity_method_mim: # ← Unresolved!
|
|
239
|
+
dependencies:
|
|
240
|
+
- schema_name: action_schema
|
|
241
|
+
kind: USE
|
|
242
|
+
----
|
|
243
|
+
|
|
244
|
+
== Editing Manifests to Add Missing Paths
|
|
245
|
+
|
|
246
|
+
=== Adding Paths Manually
|
|
247
|
+
|
|
248
|
+
For each unresolved schema, add the `path:` field:
|
|
249
|
+
|
|
250
|
+
[source,yaml]
|
|
251
|
+
----
|
|
252
|
+
schemas:
|
|
253
|
+
Activity_method_mim:
|
|
254
|
+
path: /full/path/to/schemas/modules/activity_method/mim.exp # ← Added
|
|
255
|
+
dependencies:
|
|
256
|
+
- schema_name: action_schema
|
|
257
|
+
kind: USE
|
|
258
|
+
----
|
|
259
|
+
|
|
260
|
+
=== Finding the Right Path
|
|
261
|
+
|
|
262
|
+
**Option 1: Use `find` command**
|
|
263
|
+
|
|
264
|
+
[source,bash]
|
|
265
|
+
----
|
|
266
|
+
find schemas/ -name "mim.exp" | grep -i activity_method
|
|
267
|
+
# Output: schemas/modules/activity_method/mim.exp
|
|
268
|
+
----
|
|
269
|
+
|
|
270
|
+
**Option 2: Use schema name pattern**
|
|
271
|
+
|
|
272
|
+
For `Activity_method_mim`:
|
|
273
|
+
* Remove `_mim` suffix → `Activity_method`
|
|
274
|
+
* Convert to lowercase → `activity_method`
|
|
275
|
+
* Add `/mim.exp` → `activity_method/mim.exp`
|
|
276
|
+
|
|
277
|
+
**Option 3: Search by SCHEMA declaration**
|
|
278
|
+
|
|
279
|
+
[source,bash]
|
|
280
|
+
----
|
|
281
|
+
grep -r "SCHEMA Activity_method_mim" schemas/
|
|
282
|
+
# Shows which file contains this schema
|
|
283
|
+
----
|
|
284
|
+
|
|
285
|
+
=== Best Practices for Manual Editing
|
|
286
|
+
|
|
287
|
+
**Use absolute paths** (recommended)::
|
|
288
|
+
Ensures manifest works from any directory
|
|
289
|
+
+
|
|
290
|
+
[source,yaml]
|
|
291
|
+
----
|
|
292
|
+
path: /Users/user/iso-10303/schemas/modules/activity_method/mim.exp
|
|
293
|
+
----
|
|
294
|
+
|
|
295
|
+
**Or use relative paths** (from manifest location)::
|
|
296
|
+
More portable across systems
|
|
297
|
+
+
|
|
298
|
+
[source,yaml]
|
|
299
|
+
----
|
|
300
|
+
path: ../../schemas/modules/activity_method/mim.exp
|
|
301
|
+
----
|
|
302
|
+
|
|
303
|
+
**Document why schemas are unresolved**::
|
|
304
|
+
Add YAML comments to explain
|
|
305
|
+
+
|
|
306
|
+
[source,yaml]
|
|
307
|
+
----
|
|
308
|
+
future_schema:
|
|
309
|
+
# TODO: Schema not yet released, will be available in v2.0
|
|
310
|
+
dependencies: []
|
|
311
|
+
----
|
|
312
|
+
|
|
313
|
+
== Handling Special Cases
|
|
314
|
+
|
|
315
|
+
=== Circular Dependencies
|
|
316
|
+
|
|
317
|
+
EXPRESS allows schema-level circular references. The manifest creation handles these correctly:
|
|
318
|
+
|
|
319
|
+
[source]
|
|
320
|
+
----
|
|
321
|
+
Looking for: measure_schema.exp
|
|
322
|
+
├─ Finds: representation_schema.exp (depends on measure_schema)
|
|
323
|
+
│ └─ Circular reference detected: measure_schema (skipping, valid)
|
|
324
|
+
└─ Both schemas included in manifest
|
|
325
|
+
----
|
|
326
|
+
|
|
327
|
+
With `--verbose`, you'll see:
|
|
328
|
+
|
|
329
|
+
[source]
|
|
330
|
+
----
|
|
331
|
+
Circular reference detected: measure_schema (valid schema-level circular dependency, skipping)
|
|
332
|
+
----
|
|
333
|
+
|
|
334
|
+
**This is not an error** - both schemas will be included with their paths.
|
|
335
|
+
|
|
336
|
+
=== Multiple Root Schemas
|
|
337
|
+
|
|
338
|
+
You can specify multiple root schemas:
|
|
339
|
+
|
|
340
|
+
[source,bash]
|
|
341
|
+
----
|
|
342
|
+
expressir manifest create \
|
|
343
|
+
schemas/modules/activity/mim.exp \
|
|
344
|
+
schemas/modules/activity/arm.exp \
|
|
345
|
+
schemas/resources/geometry.exp \
|
|
346
|
+
-o combined_manifest.yaml \
|
|
347
|
+
--base-dirs schemas/resources,schemas/modules
|
|
348
|
+
----
|
|
349
|
+
|
|
350
|
+
All dependencies from all roots will be merged into one manifest.
|
|
351
|
+
|
|
352
|
+
=== Schemas in Non-Standard Locations
|
|
353
|
+
|
|
354
|
+
If schemas don't follow naming conventions, you may need to:
|
|
355
|
+
|
|
356
|
+
1. Create the manifest with what can be auto-resolved
|
|
357
|
+
2. Manually add the non-standard schemas
|
|
358
|
+
3. Use the resolve command with additional base directories
|
|
359
|
+
|
|
360
|
+
== Complete Example
|
|
361
|
+
|
|
362
|
+
Here's a complete workflow with real output:
|
|
363
|
+
|
|
364
|
+
[source,bash]
|
|
365
|
+
----
|
|
366
|
+
# Create manifest
|
|
367
|
+
$ expressir manifest create schemas/modules/activity/mim.exp \
|
|
368
|
+
-o activity_manifest.yaml \
|
|
369
|
+
--base-dirs ~/iso-10303/schemas/resources,~/iso-10303/schemas/modules \
|
|
370
|
+
--verbose
|
|
371
|
+
|
|
372
|
+
Creating manifest from 1 root schema(s)...
|
|
373
|
+
Base directories:
|
|
374
|
+
- /Users/user/iso-10303/schemas/resources
|
|
375
|
+
- /Users/user/iso-10303/schemas/modules
|
|
376
|
+
Resolving dependencies...
|
|
377
|
+
USE FROM action_schema (in Activity_mim): ✓ action_schema.exp
|
|
378
|
+
REFERENCE FROM basic_attribute_schema (in action_schema): ✓ basic_attribute_schema.exp
|
|
379
|
+
REFERENCE FROM support_resource_schema (in basic_attribute_schema): ✓ support_resource_schema.exp
|
|
380
|
+
USE FROM Activity_method_mim (in Activity_mim): ✗ not found
|
|
381
|
+
USE FROM basic_attribute_schema (in Activity_mim): ✓ basic_attribute_schema.exp
|
|
382
|
+
Circular reference detected: measure_schema (valid schema-level circular dependency, skipping)
|
|
383
|
+
✓ Manifest created: activity_manifest.yaml
|
|
384
|
+
Resolved schemas: 41
|
|
385
|
+
|
|
386
|
+
⚠ Unresolved schemas (1):
|
|
387
|
+
- Activity_method_mim
|
|
388
|
+
|
|
389
|
+
Please edit activity_manifest.yaml and set 'path:' for unresolved schemas
|
|
390
|
+
Then validate with: expressir manifest validate activity_manifest.yaml
|
|
391
|
+
|
|
392
|
+
# Find the missing schema
|
|
393
|
+
$ find ~/iso-10303/schemas -name "mim.exp" | grep -i activity_method
|
|
394
|
+
/Users/user/iso-10303/schemas/modules/activity_method/mim.exp
|
|
395
|
+
|
|
396
|
+
# Edit the manifest (add path for Activity_method_mim)
|
|
397
|
+
$ vim activity_manifest.yaml
|
|
398
|
+
|
|
399
|
+
# Validate the edited manifest
|
|
400
|
+
$ expressir manifest validate activity_manifest.yaml --verbose
|
|
401
|
+
Validating manifest: activity_manifest.yaml...
|
|
402
|
+
✓ Manifest is valid
|
|
403
|
+
Total schemas: 42
|
|
404
|
+
Resolved schemas: 42
|
|
405
|
+
----
|
|
406
|
+
|
|
407
|
+
== Troubleshooting
|
|
408
|
+
|
|
409
|
+
=== No Schemas Resolved
|
|
410
|
+
|
|
411
|
+
**Problem:** All schemas show as unresolved
|
|
412
|
+
|
|
413
|
+
**Causes:**
|
|
414
|
+
|
|
415
|
+
* Incorrect base directories
|
|
416
|
+
* Non-standard file naming
|
|
417
|
+
* Wrong file extensions
|
|
418
|
+
|
|
419
|
+
**Solutions:**
|
|
420
|
+
|
|
421
|
+
1. Verify base directories exist:
|
|
422
|
+
```bash
|
|
423
|
+
ls -d ~/iso-10303/schemas/resources
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
2. Check file naming:
|
|
427
|
+
```bash
|
|
428
|
+
ls ~/iso-10303/schemas/resources/
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
3. Ensure files have `.exp` extension
|
|
432
|
+
|
|
433
|
+
=== Too Many Circular Dependency Warnings
|
|
434
|
+
|
|
435
|
+
**Problem:** Many circular dependency warnings in output
|
|
436
|
+
|
|
437
|
+
**This is normal** for complex EXPRESS schemas. The warnings are informational and don't prevent manifest creation.
|
|
438
|
+
|
|
439
|
+
**If concerned**, verify with `--verbose` that schemas are being included correctly.
|
|
440
|
+
|
|
441
|
+
=== Schema Exists But Not Found
|
|
442
|
+
|
|
443
|
+
**Problem:** Schema file exists but marked as unresolved
|
|
444
|
+
|
|
445
|
+
**Causes:**
|
|
446
|
+
|
|
447
|
+
* File name doesn't match schema name
|
|
448
|
+
* Missing from base directories
|
|
449
|
+
* Case sensitivity issues
|
|
450
|
+
|
|
451
|
+
**Solutions:**
|
|
452
|
+
|
|
453
|
+
1. Check schema name in file:
|
|
454
|
+
```bash
|
|
455
|
+
grep "^SCHEMA " problem_schema.exp
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
2. Verify file is in base directory:
|
|
459
|
+
```bash
|
|
460
|
+
find ~/iso-10303/schemas -name "problem_schema.exp"
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
3. Add specific directory to base-dirs
|
|
464
|
+
|
|
465
|
+
== Next Steps
|
|
466
|
+
|
|
467
|
+
Now that you can create manifests:
|
|
468
|
+
|
|
469
|
+
**Resolve missing schemas**::
|
|
470
|
+
Use link:resolving-manifests.html[Resolving Manifests] to auto-resolve remaining schemas
|
|
471
|
+
|
|
472
|
+
**Validate your manifest**::
|
|
473
|
+
See link:validating-manifests.html[Validating Manifests] to check for errors
|
|
474
|
+
|
|
475
|
+
**Build a package**::
|
|
476
|
+
Move to link:../../pages/ler-packages.html#building-from-manifests[Building from Manifests]
|
|
477
|
+
|
|
478
|
+
== Bibliography
|
|
479
|
+
|
|
480
|
+
* link:../../pages/schema-manifests.html#creating-a-manifest-from-a-root-schema[Manifest Creation Reference]
|
|
481
|
+
* link:resolving-manifests.html[Resolving Manifests]
|
|
482
|
+
* link:validating-manifests.html[Validating Manifests]
|
|
483
|
+
* link:index.html[Manifest Workflows Overview]
|