GitPLM releases

This topic will be used to record/announce GitPLM releases.

v0.0.1

  • initial release that can populate KiCad BOMs with parts from partmaster

some feedback on the KiCad forum:

Great work Cliff I think this is a good initiative

A few more features:

v0.0.2

  • support for adding/removing KiCad BOM items. See
    PCB-019.yml for an example of syntax.
  • misc cleanup
  • output BOMs are sorted by HPN

v0.0.3

  • write log file when processing BOM (see
    PCB-019.log). This ensures any errors are
    captured in a file that is automatically generated and can be stored in Git.

v0.0.4

  • switch from HPN (house part number) to IPN (internal part number) (#11)
  • implement Github CI (runs tests in PRs) (#13)
  • change -version commandline switch to print application version
  • add -bomVersion to specify BOM version to generate (used to be -version)

v0.0.5

  • add badges in readme
  • fix missed error check
1 Like

v0.0.6

  • print out version more concisely so it is easier to use in scripts

v0.0.7

  • support multiple sources of parts in partmaster – simply put on separate lines. GitPLM will select the part with lowest priority field value. Other fields like Description are merged – only need to be entered on one line. See CAP-000-1001 in examples/partmaster.csv for an example of how to do
    this.

v0.0.8

  • if BOM includes subassemblies (ASY, or PCB IPNs), also create a purchase BOM that is a recursive agregate of all parts used in the design. This BOM is named CCC-NNN-VVVV-all.csv

v0.0.9

  • fix bug in log file name – should sit next to source BOM so we can track changes

v0.0.10

  • allow partmaster.csv to life in any subdirectory instead of having to be at top level. This allows parmaster to live in a Git submodule.

v0.0.11

  • add support for checked column. This value now gets propogated from the
    partmaster to all BOMs and can be used for a process where a part information
    is double checked for accuracy.

v0.0.12

  • fix issue BOM lines with zero qty not being deleted (#28)

v0.0.13

  • in output BOMs, move MPN and Manufactuer columns left. This makes it easier
    to import BOMs into distributor web sites like Mouser. (#30)

v0.0.14

  • support PCA assemblies
1 Like

v0.3.0

  • support for hooks, copy, and required yml sections.
  • create soft links to release directories for sub-assemblies

Terminal User Interface (TUI)

GitPLM now has a TUI (terminal user interface), which supports browsing parts and the following features:

Key Action
/ Quick search across all columns.
p Parametric search with per-column filters.
e Edit the selected part.
a Add a new part with the next available IPN.
c Copy the selected row into a new part.
d Delete the selected part (with confirmation).
Tab Switch focus between file list and data table.
q Quit.

This makes it very quick to edit/copy/add parts without having to worry about opening CSV files in libreoffice, etc.

Self update

GitPLM also now has a self-update command:

[cbrake@ceres ~]$ gitplm update
Checking for updates...
Running development version. Latest release is v0.8.12
Proceeding with update...
Downloading https://github.com/git-plm/gitplm/releases/latest/download/gitplm-v0.8.12-linux-x86_64...
Binary updated successfully
Successfully updated to version v0.8.12

[cbrake@ceres ~]$ which gitplm
/home/cbrake/bin/gitplm

[cbrake@ceres ~]$ gitplm update
Checking for updates...
Already running the latest version (0.8.12)

[cbrake@ceres ~]$ gitplm version
0.8.12

GitPLM now supports the KiCad HTTP library API, which removes the need for the clunky database setup.

A number of releases have gone out since v0.9.0. Here is a summary of each.

v0.9.1

  • TUI: the parts list now scrolls a full page at a time with Ctrl-F (forward) and Ctrl-B (back), matching the less and vim convention.

v0.9.2

  • TUI: an active search or parametric filter now stays applied after copying, deleting, adding, or editing a part. The list previously reverted to showing every row until the filter was re-entered.

v0.9.3

  • KiCad HTTP API: parts are now named by their IPN, so a placed symbol’s library link reads like gplm:REG-0000-0005 instead of the part description.

v0.9.4

  • Parts whose variation codes a value rather than a plain number, such as ICS-0047-02V5 for 2.5 V or RES-0008-8R3m for 8.3 mOhm, are now accepted everywhere an IPN is read. Releases of these parts previously failed, the KiCad HTTP API served them without a category, and the TUI could suggest a next available IPN that collided with one of them.

v0.9.5

  • KiCad HTTP API: categoryPrefixedNames: true in gitplm.yml serves parts as res/RES-0000-1002 rather than RES-0000-1002, matching the names a KiCad database library used. A project moving from a .kicad_dbl library to the HTTP library can now keep the symbols it has already placed, which previously had to be found again by hand or rewritten in every schematic.

v0.9.6

  • Release configurations: add and remove accept several references in one ref field, separated by spaces or commas. Depopulating a board variant no longer needs a separate remove line per part, and added references are stored space-separated and sorted so they match the rest of the BOM. Single and comma-separated references keep working as before.

v0.9.7

  • KiCad HTTP API: part descriptions appear again in the KiCad symbol chooser. KiCad 9.0 and 10.0.6 read a part’s description from the part detail last, so a description supplied only through the fields and the category listing was cleared before the chooser displayed it. The description is now sent there as well. KiCad 10.0.7 carries a fix of its own, and this change works with it.

v0.9.8

  • TUI: saving a part whose IPN is already used by another part is refused. The edit form stays open with a message naming the file that holds the existing part, so a copied part cannot be saved until its IPN is changed. Every loaded partmaster file is checked, not only the one being edited.
  • Releases now cover 64-bit platforms only: Linux, macOS, and Windows on x86_64 and arm64. The 32-bit i386, arm6, and arm7 binaries are no longer published, so gitplm update on one of those platforms will not find a newer build. Building from source with go build still works there.

To update, run gitplm update, or download the binary for your platform from the releases page.

1 Like

GitPLM v0.10.0 adds post hooks to release scripts and a scrolling window for release output in the TUI.

v0.10.0

  • Release scripts accept a postHooks list that runs after the release BOM and
    the combined -all.csv are written, so a hook can generate files from the
    final BOM, such as a Markdown or PDF view. The same template variables as
    hooks are available. Files a post hook generates can be listed under
    required, which is now checked after the post hooks run.
  • The command help and README now show options before the command arguments,
    such as gitplm release -pmDir <dir> <IPN>. That is the order the parser has
    always required; an option placed after the arguments was silently ignored,
    and the previous help text suggested that order.
  • Release output in the TUI is shown in a popover with word wrapping, page
    scrolling, and a line counter. Output from release script hooks is captured
    into that window instead of being printed over the screen.
  • The README has an example of generating an
    InteractiveHtmlBom
    page from a release hook, and the example project includes a KiCad board with
    a release script that generates one.
  • The example project runs again with the current release. Its BOMs and
    partmaster files now use comma delimiters with every column present, each
    source directory has a CHANGELOG.md, and a gitplm.yml in the example
    points at its partmaster so no -pmDir flag is needed.

To update, run gitplm update, or download the binary for your platform from the releases page.

GitPLM v0.10.1 fixes releases of parts that have no BOM, such as PCBs.

v0.10.1

  • MFG.md and CHANGELOG.md are copied for every release. Parts released
    without a BOM, such as PCBs, previously left them out of the release
    directory, and listing either file under required failed.

To update, run gitplm update, or download the binary for your platform from the releases page.