Skip to content

chore(release): prepare 0.13.0 - #466

Merged
bgarcevic merged 1 commit into
mainfrom
release/next
Oct 20, 2026
Merged

bgarcevic merged 1 commit into
mainfrom
release/next

Conversation

@github-actions

@github-actions github-actions Bot commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Merging this PR tags v0.13.0 and publishes it.

Bump: minor, from the commit titles since the last release.
To ship more first, keep merging; this PR updates itself.
Polish the notes by editing CHANGELOG.md here, just before merging:
the next merge to main rebuilds this branch and drops edits made here.

Release notes

Added

  • tx deploy checks 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
    as validation in 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 at tx refresh. A check that
    cannot run warns with TOMIX_DEPLOY_VALIDATION_UNAVAILABLE. --ci vsts|github now prints
    annotations for post-deploy errors and warnings.
  • tx deploy --rollback-on-error checks 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 with TOMIX_DEPLOY_ROLLED_BACK and "status": "rolled-back".
    See ADR 0005.
  • tx format style options (feat(format): shared format options (--semicolons, skip-space-after-function) + output goldens #229): --separators us|eu shows DAX with ; list and ,
    decimal separators (display only; models always store the US form, and an explicit
    --separators eu with --save, --save-to, --stage or --revert fails with the new
    TOMIX_FORMAT_SEPARATORS_DISPLAY_ONLY), --function-spacing space|none drops the space
    before a DAX call's parenthesis, and --short undoes --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) (feat(bpa): --vpax input and default-off size-stats rules #234).
  • New default-off vertipaq ruleset preset with every bundled rule that reads statistics,
    including two new rules: LARGE_SHARE_OF_MODEL_SIZE and
    UNUSED_HIDDEN_HIGH_CARDINALITY_COLUMNS. Rules can read model-level annotations through
    Model.GetAnnotation(...) (feat(bpa): --vpax input and default-off size-stats rules #234).

Changed

  • FIX_REFERENTIAL_INTEGRITY_VIOLATIONS, AVOID_BI-DIRECTIONAL_RELATIONSHIPS_AGAINST_HIGH-CARDINALITY_COLUMNS
    and LARGE_TABLES_SHOULD_BE_PARTITIONED move to the vertipaq preset (category VertiPaq),
    out of standard and full. bpa run without --ruleset and the deploy BPA gate add the
    vertipaq preset when the model has statistics (Vertipaq_* annotations or --vpax), so an
    unannotated model no longer lists them as "Not checked". A named --ruleset is used as given:
    --ruleset standard now skips them (feat(bpa): --vpax input and default-off size-stats rules #234).

Fixed

  • tx test --tolerance (and tx: tolerance=) now applies to measures whose data type is Variant.
    Their results read back as object columns, 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-order sorts these
    columns by value after the dimension columns, in a fixed BLANK, number, text order.

@github-actions
github-actions Bot force-pushed the release/next branch 4 times, most recently from 6d83e69 to 7cb9c15 Compare October 19, 2026 19:32
@bgarcevic
bgarcevic enabled auto-merge (squash) October 20, 2026 08:15
@bgarcevic
bgarcevic merged commit 1e8b18e into main Oct 20, 2026
16 checks passed
@bgarcevic
bgarcevic deleted the release/next branch October 20, 2026 08:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant