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
-versioncommandline switch to print application version - add
-bomVersionto specify BOM version to generate (used to be-version)
v0.0.5
- add badges in readme
- fix missed error check
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
Descriptionare merged – only need to be entered on one line. SeeCAP-000-1001inexamples/partmaster.csvfor 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.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
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-0005instead of the part description.
v0.9.4
- Parts whose variation codes a value rather than a plain number, such as
ICS-0047-02V5for 2.5 V orRES-0008-8R3mfor 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: trueingitplm.ymlserves parts asres/RES-0000-1002rather thanRES-0000-1002, matching the names a KiCad database library used. A project moving from a.kicad_dbllibrary 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:
addandremoveaccept several references in onereffield, separated by spaces or commas. Depopulating a board variant no longer needs a separateremoveline 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, andarm7binaries are no longer published, sogitplm updateon one of those platforms will not find a newer build. Building from source withgo buildstill works there.
To update, run gitplm update, or download the binary for your platform from the releases page.
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
postHookslist that runs after the release BOM and
the combined-all.csvare written, so a hook can generate files from the
final BOM, such as a Markdown or PDF view. The same template variables as
hooksare 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 asgitplm 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 aCHANGELOG.md, and agitplm.ymlin the example
points at its partmaster so no-pmDirflag 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.mdandCHANGELOG.mdare copied for every release. Parts released
without a BOM, such as PCBs, previously left them out of the release
directory, and listing either file underrequiredfailed.
To update, run gitplm update, or download the binary for your platform from the releases page.
