Repository navigation
v0.7.0
Added
tx bpa rules add,set,remove, andinitauthor custom BPA rules from the CLI. They edit
your config-dirbpa-rules.json(whichbpa runloads) or the file--rules-filenames, and
keep fields tx does not model. Scope and severity are validated (#232).tx bpa rules add,set, andremovetake a model to edit the rules that ship with it, in
itsBestPracticeAnalyzerannotation. 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 --fixnow fixesDAX_COLUMNS_FULLY_QUALIFIEDandDAX_MEASURES_UNQUALIFIED
by rewriting the object's DAX, through two new fix expressions:
QualifyColumnReferences()andUnqualifyMeasureReferences(). 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 doctorreports 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-detailsincludes 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 doctorsuggeststx session prunewhen session files of exited shells are left over.
Changed
tx doctoroutput is shorter and only warns when something needs doing. Optional states
(no profiles, not signed in, no update check yet) are reported with the newInfostatus
(INFO) instead ofWARN. Theruntime,operating-system,terminal, and
model-providerschecks are removed because they could never fail; the runtime, OS, and
terminal details are still in the header and in the JSON fields. Theupdate-cachemessage
now shows a short UTC time and says to runtx update. A source build (./tx) or an install
tx updatecannot update reports a newer release asINFOwithout that hint, matching the
update notice. The header and JSON (installKind) show how tx was installed.tx doctorno longer prints the end-of-command "a new version is available" notice (its
update-cachecheck already says so) and no longer refreshes the update cache over the
network, keeping its promise to stay local.tx doctorno longer creates~/.tomixon a machine where tx has not run yet; it reports
that the directory will be created on first use.tx gettext 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 oneNot set:line, followed by a
tx sethint. The new--alloption lists every property, with a "N of M set" count, a dim
—for empty values, and aread-onlytag. JSON and CSV output are unchanged.tx get --querywith an unknown property now fails withTOMIX_PROPERTY_NOT_FOUNDand
suggests the closest property name, or lists the valid ones when nothing is close. An unset
annotation:ortranslation:token reads back as null.
Changed
tx bpa rules listshows each rule's scope, and lists the rules in your config-dir
bpa-rules.json(sourceuser), matching whatbpa runloads (#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 toolpackage no longer includemsalruntimeand
msasxpress, two native libraries tx never uses for sign-in (the release binary is about
3 MB smaller). Thedotnet toolpackage now talks to XMLA endpoints uncompressed, as the
release binaries already did.
Removed
- Breaking:
tx scriptis 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. Usetx ls,tx get, andtx find(with--output-format json)
to read the same information. TheTOMIX_SCRIPT_FILE_NOT_FOUNDandTOMIX_SCRIPT_REQUIRED
codes are gone with it. - Breaking:
tx loadis replaced bytx 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 ontx addandtx set
are removed. Use--set <property>=<value>(repeatable;<property>=-reads stdin) and, on
add,--expression/-efor the new object's value.-qnow means--quieton every command.
TheTOMIX_SET_INPUT_CONFLICT,TOMIX_ADD_INPUT_CONFLICT, andTOMIX_ADD_VALUE_REQUIREDcodes
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