Repository navigation
v0.13.0
Added
tx deploychecks the deployed model after it lands: it re-reads the target and reports every
object the server holds in an error, incomplete, or unprocessed state, in the text output and
asvalidationin the JSON result. Objects in an error state (a measure whose DAX does not
resolve, a broken RLS filter) fail the deploy with exit code 1 and
TOMIX_DEPLOY_VALIDATION_FAILED, even though the model is deployed; incomplete objects warn
(TOMIX_DEPLOY_VALIDATION_WARNINGS); unprocessed ones point attx refresh. A check that
cannot run warns withTOMIX_DEPLOY_VALIDATION_UNAVAILABLE.--ci vsts|githubnow prints
annotations for post-deploy errors and warnings.tx deploy --rollback-on-errorchecks the deployed model before the deploy is kept. On an
existing model the deploy runs inside a server transaction and rolls back when an object is in
an error state, leaving the target's definition and data unchanged. A new model is deleted
again. A rolled-back deploy fails withTOMIX_DEPLOY_ROLLED_BACKand"status": "rolled-back".
See ADR 0005.tx formatstyle options (#229):--separators us|eushows DAX with;list and,
decimal separators (display only; models always store the US form, and an explicit
--separators euwith--save,--save-to,--stageor--revertfails with the new
TOMIX_FORMAT_SEPARATORS_DISPLAY_ONLY),--function-spacing space|nonedrops the space
before a DAX call's parenthesis, and--shortundoes--long. Each has a config key
(format.separators,format.functionSpacing,format.lines) that the flag overrides.
Golden files pin the printed output for each style.tx bpa run --vpax <file.vpax>reads VertiPaq statistics from a file exported with
tx vertipaq --export, so statistics rules run on a model file, a read-only connection, or in
CI without annotating the model. The statistics apply in memory only. A file that matches no
table fails the run (TOMIX_BPA_VPAX_MISMATCH); tables missing from the model warn
(TOMIX_BPA_VPAX_PARTIAL) (#234).- New default-off
vertipaqruleset preset with every bundled rule that reads statistics,
including two new rules:LARGE_SHARE_OF_MODEL_SIZEand
UNUSED_HIDDEN_HIGH_CARDINALITY_COLUMNS. Rules can read model-level annotations through
Model.GetAnnotation(...)(#234).
Changed
FIX_REFERENTIAL_INTEGRITY_VIOLATIONS,AVOID_BI-DIRECTIONAL_RELATIONSHIPS_AGAINST_HIGH-CARDINALITY_COLUMNS
andLARGE_TABLES_SHOULD_BE_PARTITIONEDmove to thevertipaqpreset (categoryVertiPaq),
out ofstandardandfull.bpa runwithout--rulesetand thedeployBPA gate add the
vertipaqpreset when the model has statistics (Vertipaq_*annotations or--vpax), so an
unannotated model no longer lists them as "Not checked". A named--rulesetis used as given:
--ruleset standardnow skips them (#234).
Fixed
tx test --tolerance(andtx: tolerance=) now applies to measures whose data type is Variant.
Their results read back asobjectcolumns, which compared exactly, so floating-point noise
failed the test whatever the tolerance. Cells compare within the tolerance when both sides are
numbers; text, dates and booleans still compare exactly.--ignore-row-ordersorts these
columns by value after the dimension columns, in a fixed BLANK, number, text order.
What's Changed
- feat(bpa): read VertiPaq statistics from .vpax and add a vertipaq preset by @bgarcevic in #464
- feat(format): style options for separators, function spacing, and line length by @bgarcevic in #465
- feat(deploy): post-deploy validation reporting in result and JSON by @bgarcevic in #467
- build: Bump the nuget-minor-patch group with 7 updates by @dependabot[bot] in #468
- feat(deploy): --rollback-on-error validates inside a transaction and rolls back by @bgarcevic in #469
- fix(test): apply tolerance to Variant (object) measure columns by @bgarcevic in #471
- chore(release): prepare 0.13.0 by @github-actions[bot] in #466
Full Changelog: v0.12.1...v0.13.0