• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ossuminc / riddl
65%

Build:
DEFAULT BRANCH: main
Repo Added 07 Dec 2023 02:32PM UTC
Token qjvJ1uyDTwawwKH1ZVOznNlSUCE9ykgu7 regen
Build 623 Last
Files 140
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • 304-get-code-coverage--80
  • 443-minimize-suppresswarnings
  • 461-parallel-include
  • 486-Riddl-Parses-Empty-Braces
  • 495-graph+table
  • 498-goto
  • 499-send-message
  • 504-allow-comments-between-definitions-as-well
  • 505-focus-on-url
  • 506-author-guide
  • 507-application-output-kinds
  • 520-implement-lessons-learned-from-jdl
  • 521-simplify-ast
  • 521-simplify-options
  • 521-use-withs
  • 523-replica-should-be-a-type
  • 527-implement-processor-relationships
  • 530-focus-statement
  • 538-retain-order-of-occurrence-for-definition-content
  • 549-allow-shown-by-clause-on-application-groups
  • 551-complete-mermaid-diagrams-module
  • 554-multiply-included-files-should-not-be-supported-in-the-same-definition
  • 562-revise-navigation-column-in-hugo-output
  • 579-arbitrary-order-of-definition-components
  • 580-comments-should-be-allowed-in-some-places-they-currently-arent
  • 584-handler-codependency-bug
  • 588-false-warning-author-reference-for-vital-definitions
  • 592-reference-not-validated
  • 594-projector-capabilities
  • 598-feature-provide-better-statements-for-repositories
  • 606-support-programming-language-code-integration-statement
  • 608-create-pass-to-use-ai-to-generate-behavior-code
  • 609-feature-allow-scala-like-message-definitions
  • 614-find-plugins-from-ivy-path
  • 615-make-options-grammarless
  • 619-clean-up-hugo-pass
  • 628-get-each-module-90-coverage
  • 631-get-coverage--90
  • 675-feature-export-keywords-readability-punctuation-as-seqstrings
  • 677-defect-noansimessages-has-no-effect-programmatically-is-not-recognized-in-command-line
  • 680-feature-return-character-range-for-error-in-messages
  • 694-feature-add-toplevelparser-method-for-returning-token-stream
  • 81-add-scaladoc-comments-to-all-code-in-language--passes
  • OSS-104-Return-Files-After-Parse
  • OSS-118-application-to-adaptor
  • OSS-47-editing-features
  • OSS-53-JSON-Attachments
  • OSS-54-Nebula-Parser
  • OSS-55-Fragment-Traversal
  • OSS-62-testkit
  • OSS-89-use-oslib
  • OTOT20_keyword_highlighting
  • OTOT20_ver2.2
  • add-stream-diagram
  • build-upgrades
  • consistent-output
  • development
  • doc-updates
  • eliminate-PlatformContext-overrides
  • feature/scala-bug
  • finish-stats-command
  • fix-builds
  • fix-contained-group-references
  • fix-display-length-of-stats-columns
  • fix-docs
  • fix-group-by-kind-option
  • fix-lack-of-non-error-messages
  • github-packager
  • hugo-output-formatting
  • main
  • merge-hugo-back-in
  • meta-and-reduce-lazy-vals
  • mima
  • modules
  • ossuminc-conversion
  • parallel-include-choice
  • reactific->ossuminc
  • regularized-syntax
  • reid-spencer-patch-1
  • scala-3.3.3
  • scala-3.4
  • scalaJs-support
  • simplify-descriptions
  • update/airframe-json-24.9.2
  • update/airframe-ulid-24.9.0
  • update/commons-compress-1.27.0
  • update/commons-compress-1.27.1
  • update/commons-io-2.17.0
  • update/commons-io-2.18.0
  • update/commons-lang3-3.16.0
  • update/commons-lang3-3.17.0
  • update/pureconfig-core-0.17.5
  • update/pureconfig-core-0.17.6
  • update/pureconfig-core-0.17.8
  • update/sbt-1.10.2
  • update/sbt-1.9.8
  • update/sbt-1.9.9
  • update/sbt-bloop-1.5.13
  • update/sbt-bloop-1.5.15
  • update/sbt-ossuminc-0.15.0
  • update/sbt-ossuminc-0.16.4
  • update/sbt-ossuminc-0.16.5
  • update/scala-library-2.12.20
  • update/scala3-library-3.4.3
  • update/scala3-library-3.5.0
  • update/scala3-library-3.5.1
  • update/scala3-library-3.5.2
  • update/scalacheck-1.18.1
  • update/scalactic-3.2.18
  • update/scalafmt-core-3.8.0
  • update/scalafmt-core-3.8.3
  • update/scalajs-env-jsdom-nodejs-1.1.0
  • update/scalatest-3.2.18

03 Jul 2026 09:08PM UTC coverage: 65.248% (+0.5%) from 64.721%
28683750100

