#generator #generation #sdml #output #artifact #language #domain

sdml-generate

Simple Domain Modeling Language (SDML) generated Artifacts

16 releases

0.2.11 Feb 21, 2024
0.2.10 Feb 20, 2024
0.2.6 Jan 31, 2024
0.2.1 Nov 1, 2023
0.1.8 Aug 10, 2023

#430 in Web programming

Download history 10/week @ 2023-12-29 1/week @ 2024-01-05 5/week @ 2024-01-12 12/week @ 2024-01-19 29/week @ 2024-01-26 1/week @ 2024-02-02 482/week @ 2024-02-16 111/week @ 2024-02-23 29/week @ 2024-03-01 199/week @ 2024-03-08 41/week @ 2024-03-15 12/week @ 2024-03-29

61 downloads per month
Used in sdml-cli

Custom license

1MB
19K SLoC

#+TITLE: Package sdml-generate #+AUTHOR: Simon Johnston #+EMAIL: johnstonskj@gmail.com #+LANGUAGE: en #+STARTUP: overview hidestars inlineimages entitiespretty #+OPTIONS: author:nil created:nil creator:nil date:nil email:nil num:3 toc:nil

Rust Library of artifact generators from the Simple Domain Modeling Language (SDML).

[https://crates.io/crates/sdml_generate] [https://docs.rs/sdml_generate]

This package is part of the Rust SDML project and specifically defines the model-to-other generators for SDML modules. The project's intent is to provide an idiomatic implementation of the in-memory model, parser, generators, and the CLI tool.

The following figure demonstrates this package in the broader project context.

#+CAPTION: Package Organization #+BEGIN_EXAMPLE ╭───────╮ │ CLI │ ╔══ │ crate │ ══╗ ║ ╰───────╯ ║ ┌╌╌╌╌╌╌╌╌┐ V V ┆ ┆ ╭───────╮ ╭──────────╮ Formatted Source ┆ source ┆ ══> │ parse │ ══> │ generate │ ══> RDF Representation ┆ file ┆ ╭───│ crate │───────│ crate │───╮ Documentation ┆ ┆ │ ╰───────╯ ╰──────────╯ │ Diagrams └╌╌╌╌╌╌╌╌┘ │ core crate │ ╰──────────────────────────────────╯ ┌───────┐ ⋀ │ other │ ║ │ tools │ ════════════════╝ └───────┘ #+END_EXAMPLE

  • Changes

Version 0.2.11

  • Feature: add initial implementation for =DiagramContentFilter=.
    • Add: module and member import filters.
    • Add: local definition filter.
    • Add: association filter.

This release does not use the content filter yet, it is to elicit feedback on the provided filters.

Version 0.2.10

  • Build: upgrade to =sdml_core= version =0.2.14= and the new =ModelStore= trait.

Version 0.2.9

  • Fix: formatting of annotations was broken for the view command.

Version 0.2.8

  • Feature: adapted to new =HeaderValue= type in core.

Version 0.2.7

  • Feature: Document generation for org-mode now includes the RDF version of a module and the dependency graph.
  • Fix: The trait function =write_to_string_in_format= was previously calling =write=, not =write_in_format=.
  • Fix: Rustdoc for =convert::source= fixed to turn off colorization.
  • Build: Using core =0.2.10= for new stdlib names.

Version 0.2.6

  • Feature: Add color output for RDF source generation.
    1. Rename module =console= to =color=.
    2. Add new =color::rdf= module for helper functions.
    3. Rewrite =convert::rdf= to output colorized listings.
  • Feature: Add version URLs into the dependency tree test cases.
  • Feature: Removed indirect dependencies from Cargo.toml.

Version 0.2.5

  • Feature: Add =ModuleCache= as parameter to methods on the =GenerateToFile= and =GenerateToWriter= traits.
  • Feature: Add new =source= generator to show file source, including elided versions.
  • Feature: Complete dependency generation logic -- work to be done on the API.
    • Fix: The depth tests for dependency generation was applied incorrectly.
    • Fix: Correct logic for module dependencies not in the cache.
    • Fix: GraphViz error, edges defined as =-->= should be =->=.
    • Add: Colorize output, with new =console= module to manage global color flag.
    • Add: Add version URI to node output.
  • Feature: Add output of RDF definitions to the s-expression generator.
  • Feature: Add bare-bones output of RDF definitions to the RDF generator.
  • Feature: Add more output to the RDF generator.
  • Test: Start new test suites with dependency tree generator.
    • Add a copy of all test examples from =sdml_parse=.
    • Adjust the =test_examples.rs= file so that the macros can take multiple generators for testing.
    • Add =generate_dependency_tree= for all =import_*= test cases.

Version 0.2.4

  • Feature: add new stdlib modules with standard layout.
  • Feature: minor refactor of cache and loader.

Version 0.2.3

  • Feature: Update to latest grammar for version URIs and RDF definitions.
    • Add support for base URI on modules.
    • Add support for version info and URI on modules.
    • Add support for version URI on module import.
    • Parse RDF definitions for classes and properties.

Version 0.2.2

  • Feature: Remove member groups.

Version 0.2.1

  • Fix: replace ="-"= with ="__"= as qualified identifier replacement.

Version 0.2.0

  • Feature: Update to latest grammar.
    • Remove =ValueVariant= numeric values.
    • Update formal constraints.
    • Add type classes.

Version 0.1.8

  • Feature: Add mapping type to the s-expr and UML generators.
  • Build: Update to latest =tree-sitter-sdml= to pick up changes in highlighting.
  • Build: Update to latest =sdml-core= to pick up changes in =Cardinality::to_uml_string=.

Version 0.1.7

  • Build: Update with recent model changes and fixes.
  • Fix: Clean-up the UML output.

Version 0.1.6

  • Feature: Updated org-mode and UML generators with a number of model changes from sdml-core.

Version 0.1.5

  • Feature: Updated with a number of model changes from sdml-core.

Version 0.1.4

Previously part of a single crate [[https://crates.io/crates/sdml][sdml]].

Dependencies

~15–29MB
~434K SLoC