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

justin-millman / Kvasir / 5367676810 / 2
98%
master: 98%

Build:
DEFAULT BRANCH: master
Ran 25 Jun 2023 03:55AM UTC
Files 94
Run time 1s
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

25 Jun 2023 03:54AM UTC coverage: 98.665% (+0.01%) from 98.651%
5367676810.2

push

github

justin-millman
Complete Refactoring of Translation Layer

This commit fully refactors the Translation Layer of Kvasir, including a rewrite of the majority of the system's
unit tests. There were several reasons for this, mostly stemming from forward compatibility. Although the original
implementation was functional, it was organized in such a way that would have either precluded future Translation
(e.g. of Aggregates) or would have required a massive rewrite anyway. The new design, entirely in the impleentation
details, is deliberately cognizant of these future needs.

The new implementation relies on a "base translation" that is repeatedly updated as new information is extracted
from annotations and contexts. These base translations make their way through the system as a mapping keyed on the
source access path, making it trivial to resolve 'Path' properties on annotations. This pattern makes it so that
the majority of the Translation Layer does not have to differentiate between e.g. Scalars and Aggregates - the former
is simply a mapping of size 1 with the empty string as its sole key. The expectation is that this design will make
it fairly straightforwad to implement the remaining four categories of Translation (namely: Aggregates, Enumerations,
Relations, and References).

In addition to refactoring the Translation code itself, a number of specification changes were made. For example,
redundant annotations are no longer errors; instead, they just have no effect. There is also a new system by which
constraints are flattened, ensuring that the final set of constraints applied to a Field is minimal. Inherited
properties can also now be marked as [IncludeInModel], though they are excluded by default. Error messages are more
standardized, and a larger number of scenarios are actively tested (e.g. interplay between annotations, null values
being provided, etc.).

As part of the refactor, a few changes were made to some pieces outside of the Translation Layer, mostly in ... (continued)

1212 of 1240 branches covered (97.74%)

Branch coverage included in aggregate %.

2557 of 2580 relevant lines covered (99.11%)

365.35 hits per line

Source Files on job Release - 5367676810.2
  • Tree
  • List 0
  • Changed 86
  • Source Changed 86
  • Coverage Changed 47
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 5367676810
  • 8bc4c67a on github
  • Prev Job for on master (#4393507655.1)
  • Next Job for on master (#5367687814.1)
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