20 releases

0.3.1 Sep 2, 2024
0.3.0 Sep 1, 2024
0.2.13 Jun 28, 2024
0.2.11 Feb 21, 2024
0.1.8 Aug 10, 2023

#431 in Development tools

33 downloads per month
Used in sdml-cli

Custom license

1MB
27K 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/errors crate │ ╰──────────────────────────────────╯ ┌───────┐ ⋀ │ other │ ║ │ tools │ ════════════════╝ └───────┘ #+END_EXAMPLE

  • Changes

Version 0.3.1

  • Fix: update dev-dependency for sdml-parse.

Version 0.3.0

  • Feature: updates to support the latest grammar, see sdml-core.
  • Refactor: update generates which use the walker/visitor internally.
  • Refactor: drop the old style /write/-style traits and unify into a single Generator trait.
  • Feature: more flexible s-expression generator with more Lisp-y output.
  • Test: added a set of macros to test generator output for the set of test examples.
    • Added expected output for RDF turtle.
    • Updated existing dependency-tree tests to use these macros.

Version 0.2.13

  • Feature: added new command =doc-book= to create a more complex documentation output for a collection of modules.
    • Refactor: added more traits for documentation generation allowing existing =doc= code to be reused by =doc-book=.
    • Refactor: added a =common= module for low-level formatting traits.
  • Build: bump version of =sdml-errors= and =sdml-core=.

Version 0.2.12

  • Build: update dependency from =sdml_error= to =sdml-errors=.
  • Build: bump version of =sdml-core=.

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

~18–30MB
~457K SLoC