#+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://img.shields.io/crates/v/sdml_generate.svg]] [[https://docs.rs/sdml_generate][https://img.shields.io/docsrs/sdml-generate.svg]] 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]].