Repository navigation
SimCrux 1.0.0
The first stable release, and the end of the public beta. Two things follow
from that. SimCrux is now licensed: Open Core is free and stays free, and the
Pro and Enterprise features the beta handed to everyone now need a key. When
one is refused, the app says which tier it belongs to instead of quietly doing
nothing. And the app is named for the product rather than for the tier, so it
is SimCrux in the Dock, the title bar, the Start menu and your app menu.
Download it from simcrux.app/download, read
results in the browser at app.simcrux.app, or read
the manual at docs.simcrux.app.
New
- cocotb is a first-class test type.
type: cocotbnow means something:
SimCrux reads cocotb's ownresults.xmland the summary table it prints, so
a cocotb suite is scored the way cocotb scored it. Tested against cocotb 1.9,
2.0 and 2.1. simcrux-pro push-results, the CI writer (Enterprise). Every desktop
artifact (the DMG, the installer, the portable zip, the AppImage, the
tarball, the.deband the.rpm) now carries the headless binary, so a CI
job that has SimCrux installed can push a completed run to the team database
without a second download. It exits 64 on a bad command line and reports a
refused backend on stderr.- A team results database (Enterprise). Point SimCrux at a PostgreSQL
database you own andsimcrux-pro push-resultswrites your CI runs into
it, from as many machines as your pipeline runs on, each attributed to its
origin. Reading that pooled history back inside each engineer's app is
planned for 1.1: today the scope a run is filed under comes from the
checkout path on the machine that wrote it, so the app does not yet chart
what CI pushed. The local trend store keeps working regardless. - Distributed runs (Enterprise). One templated cluster backend submits a
regression to your scheduler, with the log path and work directory per test
under a work root you control, and an organization-set retention ceiling that
prunes what it keeps. - Licensing, in the app. Settings ▸ License takes a key, shows what it
entitles you to and when it renews, and Manage subscription opens the
billing portal. Education users can apply for an EDU licence from the same
panel. For machines that cannot reach the internet there are licence files:
export a request, import the signed file, and the tier is active offline,
including for--ciandpush-resultson the machine the file was issued
for. A licence that has been cancelled or has run out of seats drops the app
back to Open Core and says so, rather than failing in some other way. - A suite licence spends one seat per machine, not one per product. A seat
is a computer. Installing the third and fourth EDACrux product on a machine
that already has a seat no longer exhausts the seat count, because all four
products now present the same machine identity. Deactivate this machine
releases that seat for every EDACrux product on the computer at once, from
whichever product you happen to be in, and the confirmation says so before
you agree to it. - First launch asks. You accept the licence agreement, then answer a
usage-statistics disclosure, before the app opens. Usage statistics start
switched off in the EEA, the UK, Switzerland and South Korea, and can be
turned off anywhere in Settings ▸ Privacy, which now also shows the
installation ID the reports carry, so you can quote it.--reset-eulaand
--reset-telemetry-consentreopen either prompt. - Your history survives an upgrade. The trend database is backed up before
any schema migration, records which build wrote it, and is quarantined and
reported rather than deleted if it comes from a newer build. The per-project
trend databases get the same treatment, and the per-suite chart now shows
your local runs whether or not a team database is configured. - Export a dashboard from the app, not only from a headless run.
- One project file that opens in whichever tool you reach for. A
<design>.crux-projectmanifest opens from both dialogs and from the command
line; a manifest double-clicked on macOS opens in the EDACrux product you
chose for it. - Deployment for managed fleets. Alongside the installer and the AppImage
there is now an MSI for SCCM and Group Policy, and.deband.rpmpackages
for package-managed Linux. The Linux packages are namedsimcrux, soapt
anddnfinstall and remove them under that name.SHA256SUMSis written
so thatsha256sum -cverifies it. - Organization policy (Enterprise). An administrator can ship a signed
policy file that sets the update channel, pins a version or points at a
mirror, names the account that may submit to the team database, and caps
result retention. At startup SimCrux reports which policy file it accepted
(or that it refused one, and why) and names the keys this build honours and
the ones it ignores, so a mistyped key is visible instead of silent. - An audit trail (Enterprise). Regression start and finish, the simulator
used, results pushed to the team database, baseline rebases and retention
purges are recorded. - Updates know what you are entitled to. A release that only paid seats can
install is no longer offered to an Open Core seat. - SimCrux by ear. A full pass with a screen reader, now pinned as
regression tests: launch focus lands on a named control, a results row is
read as one sentence, the Tests dock and the results table are keyboard-
driven with Enter and Space, a failed load is spoken, panels resize from the
keyboard, and the first-launch dialogs can be answered without a mouse. - Report a problem from inside the app, against the public SimCrux
repository, with issue templates on the other end.
Fixed
- On Windows and Linux the menu bar works for the whole session. Items that
need an open document stayed greyed out from launch until you quit; macOS,
which uses the system menu bar, was never affected. - Dropping a tab on another tab reorders it, rather than doing nothing.
- A failing cocotb run was scored as a PASS. On cocotb 1.9 and 2.0 SimCrux
read the wrong thing and reported green regressions that had failed. - Verilator warnings no longer fail a build,
#delays work, and extra
flags you pass through reach the compiler. maxWaveformRunswas doing nothing at all. Waveform paths were never
recorded on ingest, so the retention setting had nothing to count; dumps are
now kept and pruned as configured,--ciprunes retained dumps, and
capture: alwayskeeps the dumps from passing tests.- A project that will not load says so where it happens. A regex that does
not compile fails the load, a detector given a number is a load error with
its line number instead of a crash, a bad cocotbmax_failuresfails the
load, a project that loads with warnings says so, and an included file
inherits the including file'sdefaults.timeout. - Cancel ends the run. Run and Re-run come back after a cancelled
regression instead of staying disabled, and Re-run in the Details panel
runs only the test you selected. --cibehaves in CI. It loads the project at the licence tier you hold
rather than always at Open Core, it fails with exit 2 when a scheduled test
never reports a result and when--baselinecannot be read, exports create
their directory and never cost you the summary,--jsonputs nothing but
JSON on stdout even when the framework itself errors, import and
export-dashboard failures go to stderr, and a cluster run that dies is an
error rather than a green job.- Saving two files at once reruns the regression once, not twice.
- Cross-probing works again. SimCrux answers inbound cross-probe requests,
a settings change no longer restarts the server and drops every peer, a send
says when the peer has gone, failures are reported in your language, and
peer discovery no longer stalls the window. - Plugins get what the ABI promises. A driver plugin receives a real spec
object and a probe reply, plus the test, the host version and the right
working directory; a plugin folder that cannot be read is reported at once
instead of after a minute; shutdown escalates only against a plugin that is
still running; and quitting no longer waits out the full plugin grace period. - Naming a project on the command line no longer crashes a first run.
- An applied theme pack stays applied, in the session and on the next
launch; every theme preset paints the chrome it has always painted. - Settings stick. A project entry with only options or environment keeps
the binary path set in Settings, release builds can turn on Tab Diagnostics,
and the flaky-retry switch and attempts stepper take effect. - Big runs stay responsive. The log store is bounded by lines as well as
buffers, the trend heatmap virtualizes its cells, and the dashboard's
test-name filter applies once typing settles rather than on every letter. - Closing a tab while its run finishes still prunes and runs the completion
hooks, and trend storage figures refresh after a rebuild that outlived the
card that started it. - Colours, dialogs and empty states across the app. Border tokens that were
colouring text are corrected and guarded against; the Inspector shows the
same empty state as every other panel; dialogs no longer stack on a held
shortcut or close on a stray click; Settings closing mid-write no longer
throws; and toggling a dock redraws the dock rather than the whole layout. - Double-clicking works, and SimCrux stops claiming files that are not its
own. Its configs and results open from Finder and from Linux file managers;
SimCrux is no longer the default application for every YAML file. - Open in SimCrux Desktop opens the project as a config tab, instead of
handing it to your editor, Pin Project Tab says it requires Pro instead
of doing nothing, and Reopen Closed Project says when the folder has gone
and moves on. - A keymap written by a newer build is refused with an explanation, rather
than silently overwritten, and two keyboard chords that reported "not yet
implemented" are gone. - A cross-probe arriving from another EDACrux tool bounces the Dock icon.
- A project file can no longer choose what SimCrux runs. It cannot pick the
binary SimCrux spawns or its environment, it cannot make--ciwrite outside
the project, and a test name containing../cannot put its log outside the
work root. On Windows, SimCrux no longer runs an engine, editor or cluster
client planted in the folder it was launched from.
Also
- macOS 12.0 (Monterey) or newer is now required. SimCrux 0.8.0 ran on
macOS 10.15 and later; 1.0 does not. If you are on macOS 11 or earlier, 0.8.0
remains available and will keep working, but 1.0 and later will not install. - The bundled
simcrux-procommand-line binary launches on macOS. A
Dart-compiled binary is killed on sight by the hardened runtime unless it is
signed with the right entitlement; it now is, and the release build runs the
signed binary before it publishes it. (No published 0.8.0 build carried the
CLI, so nothing in the wild was affected.) - On Windows a fresh install goes to
C:\Program Files\SimCrux, not
SimCrux Pro. Upgrading over 0.8.0 with the.exekeeps the existing
SimCrux Profolder, because Inno Setup resolves the install directory from
the recorded application id rather than from the new default; the.msi
replaces the old install and moves it. Your settings are unaffected either
way. - Linux app-menu entries no longer carry the "Pro" suffix. If you run the
AppImage, the entry it writes into your applications menu is rewritten on
first launch of the new build..deband.rpminstalls were never
affected. - On Linux, SimCrux needs glibc 2.34 or newer.
- Other performance and quality enhancements.