push

reid-spencer
Add compareRoots — Root-AST structural similarity API

Adds a deterministic, model-free similarity/diff API for comparing two
RIDDL Root ASTs, requested by ossum-gen for its compositional-fidelity
benchmark (regression guard: does a model generated from a README have
the same rough shape as the hand-authored corpus model?).

New in passes/analysis/RootComparison.scala (Native-safe, no regex or
java formatting):
- compareRoots(a, b) -> RootSimilarity: per-kind counts (Map[String,
  (Int,Int)]), fuzzy matched/unmatched name pairs per kind, structural
  metrics (max depth, breadth), and an overall weighted score in
  [0.0, 1.0] (exactly 1.0 for identical roots).
- similarityMarkdown(a, b): human/AI-readable report.
- Both surfaced on the RiddlLib trait and object (additive only; no
  existing signature changed).

Counts/names/breadth are taken from OutlinePass (records containers AND
leaves, so leaf kinds such as Invariant/Constant are included, and
counts stay consistent with the names being matched); depth is taken
from StatsPass.maximum_depth. Structural wrappers (Root, Nebula) are
excluded so breadth reflects real top-level containers. Matching is on
kind + fuzzy name (lowercase-alphanumeric normalization, greedy best
Levenshtein-ratio pairing) — location- and case-independent — never on
Definition.equals/hashCode (which include loc).

Scoring: per kind 0.6*countComparability + 0.4*nameOverlap; overall
0.7*weightedMean + 0.3*countVectorCosine, weighting DDD-structural
kinds above incidental ones.

10 tests (JVM + Native): identical=1.0, empty=1.0, counts match a manual
StatsPass reading, breadth counts domains not Root, depth matches
StatsPass, case/location independence, renamed-but-equal stays high,
ordering identical > case-only > renamed > unrelated, markdown render,
and a real-model pair (dokn vs rbbq).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

147 of 156 new or added lines in 1 file covered. (94.23%)

39 existing lines in 20 files now uncovered.

7679 of 11769 relevant lines covered (65.25%)

0.65 hits per line

Relevant lines Covered
Build:
Build:
11769 RELEVANT LINES 7679 COVERED LINES
0.65 HITS PER LINE
Source Files on main
  • Tree
  • List 140
  • Changed 25
  • Source Changed 0
  • Coverage Changed 25
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28683750100 main Add compareRoots — Root-AST structural similarity API Adds a deterministic, model-free similarity/diff API for comparing two RIDDL Root ASTs, requested by ossum-gen for its compositional-fidelity benchmark (regression guard: does a model generate... push 03 Jul 2026 09:19PM UTC reid-spencer
65.25
28683473913 development Add compareRoots — Root-AST structural similarity API Adds a deterministic, model-free similarity/diff API for comparing two RIDDL Root ASTs, requested by ossum-gen for its compositional-fidelity benchmark (regression guard: does a model generate... push 03 Jul 2026 09:12PM UTC reid-spencer
65.25
28611035274 main Merge branch 'main' into development push 02 Jul 2026 06:02PM UTC reid-spencer
64.72
28610950678 development Merge branch 'main' into development push 02 Jul 2026 06:00PM UTC reid-spencer
64.72
28610860364 development Fix GBNF converter to emit grammar llama.cpp can parse ebnf_to_gbnf.py emitted escapes llama.cpp's GBNF parser rejects: regex \/ and \. carried verbatim into char classes/literals, and single-quoted EBNF literals ('"') passed through (GBNF has no... push 02 Jul 2026 05:58PM UTC reid-spencer
64.72
28594650224 main Add JSON-identity round-trip tests; make unbounded String a JSON fixed point Strengthen the fidelity guarantee from "no new validation errors" to true serializer idempotence: root0 -> json1 -> root1 -> json2, asserting json1 == json2. A stable fi... push 02 Jul 2026 01:44PM UTC reid-spencer
64.62
28551458097 main Make parseJson tolerant of AI-natural type-expression shapes Two additive tolerances in JsonModel.readTypeExpr, both strictly more permissive (every currently-valid document parses identically): - Unknown `kind` -> Alias. A `kind` that is not on... push 01 Jul 2026 10:21PM UTC reid-spencer
64.62
28550772676 main Add root2Json — AST -> JSON serializer (inverse of parseJson) Implements the symmetric inverse of parseJson as a plain recursive serializer (JsonSerializer, the inverse of JsonAstBuilder), not a Pass — walks an AST.Root to a JsonModel.RootDto, th... push 01 Jul 2026 10:07PM UTC reid-spencer
64.62
28485826631 main Mark JSON input Phase 9 done; all 9 phases complete Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> push 01 Jul 2026 12:55AM UTC reid-spencer
64.62
26903189958 development Upgrade action versions to avoid deprecation warnings. push 03 Jun 2026 06:00PM UTC reid-spencer
64.72
See All Builds (621)
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc