Skip to main content

Release Notes v2.6.0

Download:Windows|macOS
This is a minor release. Minor releases introduce new features but no backward compatibility issues. Below are some of the highlights. For a more extensive listing of all the changes you can refer to the beta changelog.
  • API: writing endpoints and query parameters to filter data added
  • API: short(er) IDs are now used (instead of encoded - always different - text strings)
  • BOM: two view modes are now available - single-level (same as before) and multi-level (the parts a sub-assembly is composed of are also listed in an hierarchical way). The multi-level view also allows to get a flatten list by grouping data by Manufacturer PN
  • Inventory: custom fields can now be defined (through Settings > Workspace > Custom fields)
  • Purchase Orders: when importing POs from online suppliers (e.g. DigiKey, Mouser), set the product URL on each item if available
  • Tables: grouped by columns are left aligned on the table for easier navigation (expanding/collapsing grouped rows)
  • Printing barcode labels: built-in PDF viewer/printer can now overwritten so a third-party app is used instead (e.g. Adobe Acrobat, Foxit Reader)
  • [fix] Column selector not showing up on first mouse hover
  • [fix] Remove purchased inventory when reverting a purchase order from ordered status
  • [fix] When adding inventory, if a storage location is not selected, add it to "unallocated" instead of an existing inventory
  • [fix] Storage: some parts not being listed under the "unallocated" node
  • [fix] When removing storage locations, ensure inventory's storage location is set as "unallocated"
  • [fix] Welcome screen: sign-in by pressing enter
  • [fix] Prevent crash in case most recent workspace can't be accessed

A better API

The API got a significant update: you can now use it to create and edit things on the app! Documentation is still served by the app but now it can also be seen here:

API Documentation

Searching capability is also improved as you can now pass filters through most GET endpoints. A few examples:

GET /parts?part.manufacturer=Microchip&limit=10  # get 10 Microchip parts
GET /parts?part.stock={"$lt": 50} # get all parts that have less that 50 units of stock

This is also a first step on a bigger goal: a plugin system. By making the API more permissible and powerful will allow to create plugins that will bring additional value to the app.

Shorter IDs, Lower Density Barcodes

The API and barcode labels now use shorter IDs. For barcode labels, shorter text means lower density, which in turn results in easier to scan barcodes.

For the API, it keeps things cleaner, as these short IDs are now also "fixed" strings. Before, they were encoded strings, and as such, always different even if pointing to the same thing once decoded. To keep backward compatibility, the current API still accepts older/longer/encoded IDs.

Barcode Labels Printing Issues

The app ships with SumatraPDF on Windows. This is used to print your barcode labels which are first converted into PDF files. Even though for the most part this has been working fine, there have been also a few issues with it, namely poor printing quality and scaling issues on some printers or specific label sizes. To overcome this, you can now override the command the app uses to print PDFs, through Settings > Barcodes > PDF print command.

This allows you to use third-party software such as Adobe Acrobat or Foxit Reader to print PDFs through the app. In order to do so, you'd set a command like this in the settings:

"C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat.exe" /s /o /h /t $filePath "$printerName"

Each PDF software also comes with its own shortcomings though. Adobe Acrobat will always open its GUI which might be inconvenient. Foxit Reader will happily run on the background but will add some margins to the labels. Each software also has its own way to configure printing settings (e.g. scaling etc). These settings cannot be passed on the command line, so you'll have to use the app's GUI to print a label first so it will then remember them whenever using the command line later on.