Skip to content

NetCrux 1.0.0

Choose a tag to compare

@martin-robert-fink martin-robert-fink released this 30 Sep 14:07

The first stable release, and the end of the public beta. Two things follow
from that. NetCrux 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 NetCrux in the Dock, the title bar, the Start menu and your app menu.

Download it from netcrux.app/download, open a
netlist in the browser at app.netcrux.app, or read
the manual at docs.netcrux.app.

New

  • Large designs lay out in seconds, on every platform. The layout engine
    now runs natively on macOS, Windows and Linux, as a port of the Eclipse
    Layout Kernel that draws the same schematic as before. On a current laptop
    picorv32 lays out in about three seconds and VexRiscv in about fifteen, and a
    100,000-cell scope fits the window and stays visible when you zoom out.
    Windows and Linux previously ran layout in an interpreter and timed out on
    designs that size.
  • X-Trace has a panel. NetCrux could already walk the back-cone of an X and
    had nowhere to put the answer, so the result was computed and discarded. The
    X-Trace panel is a dock you can move and reopen, it shows the chain with the
    net that originated it, and closing the tab keeps the chain while Clear
    empties it. Trace X Origin on the schematic's context menu starts the
    walk (Pro); the panel itself is Open Core.
  • 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. 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-eula and
    --reset-telemetry-consent reopen either prompt.
  • One project file that opens in whichever tool you reach for. A
    <design>.crux-project manifest, or a design directory, opens from the
    file picker, from the command line, and by double-clicking it in Finder or a
    Linux file manager; a manifest double-clicked on macOS opens in the EDACrux
    product you chose for it.
  • Open a design from VS Code. The EDACrux extension can hand NetCrux a
    design it has never opened before.
  • Review a schematic together (Enterprise). NetCrux can host a
    collaborative session of its own, over the same protocol WaveCrux uses, with
    a schematic as the payload. Admission is asked for out loud, and a
    participant who leaves clears out of the room.
  • Deployment for managed fleets. Alongside the installer and the AppImage
    there is now an MSI for SCCM and Group Policy, and .deb and .rpm packages
    for package-managed Linux. The Linux packages are named netcrux, so apt
    and dnf install and remove them under that name. SHA256SUMS is written
    so that sha256sum -c verifies 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, distributes organization symbol libraries, and restricts which peers
    cross-probing will talk to. At startup NetCrux 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. The Symbol Manager shows the organization's packs and whether they
    arrived.
  • An audit trail (Enterprise). Schematic opens (by design name), session
    saves, searches, cross-probe originations and licence tier changes 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.
  • NetCrux by ear. A full pass with a screen reader, now pinned as
    regression tests: the schematic canvas announces what is on it and can be
    driven from the keyboard: select, push into a hierarchy, open the element
    menu; the Hierarchy tree is one Tab stop driven by the arrow keys; pins are
    selectable without a mouse; focus that is lost returns to a live control; and
    the first-launch dialogs can be answered from the keyboard.
  • Report a problem from inside the app, against the public NetCrux
    repository, with issue templates on the other end.

Fixed

  • On Linux, designs lay out. Every Linux build through 0.8.0 opened a
    netlist and then failed to lay it out, because a library the layout engine
    loads was missing from the bundle.
  • Library black boxes are cells. A netlist carrying vendor blackbox
    modules, as synth_ice40 output does, no longer shows each one as an empty
    hierarchy scope you can push into.
  • Zooming from the toolbar, the menu or the keyboard holds the centre of the
    view
    , instead of zooming about the design's origin.
  • A hierarchy filter that matches nothing points you at Search, which finds
    cells as well as scopes.
  • On Windows a project keeps the case of its source paths.
  • 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.
  • The menu bar did nothing until you clicked something. Straight after
    launch the menus dispatched into empty space, so Help ▸ Command Palette
    and anything else you picked before touching the window was swallowed.
  • A netlist whose module contains itself no longer crashes the search and
    the hierarchy tree.
  • A fatal elaboration error fits in the drawer that explains it, instead of
    overflowing it.
  • Large designs pan, click and keyboard-step without freezing. Panning and
    hit-testing scanned the whole scope on every interaction, the cone of
    influence froze the window on a large scope, the activity heatmap's net walk
    held the frame, and a net's fanout was rendered as one enormous paragraph.
    All four are fixed.
  • Sessions and projects come back as you left them. A reopened session
    lands where it was saved and keeps its scope when the design reloads; a
    restored project tab keeps the settings from its project file.
  • Load Comparison Netlist loads the revision you picked, and the Diff View
    panel no longer advertises controls that do nothing.
  • Open Waveform File has a waveform picker and the activity heatmap honours
    the window you give it.
  • Toggle Theme switches between Crux Dark and Crux Light, and every theme
    preset paints the window chrome it has always painted.
  • VHDL needs only GHDL. NetCrux lowers VHDL with ghdl --synth and has
    never used ghdl-yosys-plugin; the documentation, the engine-fetch script
    and the notices said otherwise. There is nothing extra to install.
  • The web viewer loads a netlist, from a URL or from a file you pick.
  • Colours, dialogs and empty states across the app. A border token that was
    colouring text is corrected and guarded against; Solarized Dark's status bar
    is legible; dialogs no longer stack on a held shortcut or close on a stray
    click; the Symbol Manager shows the same empty state as every other panel;
    and toggling a dock redraws the dock rather than the whole layout.
  • Double-clicking works, and NetCrux stops claiming files that are not its
    own.
    Its netlists, sessions and project manifests open from Finder and from
    Linux file managers; NetCrux no longer offers itself as the handler for every
    source and text file.
  • The command line behaves. netcrux --help prints usage and exits, and a
    flag given without a value no longer swallows the filename after it.
  • Sessions, suite manifests and netlists open as what they are, rather than
    being guessed at.
  • LAN sharing on a port that is already taken fails and says why, host
    addresses dial correctly, and an IPv6 host with a zone id is recognised on
    Linux as well as macOS.
  • A symbol directory that cannot be read is skipped with the problem
    logged, instead of taking the load down with it.
  • Cross-probe sends report every failure, in your language, and closing the
    panel mid-send is safe.
  • Help icons open the section of the manual that answers them, and the
    privacy and terms links go to the suite pages.
  • A keymap written by a newer build is refused with an explanation, rather
    than silently overwritten.
  • A cross-probe arriving from another EDACrux tool bounces the Dock icon.
  • A project file can no longer choose what NetCrux runs. Yosys commands
    from a project file are vetted, and a cross-probing peer can no longer
    influence the editor command line NetCrux builds.

Also

  • macOS 12.0 (Monterey) or newer is now required. NetCrux 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.
  • On Windows a fresh install goes to C:\Program Files\NetCrux, not
    NetCrux Pro. Upgrading over 0.8.0 with the .exe keeps the existing
    NetCrux Pro folder, 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; the AppImage's desktop entry also names the
    binary that actually wrote it. .deb and .rpm installs were never
    affected.
  • On Linux, NetCrux needs glibc 2.34 or newer.
  • Other performance and quality enhancements.