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

justin-millman / Kvasir / 5367676810
98%

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

pending completion
5367676810

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)

2451 of 2528 branches covered (96.95%)

Branch coverage included in aggregate %.

2557 of 2580 relevant lines covered (99.11%)

839.25 hits per line

Jobs
ID Job ID Ran Files Coverage
1 Debug - 5367676810.1 25 Jun 2023 03:54AM UTC 0
98.47
GitHub Action Run
2 Release - 5367676810.2 25 Jun 2023 03:54AM UTC 0
98.66
GitHub Action Run
Source Files on build 5367676810
Detailed source file information is not available for this build.
  • Back to Repo
  • 8bc4c67a on github
  • Prev Build on master (#4393507655)
  • Next Build on master (#5367687814)
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