Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 21:51
· 68 commits to main since this release

Added

  • tx bpa rules add, set, remove, and init author custom BPA rules from the CLI. They edit
    your config-dir bpa-rules.json (which bpa run loads) or the file --rules-file names, and
    keep fields tx does not model. Scope and severity are validated (#232).
  • tx bpa rules add, set, and remove take a model to edit the rules that ship with it, in
    its BestPracticeAnalyzer annotation. The edit runs like other model mutations (--save,
    --stage, --save-to, ...), uses the same field checks as rules files, and keeps fields tx
    does not model (#330).
  • tx bpa run --fix now fixes DAX_COLUMNS_FULLY_QUALIFIED and DAX_MEASURES_UNQUALIFIED
    by rewriting the object's DAX, through two new fix expressions:
    QualifyColumnReferences() and UnqualifyMeasureReferences(). References that cannot be
    resolved for certain (a column name in several tables, a name that is also a string literal,
    a measure qualified with the wrong table) are reported as fix errors and left unchanged (#267).
  • tx doctor reports the current session's connection (current-session) and, on Windows,
    warns when you are signed in but the token cache file is missing.
  • tx doctor --show-details includes account, server, database, model, profile, and session
    names and full paths. Without it, the report is safe to paste into a bug report: the home
    directory is shown as ~ and names are replaced by what kind of thing they are.
  • tx doctor suggests tx session prune when session files of exited shells are left over.

Changed

  • tx doctor output is shorter and only warns when something needs doing. Optional states
    (no profiles, not signed in, no update check yet) are reported with the new Info status
    (INFO) instead of WARN. The runtime, operating-system, terminal, and
    model-providers checks are removed because they could never fail; the runtime, OS, and
    terminal details are still in the header and in the JSON fields. The update-cache message
    now shows a short UTC time and says to run tx update. A source build (./tx) or an install
    tx update cannot update reports a newer release as INFO without that hint, matching the
    update notice. The header and JSON (installKind) show how tx was installed.
  • tx doctor no longer prints the end-of-command "a new version is available" notice (its
    update-cache check already says so) and no longer refreshes the update cache over the
    network, keeping its promise to stay local.
  • tx doctor no longer creates ~/.tomix on a machine where tx has not run yet; it reports
    that the directory will be created on first use.
  • tx get text output shows only the properties that are set, aligned under the object's path
    and kind, with annotations and translations in their own sections and multi-line expressions
    as indented blocks. Unset settable properties fold into one Not set: line, followed by a
    tx set hint. The new --all option lists every property, with a "N of M set" count, a dim
    — for empty values, and a read-only tag. JSON and CSV output are unchanged.
  • tx get --query with an unknown property now fails with TOMIX_PROPERTY_NOT_FOUND and
    suggests the closest property name, or lists the valid ones when nothing is close. An unset
    annotation: or translation: token reads back as null.

Changed

  • tx bpa rules list shows each rule's scope, and lists the rules in your config-dir
    bpa-rules.json (source user), matching what bpa run loads (#232).
  • Config, profiles, recent connections, session, staging, update-check, auth, BPA, and
    test-snapshot files are now read and written with source-generated JSON instead of runtime
    reflection, as groundwork for a faster-starting Native AOT build. The files' format is
    unchanged, so existing ones keep working.
  • Release binaries and the dotnet tool package no longer include msalruntime and
    msasxpress, two native libraries tx never uses for sign-in (the release binary is about
    3 MB smaller). The dotnet tool package now talks to XMLA endpoints uncompressed, as the
    release binaries already did.

Removed

  • Breaking: tx script is removed. Despite its description it never ran C#: it evaluated a
    handful of fixed read-only expressions (Model.Tables.Count, Model.Tables[0].Name, ...) and
    could not change a model. Use tx ls, tx get, and tx find (with --output-format json)
    to read the same information. The TOMIX_SCRIPT_FILE_NOT_FOUND and TOMIX_SCRIPT_REQUIRED
    codes are gone with it.
  • Breaking: tx load is replaced by tx summary, which is listed under Discover and reports
    more: the source (path or workspace endpoint), on-disk format, culture, default storage mode,
    and partition, calculation group, perspective, and culture counts alongside the old ones.
  • Breaking: the compatibility -q <property>/-i <value> options on tx add and tx set
    are removed. Use --set <property>=<value> (repeatable; <property>=- reads stdin) and, on
    add, --expression/-e for the new object's value. -q now means --quiet on every command.
    The TOMIX_SET_INPUT_CONFLICT, TOMIX_ADD_INPUT_CONFLICT, and TOMIX_ADD_VALUE_REQUIRED codes
    are gone with them.

What's Changed

  • feat(bpa): DAX-rewrite fixes for column and measure qualification by @bgarcevic in #326
  • feat(bpa): author custom rules with bpa rules add/set/remove/init by @bgarcevic in #328
  • feat(doctor): shareable report, current session, and honest update advice by @bgarcevic in #331
  • refactor: source-generated JSON and a single-binary Native AOT preview by @bgarcevic in #329
  • feat(bpa): author rules in the model's BestPracticeAnalyzer annotation by @bgarcevic in #332
  • feat(get): compact property view with --all and property suggestions by @bgarcevic in #334
  • feat!: remove tx script, replace tx load with tx summary, retire add/set -q/-i by @bgarcevic in #333
  • chore(release): prepare 0.7.0 by @github-actions[bot] in #327

Full Changelog: v0.6.0...v0.7.0