generated from finos/software-project-blueprint
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmorphir.toml
More file actions
161 lines (140 loc) · 5.63 KB
/
morphir.toml
File metadata and controls
161 lines (140 loc) · 5.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# Morphir Configuration File
# This file configures the Morphir tooling for your project.
#
# Configuration is loaded from multiple sources in priority order:
# 1. Built-in defaults (lowest priority)
# 2. System config: /etc/morphir/morphir.toml
# 3. Global user config: ~/.config/morphir/morphir.toml
# 4. This project config: morphir.toml or .morphir/morphir.toml
# 5. User override: .morphir/morphir.user.toml (gitignored)
# 6. Environment variables: MORPHIR_* (highest priority)
#
# All values in this file can be overridden by environment variables:
# MORPHIR_LOGGING_LEVEL=debug
# MORPHIR_CACHE_ENABLED=false
# =============================================================================
# Morphir Core Settings
# =============================================================================
[morphir]
# Morphir IR version constraint for this project.
# Uses semver syntax: "3.0.0", "^3.0.0", ">=2.0.0, <4.0.0"
# Leave empty to accept any version.
version = "^3.0.0"
# =============================================================================
# Workspace Settings
# =============================================================================
[workspace]
# Workspace root directory. Usually left empty to use the directory
# containing this configuration file.
root = ""
# Output directory for generated artifacts, relative to workspace root.
# Default: ".morphir"
output_dir = ".morphir"
# Workspace members: glob patterns for discovering member projects.
# Similar to Cargo/npm workspaces. Each matched directory should contain
# a morphir.toml with a [project] section, or a legacy morphir.json file.
#
# Examples:
# members = ["packages/*"] # Direct subdirectories of packages/
# members = ["libs/**"] # Recursive: all subdirs under libs/
# members = ["apps/*/frontend"] # Nested pattern
# members = ["packages/*", "libs/*"] # Multiple patterns
#
# Uncomment to enable workspace members:
# members = ["packages/*"]
# Exclude patterns: directories to skip during member discovery.
# Useful for excluding test fixtures, node_modules, etc.
#
# Examples:
# exclude = ["**/testdata"]
# exclude = ["packages/deprecated", "**/node_modules"]
#
# Uncomment to exclude directories:
# exclude = []
# Default member: which member to use when none is specified.
# Must match a path from the members patterns.
#
# Example:
# default_member = "packages/core"
#
# Uncomment to set a default:
# default_member = ""
# =============================================================================
# Project Settings (for single-project or root project in workspaces)
# =============================================================================
# Use this section when this config represents a project (not just a workspace).
# In a multi-member workspace, each member has its own [project] section.
#
# [project]
# # Project name: flexible identifier (kebab-case, PascalCase, or dotted)
# name = "my-project"
#
# # Project version (optional, can inherit from workspace)
# version = "1.0.0"
#
# # Source directory containing Morphir/Elm source files
# source_directory = "src"
#
# # Modules exposed in the public API (without the module_prefix)
# exposed_modules = ["Main", "Types", "API"]
#
# # Module prefix for Elm-style qualified names (optional)
# # If not set, derived from name. Use for morphir-elm compatibility.
# module_prefix = "MyProject"
# =============================================================================
# IR (Intermediate Representation) Settings
# =============================================================================
[ir]
# IR format version. Supported versions: 1-10.
# Version 3 is the current stable format.
format_version = 3
# Enable strict mode for IR validation.
# When true, the tooling will reject IR with any validation warnings.
strict_mode = false
# =============================================================================
# Code Generation Settings
# =============================================================================
[codegen]
# Target languages/platforms for code generation.
# Common targets: "go", "typescript", "scala", "json-schema"
targets = ["go"]
# Directory containing custom code generation templates.
# Leave empty to use built-in templates.
template_dir = ""
# Output format for generated code.
# Options: "pretty" (readable), "compact" (minimal whitespace), "minified"
output_format = "pretty"
# =============================================================================
# Cache Settings
# =============================================================================
[cache]
# Enable caching for faster incremental builds.
enabled = true
# Cache directory path. Leave empty to use the default location
# (.morphir/cache within the workspace).
dir = ""
# Maximum cache size in bytes. Set to 0 for unlimited.
# Examples: 1073741824 (1 GB), 536870912 (512 MB)
max_size = 0
# =============================================================================
# Logging Settings
# =============================================================================
[logging]
# Log level: "debug", "info", "warn", "error"
level = "info"
# Log format: "text" (human-readable) or "json" (structured)
format = "text"
# Log file path. Leave empty to log to stderr.
# Example: ".morphir/morphir.log"
file = ""
# =============================================================================
# UI Settings
# =============================================================================
[ui]
# Enable colored terminal output.
color = true
# Enable interactive mode (progress bars, prompts, etc.).
# Automatically disabled when output is not a TTY.
interactive = true
# UI theme: "default", "light", "dark"
theme = "default"