Skip to content

new module structure#336

Open
raphael-goetz wants to merge 16 commits intomainfrom
#333-module-structure
Open

new module structure#336
raphael-goetz wants to merge 16 commits intomainfrom
#333-module-structure

Conversation

@raphael-goetz
Copy link
Copy Markdown
Member

Resolves: #333

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Implements the new “module” folder structure for definition sets (replacing the prior “feature” concept) and updates the CLI tooling to read, analyse, report, and push modules using the new layout (e.g., module.json, data_types/, flow_types/, runtime_functions/, etc.). This aligns with Issue #333’s goal of adjusting both the folder structure and the reader.

Changes:

  • Add module-based definition trees under definitions/ (e.g., taurus/*, draco_*) including module.json, data_types, and many runtime/function definitions.
  • Update CLI commands and reporting from “Feature” to “Module”, including parse-error fail-fast behavior.
  • Extend analyser/indexing/diagnostics to support module definitions, module configurations, runtime flow types, and function definitions.

Reviewed changes

Copilot reviewed 48 out of 187 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
definitions/taurus/text/runtime_functions/std_text_uppercase.proto.json Add Text runtime function definition (uppercase) under new module layout
definitions/taurus/text/runtime_functions/std_text_trim.proto.json Add Text runtime function definition (trim)
definitions/taurus/text/runtime_functions/std_text_to_ascii.proto.json Add Text runtime function definition (to_ascii)
definitions/taurus/text/runtime_functions/std_text_swapcase.proto.json Add Text runtime function definition (swapcase)
definitions/taurus/text/runtime_functions/std_text_starts_with.proto.json Add Text runtime function definition (starts_with)
definitions/taurus/text/runtime_functions/std_text_split.proto.json Add Text runtime function definition (split)
definitions/taurus/text/runtime_functions/std_text_reverse.proto.json Add Text runtime function definition (reverse)
definitions/taurus/text/runtime_functions/std_text_replace_last.proto.json Add Text runtime function definition (replace_last)
definitions/taurus/text/runtime_functions/std_text_replace.proto.json Add Text runtime function definition (replace)
definitions/taurus/text/runtime_functions/std_text_remove.proto.json Add Text runtime function definition (remove)
definitions/taurus/text/runtime_functions/std_text_prepend.proto.json Add Text runtime function definition (prepend)
definitions/taurus/text/runtime_functions/std_text_octal.proto.json Add Text runtime function definition (octal)
definitions/taurus/text/runtime_functions/std_text_lowercase.proto.json Add Text runtime function definition (lowercase)
definitions/taurus/text/runtime_functions/std_text_length.proto.json Add Text runtime function definition (length)
definitions/taurus/text/runtime_functions/std_text_is_equal.proto.json Add Text runtime function definition (is_equal)
definitions/taurus/text/runtime_functions/std_text_index_of.proto.json Add Text runtime function definition (index_of)
definitions/taurus/text/runtime_functions/std_text_hex.proto.json Add Text runtime function definition (hex)
definitions/taurus/text/runtime_functions/std_text_from_ascii.proto.json Add Text runtime function definition (from_ascii)
definitions/taurus/text/runtime_functions/std_text_ends_with.proto.json Add Text runtime function definition (ends_with)
definitions/taurus/text/runtime_functions/std_text_encode.proto.json Add Text runtime function definition (encode)
definitions/taurus/text/runtime_functions/std_text_decode.proto.json Add Text runtime function definition (decode)
definitions/taurus/text/runtime_functions/std_text_contains.proto.json Add Text runtime function definition (contains)
definitions/taurus/text/runtime_functions/std_text_chars.proto.json Add Text runtime function definition (chars)
definitions/taurus/text/runtime_functions/std_text_capitalize.proto.json Add Text runtime function definition (capitalize)
definitions/taurus/text/runtime_functions/std_text_byte_size.proto.json Add Text runtime function definition (byte_size)
definitions/taurus/text/runtime_functions/std_text_at.proto.json Add Text runtime function definition (at)
definitions/taurus/text/runtime_functions/std_text_as_bytes.proto.json Add Text runtime function definition (as_bytes)
definitions/taurus/text/runtime_functions/std_text_append.proto.json Add Text runtime function definition (append)
definitions/taurus/text/module.json Add Text module metadata (module.json)
definitions/taurus/text/data_types/text_encoding.proto.json Add TEXT_ENCODING data type for Text module
definitions/taurus/text/data_types/text.proto.json Add TEXT data type for Text module
definitions/taurus/object/runtime_functions/std_object_size.proto.json Add Object runtime function definition (size)
definitions/taurus/object/runtime_functions/std_object_keys.proto.json Add Object runtime function definition (keys)
definitions/taurus/object/runtime_functions/std_object_get.proto.json Add Object runtime function definition (get)
definitions/taurus/object/runtime_functions/std_object_contains_key.proto.json Add Object runtime function definition (contains_key)
definitions/taurus/object/module.json Add Object module metadata
definitions/taurus/object/data_types/type.proto.json Add TYPE data type for Object module
definitions/taurus/object/data_types/object.proto.json Add OBJECT data type for Object module
definitions/taurus/number/runtime_functions/std_number_tan.proto.json Add Number runtime function definition (tan)
definitions/taurus/number/runtime_functions/std_number_subtract.proto.json Add Number runtime function definition (subtract)
definitions/taurus/number/runtime_functions/std_number_square_root.proto.json Add Number runtime function definition (square_root)
definitions/taurus/number/runtime_functions/std_number_square.proto.json Add Number runtime function definition (square)
definitions/taurus/number/runtime_functions/std_number_sinh.proto.json Add Number runtime function definition (sinh)
definitions/taurus/number/runtime_functions/std_number_sin.proto.json Add Number runtime function definition (sin)
definitions/taurus/number/runtime_functions/std_number_round_up.proto.json Add Number runtime function definition (round_up)
definitions/taurus/number/runtime_functions/std_number_round_down.proto.json Add Number runtime function definition (round_down)
definitions/taurus/number/runtime_functions/std_number_round.proto.json Add Number runtime function definition (round)
definitions/taurus/number/runtime_functions/std_number_root.proto.json Add Number runtime function definition (root)
definitions/taurus/number/runtime_functions/std_number_remove_digits.proto.json Add Number runtime function definition (remove_digits)
definitions/taurus/number/runtime_functions/std_number_random_number.proto.json Add Number runtime function definition (random_number)
definitions/taurus/number/runtime_functions/std_number_pi.proto.json Add Number runtime function definition (pi)
definitions/taurus/number/runtime_functions/std_number_negate.proto.json Add Number runtime function definition (negate)
definitions/taurus/number/runtime_functions/std_number_multiply.proto.json Add Number runtime function definition (multiply)
definitions/taurus/number/runtime_functions/std_number_modulo.proto.json Add Number runtime function definition (modulo)
definitions/taurus/number/runtime_functions/std_number_min.proto.json Add Number runtime function definition (min)
definitions/taurus/number/runtime_functions/std_number_max.proto.json Add Number runtime function definition (max)
definitions/taurus/number/runtime_functions/std_number_log.proto.json Add Number runtime function definition (log)
definitions/taurus/number/runtime_functions/std_number_ln.proto.json Add Number runtime function definition (ln)
definitions/taurus/number/runtime_functions/std_number_is_zero.proto.json Add Number runtime function definition (is_zero)
definitions/taurus/number/runtime_functions/std_number_is_positive.proto.json Add Number runtime function definition (is_positive)
definitions/taurus/number/runtime_functions/std_number_is_less.proto.json Add Number runtime function definition (is_less)
definitions/taurus/number/runtime_functions/std_number_is_greater.proto.json Add Number runtime function definition (is_greater)
definitions/taurus/number/runtime_functions/std_number_is_equal.proto.json Add Number runtime function definition (is_equal)
definitions/taurus/number/runtime_functions/std_number_infinity.proto.json Add Number runtime function definition (infinity)
definitions/taurus/number/runtime_functions/std_number_has_digits.proto.json Add Number runtime function definition (has_digits)
definitions/taurus/number/runtime_functions/std_number_from_text.proto.json Add Number runtime function definition (from_text)
definitions/taurus/number/runtime_functions/std_number_exponential.proto.json Add Number runtime function definition (exponential)
definitions/taurus/number/runtime_functions/std_number_euler.proto.json Add Number runtime function definition (euler)
definitions/taurus/number/runtime_functions/std_number_divide.proto.json Add Number runtime function definition (divide)
definitions/taurus/number/runtime_functions/std_number_cosh.proto.json Add Number runtime function definition (cosh)
definitions/taurus/number/runtime_functions/std_number_cos.proto.json Add Number runtime function definition (cos)
definitions/taurus/number/runtime_functions/std_number_clamp.proto.json Add Number runtime function definition (clamp)
definitions/taurus/number/runtime_functions/std_number_as_text.proto.json Add Number runtime function definition (as_text)
definitions/taurus/number/runtime_functions/std_number_arctan.proto.json Add Number runtime function definition (arctan)
definitions/taurus/number/runtime_functions/std_number_arcsin.proto.json Add Number runtime function definition (arcsin)
definitions/taurus/number/runtime_functions/std_number_arccos.proto.json Add Number runtime function definition (arccos)
definitions/taurus/number/runtime_functions/std_number_add.proto.json Add Number runtime function definition (add)
definitions/taurus/number/runtime_functions/std_number_abs.proto.json Add Number runtime function definition (abs)
definitions/taurus/number/module.json Add Number module metadata
definitions/taurus/number/data_types/number.proto.json Add NUMBER data type for Number module
definitions/taurus/list/runtime_functions/std_array_to_unique.proto.json Add List runtime function definition (to_unique)
definitions/taurus/list/runtime_functions/std_array_sum.proto.json Add List runtime function definition (sum)
definitions/taurus/list/runtime_functions/std_array_sort_reverse.proto.json Add List runtime function definition (sort_reverse)
definitions/taurus/list/runtime_functions/std_array_sort.proto.json Add List runtime function definition (sort)
definitions/taurus/list/runtime_functions/std_array_size.proto.json Add List runtime function definition (size)
definitions/taurus/list/runtime_functions/std_array_reverse.proto.json Add List runtime function definition (reverse)
definitions/taurus/list/runtime_functions/std_array_remove.proto.json Add List runtime function definition (remove)
definitions/taurus/list/runtime_functions/std_array_push.proto.json Add List runtime function definition (push)
definitions/taurus/list/runtime_functions/std_array_pop.proto.json Add List runtime function definition (pop)
definitions/taurus/list/runtime_functions/std_array_min.proto.json Add List runtime function definition (min)
definitions/taurus/list/runtime_functions/std_array_max.proto.json Add List runtime function definition (max)
definitions/taurus/list/runtime_functions/std_array_map.proto.json Add List runtime function definition (map)
definitions/taurus/list/runtime_functions/std_array_last.proto.json Add List runtime function definition (last)
definitions/taurus/list/runtime_functions/std_array_join.proto.json Add List runtime function definition (join)
definitions/taurus/list/runtime_functions/std_array_is_empty.proto.json Add List runtime function definition (is_empty)
definitions/taurus/list/runtime_functions/std_array_index_of.proto.json Add List runtime function definition (index_of)
definitions/taurus/list/runtime_functions/std_array_for_each.proto.json Add List runtime function definition (for_each)
definitions/taurus/list/runtime_functions/std_array_flat.proto.json Add List runtime function definition (flat)
definitions/taurus/list/runtime_functions/std_array_first.proto.json Add List runtime function definition (first)
definitions/taurus/list/runtime_functions/std_array_find_last.proto.json Add List runtime function definition (find_last)
definitions/taurus/list/runtime_functions/std_array_find_index.proto.json Add List runtime function definition (find_index)
definitions/taurus/list/runtime_functions/std_array_find.proto.json Add List runtime function definition (find)
definitions/taurus/list/runtime_functions/std_array_filter.proto.json Add List runtime function definition (filter)
definitions/taurus/list/runtime_functions/std_array_concat.proto.json Add List runtime function definition (concat)
definitions/taurus/list/runtime_functions/std_array_at.proto.json Add List runtime function definition (at)
definitions/taurus/list/module.json Add List module metadata
definitions/taurus/list/data_types/list.proto.json Add LIST data type for List module
definitions/taurus/http/runtime_functions/http_request_send.proto.json Add HTTP runtime function definition (request::send)
definitions/taurus/http/module.json Add HTTP module metadata
definitions/taurus/http/data_types/http_url.proto.json Add HTTP_URL data type
definitions/taurus/http/data_types/http_status_code.proto.json Add HTTP_STATUS_CODE data type
definitions/taurus/http/data_types/http_response.proto.json Add HTTP_RESPONSE data type
definitions/taurus/http/data_types/http_request.proto.json Add HTTP_REQUEST data type
definitions/taurus/http/data_types/http_method.proto.json Add HTTP_METHOD data type
definitions/taurus/control/runtime_functions/std_control_value.proto.json Add Control runtime function definition (value)
definitions/taurus/control/runtime_functions/std_control_stop.proto.json Add Control runtime function definition (stop)
definitions/taurus/control/runtime_functions/std_control_return.proto.json Add Control runtime function definition (return)
definitions/taurus/control/runtime_functions/std_control_if.proto.json Add Control runtime function definition (if)
definitions/taurus/control/module.json Add Control module metadata
definitions/taurus/control/data_types/transform.proto.json Add TRANSFORM data type
definitions/taurus/control/data_types/runnable.proto.json Add RUNNABLE data type
definitions/taurus/control/data_types/predicate.proto.json Add PREDICATE data type
definitions/taurus/control/data_types/consumer.proto.json Add CONSUMER data type
definitions/taurus/control/data_types/comparator.proto.json Add COMPARATOR data type
definitions/taurus/boolean/runtime_functions/std_boolean_negate.proto.json Add Boolean runtime function definition (negate)
definitions/taurus/boolean/runtime_functions/std_boolean_is_equal.proto.json Add Boolean runtime function definition (is_equal)
definitions/taurus/boolean/runtime_functions/std_boolean_from_text.proto.json Add Boolean runtime function definition (from_text)
definitions/taurus/boolean/runtime_functions/std_boolean_from_number.proto.json Add Boolean runtime function definition (from_number)
definitions/taurus/boolean/runtime_functions/std_boolean_as_text.proto.json Add Boolean runtime function definition (as_text)
definitions/taurus/boolean/runtime_functions/std_boolean_as_number.proto.json Add Boolean runtime function definition (as_number)
definitions/taurus/boolean/module.json Add Boolean module metadata
definitions/taurus/boolean/data_types/boolean.proto.json Add BOOLEAN data type
definitions/standard/runtime_functions/text/text-audit.md Remove legacy text audit document
definitions/standard/runtime_functions/object/object-audit.md Remove legacy object audit document
definitions/standard/runtime_functions/number/number-audit.md Remove legacy number audit document
definitions/standard/runtime_functions/control/control-audit.md Remove legacy control audit document
definitions/standard/runtime_functions/boolean/boolean-audit.md Remove legacy boolean audit document
definitions/standard/runtime_functions/array/array-audit.md Remove legacy array audit document
definitions/draco_rest/runtime_functions/rest_control_respond.proto.json Add REST runtime function definition (respond)
definitions/draco_rest/runtime_flow_types/rest.proto.json Update REST runtime flow type to use runtimeSettings
definitions/draco_rest/module.json Add REST module metadata
definitions/draco_rest/data_types/rest_adapter_input.proto.json Add REST_ADAPTER_INPUT data type
definitions/draco_cron/module.json Add Cron module metadata
definitions/draco_cron/data_types/type/cron_month.proto.json Add CRON_MONTH data type (regex rules)
definitions/draco_cron/data_types/type/cron_minute.proto.json Add CRON_MINUTE data type (regex rules)
definitions/draco_cron/data_types/type/cron_hour.proto.json Add CRON_HOUR data type (regex rules)
definitions/draco_cron/data_types/type/cron_day_of_week.proto.json Add CRON_DAY_OF_WEEK data type (regex rules)
definitions/draco_cron/data_types/type/cron_day_of_month.proto.json Add CRON_DAY_OF_MONTH data type (regex rules)
crates/cli/src/main.rs Register new reader module; rename CLI subcommand Feature -> Module
crates/cli/src/diagnostics/kinds.rs Add new duplicate-detection diagnostic kinds for module-era entities
crates/cli/src/diagnostics/diagnose.rs Update diagnostics to use reader Meta and add new error messages
crates/cli/src/command/watch.rs Refine FS remove-event matching using a guard
crates/cli/src/command/report.rs Fail fast on parse errors; update summary/reporting to modules
crates/cli/src/command/push/module_service_client_impl.rs Switch push client to module service + module update request
crates/cli/src/command/push/function_client_impl.rs Remove legacy runtime-function push client
crates/cli/src/command/push/flow_type_client_impl.rs Remove legacy flow-type push client
crates/cli/src/command/parse_errors.rs Add helper to exit early on definition parse errors
crates/cli/src/command/mod.rs Replace feature command module with module-search support and parse error helper
crates/cli/src/command/feature.rs Remove legacy feature search command
crates/cli/src/analyser/module_definition.rs Add analyser for module.json definition validity
crates/cli/src/analyser/module_configuration_definition.rs Add analyser for module configuration definitions + duplication checks
crates/cli/src/analyser/mod.rs Register new analyser modules (runtime flow types, module configs, etc.)
crates/cli/src/analyser/index_identifier.rs Extend identifier index to cover runtime flow types, function defs, module configs
crates/cli/src/analyser/function.rs Use is_empty() for signature check
crates/cli/src/analyser/flow_type.rs Use is_empty() for signature check
crates/cli/src/analyser/data_type.rs Use is_empty() for type check
crates/cli/Cargo.toml Update crate description and use workspace deps for tonic/log
Cargo.toml Bump tucana version and move tonic to workspace dependencies

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread crates/cli/src/reader.rs Outdated
Comment on lines +11 to +13
"code": "en-US",
"content": "Trigger Flows unsing a HTTP-Server."
}
Copy link

Copilot AI Apr 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in module description: "Trigger Flows unsing a HTTP-Server." → "using an HTTP server" (and consider dropping the hyphen). This is user-facing module metadata.

Copilot uses AI. Check for mistakes.
Comment thread crates/cli/src/main.rs
Comment on lines +30 to +31
/// Generate a report for a or all module(s).
Module {
Copy link

Copilot AI Apr 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Feature -> Module rename is reflected in the subcommand, but the top-level CLI #[command(about = "Manage definitions, reports, and features")] string still mentions "features". Update that user-facing text to match the new terminology.

Copilot uses AI. Check for mistakes.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Raphael Götz <52959657+raphael-goetz@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 48 out of 187 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown
Member

@nicosammito nicosammito left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement module structure

3 participants