#+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
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.
- Rename module =console= to =color=.
- Add new =color::rdf= module for helper functions.
- 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]].