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

justin-millman / Kvasir
98%
master: 98%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Repo Added 24 Dec 2020 08:54PM UTC
Files 176
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: main
CHANGE BRANCH
x
Reset
  • main
  • bugfix/TEXT-to-LONGTEXT
  • bugfix/error-messages-for-aggregate-nested-relations
  • bugfix/fix-relation-nullability
  • bugfix/mysql-datetime-literal
  • bugfix/pre-defined-create-table-does-inserts
  • bugfix/relation-nested-relation-via-aggregate-memoized
  • bugfix/transactor-delete-associative-relation-entry-during-update
  • cleanup/relation-base-interfaces
  • feature/blobbing
  • feature/date-only
  • feature/dependency-bumps
  • feature/localization-v3
  • feature/msyql-transaction
  • feature/mysql-transcription
  • feature/pre-defined-entities
  • feature/some-tweaks
  • feature/transactor
  • feature/unreachable-exception
  • feature/writeable-relation-exception
  • master

01 Nov 2025 06:21PM UTC coverage: 98.338% (-0.2%) from 98.512%
19000805943

push

github

justin-millman
Translation of Localizations

This commit introduces Localizations, a new first-class property type that Kvasir can handle. A Localization
is any type derived from the Localization<K, L, V> generic, which in turn implements the brand new
ILocalization interface. Localizations are designed to support different values under different circumstances
for a single semantic, such as different languages' translations of text or different systems' units of
measurement.

The "key" of a Localization shows up in the Principal or Relation Table that "owns" the Localization, while
the locale-value pairs are aggregated into a Localization Table. All instances of a Localization Type share
a single Localization Table, so the keys must be unique-per-type, while the locales are necessarily unique
per-key. Derived Localization types cannot have their own properties included in the data model.

Annotations may be applied to a Localization's key in the Principal or Relation Table, but those constraints
do not propagate to the Localization Table. Data Converters are not supported, however. Localizations may
appear nested in Relations, but not in other Localizations; Relations cannot be nested in Localizations.

At this time, only the Schema-layer translation of Localizations is supported. Extraction and Reconstitution
will be implemented in future commits.

4250 of 4390 branches covered (96.81%)

Branch coverage included in aggregate %.

335 of 359 new or added lines in 20 files covered. (93.31%)

6994 of 7044 relevant lines covered (99.29%)

5666.52 hits per line

Relevant lines Covered
Build:
Build:
7044 RELEVANT LINES 6994 COVERED LINES
5666.52 HITS PER LINE
Source Files on main
  • Tree
  • List 176
  • Changed 12
  • Source Changed 0
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
19000805943 main Translation of Localizations This commit introduces Localizations, a new first-class property type that Kvasir can handle. A Localization is any type derived from the Localization<K, L, V> generic, which in turn implements the brand new ILocaliza... push 01 Nov 2025 06:22PM UTC justin-millman github
98.34
16401577818 main Harden Rule Around Nullability of Relations This commit hardens the translation logic regarding nullability and Relations. In particular: * Relations cannot be natively nullable * Natively nullable Relations that are annotated as [NonNulla... push 20 Jul 2025 03:46PM UTC justin-millman github
98.51
16081764670 main Simplify Relation Interfaces This commit removes a number of interfaces explicitly listed for the four Relation containers, since those interfaces were already present through others. For example, IEnumerable<T> is implied by IList<T>, and theref... push 04 Jul 2025 10:36PM UTC justin-millman github
98.53
16080746156 main Make VARCHAR(255) the Data Type for Text Fields in MySQL This commit changes, yet again, the behavior for Text-type Fields in the MySQL provider. Previously, they defaulted to being represented with LONGTEXT and would become VARCHAR(N) when a [Ch... push 04 Jul 2025 08:49PM UTC justin-millman github
98.53
15962387070 main Bug Fix: MySQL DateTime Literal Keyword is TIMESTAMP not DATETIME This commit fixes a bug in the rendering of DateTime literals for the MySQL provider. Previously, the keyword identifier used was DATETIME, but this was wrong according to the offi... push 30 Jun 2025 02:24AM UTC justin-millman github
98.53
15962257004 main Support System.DateOnly as a CLR Type This commit adds support for CLR properties backed by System.DateOnly. This is a counterpart to System.DateOnly and is handled basically the same way: defaults are strings parsed into the CLR type and compari... push 30 Jun 2025 02:12AM UTC justin-millman github
98.53
15958550452 main Switch to Using LONGTEXT for Unbounded String Fields in MySQL This commit switches the MySQL translation of text-type Fields to be LONGTEXT by default, instead of TEXT. The rules for when such a Field becomes a VARCHAR have not changed. I'm doing... push 29 Jun 2025 07:19PM UTC justin-millman github
98.53
15958070764 main MySQL Transaction Logic This commits all of the MySQL-specific transaction commands, according to the generic ICommands interface. There really isn't anything special about the implementation, other than that the actual derived types in play are ... push 29 Jun 2025 06:19PM UTC justin-millman github
98.53
15748752179 main When Deleting a Row of an Associative Relation during an Entity Update, Pass Only Primary Key Fields This commit fixes a bug whereby we were passing too many Fields to the ICommand.Delete function when handling deleted rows of an associative Rela... push 19 Jun 2025 03:34AM UTC justin-millman github
98.52
15548631360 main Insert Pre-Defined Rows on Table Creation This commit updates the logic for the CreateTable function of the Transactor to insert all rows for all Pre-Defined Entities at the same time. To do this, the pre-defined instances are now stored as a lis... push 10 Jun 2025 01:45AM UTC justin-millman github
98.52
See All Builds (231)
  • 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

© 2025 Coveralls, Inc