Horizon
Version 1.3.0

New features

Board editor

  • Decals for putting logos and symbols on boards (d2e88d7)
  • "Add text" tool for adding text linked to packages (6fbfb78)
  • Same net clearance check (46c2156)
  • Support highlight collisions and DRC off mode in router (078d543)

Editors (interactive manipulator)

  • Actions for pan and zoom (1d57d9c)
  • Draw circle tool (b63a8c1)
  • Highlight net class action in schematic and board (9f1a240)

Pool manager

  • Support moving and renaming pool items (14de320)
  • Pull request review tool (needs to be enabled in prefs.json) (e2d4cd2)
  • Checks for Units/Entities/Parts (76c596c)

Symbol editor

3D preview

  • Add option for hiding "do not populate" components (d7d6a9c)

Package editor

Misc

  • Store application version information in pool items and projects (9f5cc52)

Enhancements

Internals

  • Check object type when loading pool items (b961e7a)

Package editor

  • Avoid dependency cycles when setting alternate package (2c3efac)

Editors (interactive manipulator)

  • Tell user about conflicting key sequences (b63a8c1)
  • Make zoom factor configurable (b5303b4)
  • Add action for entering click select mode (da13af6)
  • Use layer ranges for improved selection usability in work layer only selection filter mode (ed7d975)
  • The "add polygon vertex" tool supports adding more than one vertex per invocation (2129b75)
  • Only show apply rules button where applicable (22fdd70)
  • Bottom view also flips arrow keys (6a44ebe)
  • Rotate arbitrary tool uses reference angle (cccf0bd)
  • Current tool is ended before starting tools triggered externally (such as placing part) (cf70e2a)
  • Option for showing action bar if tool is active (8d46953)

Schematic editor

  • Support unsetting frame (f4491d3)
  • Use more sensible shift when placing power symbols on pins (4bc6da5)

Board editor

  • Router respects find grid key (70f2f85)

Pool update

  • Improved detection of cycles among pool items (6c8a184)

Preferences

  • Search for actions by substring rather than prefix (14aa7d7)

Pool manager

  • Only enable save button in Unit/Entity/Part editor if needed (994927c)
  • Use device authentication in remote tab (69c8b92)
  • Option for only showing pull requests of signed in user (eda6b5f)
  • It's now possible to update pull requests opened with the pool manager (b406423)
  • Log window in pool/project manager (6720349)

Bugfixes

Board Editor

  • DRC doesn't ignore barrel of PTH holes without pads (5490eae)
  • Use 3D model from alternate package if it has only one model (96cf811)
  • Parts window doesn't crash if component has no part (cbf9df3)
  • Update refdes in unplaced list when reloading netlist (d42e44e)
  • Don't load nonexistent nets in airwire filter (1a14686)
  • Router doesn't crash on pads with zero polygons (e43a830)

Canvas

  • Fix grid rendering on some platforms (8e457c1)

Editors (interactive manipulator)

  • Also save on exit if a tool is active (12bc268)
  • Make cursor work near head-up display (cae3fe2)

Schematic editor

  • Remove nonexistent connections in copy/paste (0ceaf2e)
  • Update symbol text placement while placing symbol (431f7e6)

Pool/project manager

  • Increase recent list refresh interval for reduced idle CPU usage (3570e85)
  • Catch errors in local pool update during pool upgrade (86e6476)

Part wizard

  • Update duplicate pad name warning after linking pads (c0d7756)
  • Properly check for .json suffix in filenames (6598cc3)

Changed behavior

Editors (interactive manipulator)

  • Only exit hover select mode if actually clicking one something (a17b450)

Board editor

  • Plane styles got renamed to reduce confusion (7ec340e)

Version 1.2.1

Bugfixes

  • Fix crash in router due to undefined behaviour (37882e0)

Misc

  • Makefile: allow gold linker to be disabled (6113054)

Version 1.2.0

Added features

  • Action bar for easy access to commonly-used actions (136cf03)
  • Bitmap picture import for schematic, package, board (6f7edd7)
  • KiCad symbol import (8f10971)
  • Searchable airwire filter window (e4842ca)
  • Color by net in board editor (3accc33)
  • Configurable in-tool key sequences (07283ce)
  • Grid supports non-zero offset and non-square spacing (9d96d21)
  • Gate swapping (47a5a6e)
  • Symbol to unit cross probing (d1f81db)
  • Layer pairs for switching layers after placing vias (176b8e2)
  • Distraction-free mode (111309c)
  • References to sheets in schematic (ca23d34)

Enhancements

  • Progressive model loading in 3D preview (10d52d7)
  • Show scale bar in preview canvas (edaa964)
  • Show placeholder in length tuning window (38044b2)
  • Show key sequences in context menu (3441ff5)
  • Selection qualifier is remembered when switching selection tools (9af4a65)
  • Selection is is remembered for each sheet (273c9bc)
  • Make minimum line width configurable (309e41f)
  • Search can do exact matching rather than substring search (266fe7a)
  • Show placeholder in unit editor (8fa9452)
  • Add link to pool in project manager (66e66c6)
  • Move Part wizard button to Parts tab (6ae9361)
  • Improve layout of unit and entity editors (810fdba, 0119cb8, 555f2ff)
  • Make sure symbol is in view when placing symbol (c61afdb)
  • Tool popover is resizable (1240fb8)
  • Hint for reloading the netlist in board editor (94e82b7)
  • Kicad package import handles circular pads (b5125e3)
  • View options menu (4e2fb33)
  • Package browser can sort by pad count (e53098d)
  • Show pin names in pads (4318650)
  • Show net names in vias (9adf7ca)
  • Deleting a track chain also deletes vias on the way (24e9904)
  • Kicad package import handles rectangular pads with round corners (6eb90ba)
  • Kicad package import handles obround pads (27d3d7e)
  • Place via tool asks for net rather than padstack (a1b0e49)
  • Draw polygon rectangle tool rememberes mode (092fec9)
  • Rules window position is stored for each editor type (ecb51e0)
  • Grid snaps to pixel grid for improved sharpness (017049d)
  • Update KiCad router to 5.1.6 (9e107c6)
  • Option for moving single tracks with router (956d8f5)
  • Add router settings window (bf00701)
  • Improve router performance (1f86cf3, 651475c, f68df85)
  • Button for copying logs to clipboard (7b9e8d8)
  • Work layer only display modes (703ea35)
  • Allow changing net while placing via (e04d8f3)
  • Make zero-width selectables smaller (6c8fd8e)
  • Show all polygon edges when selecting polygon (20b14f0)
  • Adjust plane priorities from property sidebar (1ad4b04)
  • Show planes in head-up display (ebb804f)
  • Don't show clarify selection menu if there's only one line/point among the selection candidates (ab058c3)
  • Make minimum selectable size and target snap radius configurable (96be373)
  • Add option for snapping to targets on schematic (bff1bbf)
  • Enable scale and rotate arbitrary tool in schematic (685469b)
  • Make length tuning window sortable by length (23136ad)
  • Length tuning tool uses reference from length tuning window (0d0340e)
  • Optionally bend non-orthogonal net lines when dragging (e0eb9e3)
  • Show more information when deleting a pool item (9d813cb)
  • Show infor bar with links to docs in pool manager (5c42c2a)

Bugfixes

  • Resize symbol tool respects quadrant the tool was started in (80b2b67)
  • Don't show empty groups in tool popover (3f6d528)
  • Fix copying frame of current sheet to new sheet (c437557)
  • Properly set button sensitivity in part editor (3009711)
  • Annotations: Fix gap filling for multi page components (75139e8)
  • Don't crash when deleting junction attached to bus ripper (bd1e9ae)
  • Ignore mechanical pads for alternate package compatibility check (5ee3cf6)
  • Don't draw connection lines from no-net junctions and mechanical pads (0328bd4)
  • Copy/paste copies tracks attached to pads (0328bd4)
  • Save no parametric data in part editor (c2795bb)
  • Fix pool update if not duplicating symbol (6eb90ba)
  • Properly implement target snap filter in tools (cc5c029)
  • Don't render invisible annotations (3816fd0)
  • Git tab doesn't crash if 3D model is used in more than one package (867e7ec)
  • Update catch-all warning in rules window when switching rules (2eb90b3)
  • Only show catch-all warning in rules window if actually required (2eb90b3)
  • Show pad name overlay at the right position of pad's bounding box center isn't at origin (ab0272d)
  • Fix pointer warping while panning (4f963c5)
  • Don't snap to invisible SMD pads (02539c7)
  • Avoid drive not ready errors on win32 (9b0d1e9)
  • Prevent errors during triangulation for 3D preview (7f1ba24)
  • Fade unhighlighted objects to background color rather than black in dim mode (edcdb97)
  • Refresh units after updating pool (2c6655a)
  • Avoid exception when loading keys for unavailable tool (182c967)
  • Avoid crashes by using json::at rather than [] (55505e6)
  • Use multiline text editor when placing text (bebd57a)
  • Use menu rather than cropped popover in parameter set editor (935c270)
  • Keep scrolling position in unplaced box (83ec1be)
  • Incrementally update pool when duplicating items (8a978bf)
  • Fix symbol pin UUID when changing a symbol's unit (494f19a)
  • Don't trigger drag when holding shift for pan (397757d)

Changed behavior

  • Move some actions to more appropriate groups (e29462e, e29462e)
  • Pool is updated when saving parts, not after closing the editor (e9305b3)
  • Widgets in unit/entity editor rows don't receive scroll events anymore (6e15a9e)
  • Center of polygon arcs and arcs gets projected onto the perpendicular bisector of start and end point to force constant radius (ae7b293)

Removals

  • Place package button is gone since the same functionality is available from the unplaced list (ac7d7c1)
  • Homegrown old router tool (079530f)

Misc

  • Combine low-content pages in preferences dialog (45770af)
  • Bump C++ version to C++17 (35faeda)

Version 1.1.1

Bugfixes

  • Makefile: don't build during make install (e991aff)
  • win32: regenerate gdk pixbuf loader cache during build (b7a128b)

Version 1.1.0

Added features

  • Pick&place export (bdb0af8)
  • Support replacing project metadata variables on board (c1293e2)
  • Airwire filter (145bcb1)
  • Support for touchscreen pan and zoom gestures (38ff613, ca1b832)
  • Support for "dot not populate" components (8cf32eb)
  • Action for selecting all vertices of a polygon (5d2571f)
  • Panelisation (188802f)
  • Outline layer in packages (03f29b5)
  • Automatic update of pool cache status and hint when placing out of date part (655c084)
  • Recursive git add from git tab in pool manager (ea5bcb4)
  • Tool for resizing symbols (21763df)
  • Tool for generating silkscreen (c314592)
  • Run board checks from python module (e47e579)
  • Tool for rounding off polygon vertices (b028dbe, 1b9a801)
  • Pool update from python module (7cd5cc2)
  • Package python module as docker image (3b047c3)
  • Export 3D rendering from python module (619b74b)

Enhancements

  • Show list of unplaced symbols in schematic (c237eeb)
  • Show list of unplaced packages in board (fabbd65)
  • Copy placement tool copies silkscreen (55a3226)
  • Make pool download cancellable and show download progress (fd943ae)
  • Save board display options (fd943ae)
  • Increase 3D model offset range to ±1000 mm (fd943ae)
  • Edit via tool can edit multiple vias at once (fd943ae)
  • Move project metadata such as title and author to netlist rather than having them in schematic and project file (ef6f647)
  • Show name of current document in interactive manipulator window title for pool items (72e4eec)
  • Show project title in window title of project manager, schematic and board interactive manipulator (71e69cc)
  • Show package in component head-up display (6214fa1)
  • Support degree sign (U+00B0) in texts (5875829)
  • Support plus/minus sign (U+00B1) in texts (3f90d8f)
  • Show status of selection filter, airwire filter and flipped view in status bar (162a679)
  • Make URLs in text clickable in head-up display (6fd2652)
  • Support for mirroring/rotating around cursor in move tool (455599e)
  • Search for MPNs and pin/pad names (819687c)
  • Support circular renumbering in renumber pads tool (6626585)
  • Place pin tool can place all remaining pins at once (97540ca)
  • Place pin tool shows preview of next autoplaced pin (8e5335f)
  • Show pin bounding box in symbol interactive manipulator (24a8f4b)
  • Selection filter dialog can be closed by escape key (c2b169c)
  • Add context menu to recent pools and projects for opening in file browser and deleting (040bdc7)
  • Only enable export buttons if all filenames are provided (eb2698b, 04de328, b3b51a7, 2325742, 9ac1c59)
  • Copy paste for bus labels and bus rippers in a schematic (3cc5375)
  • Make lists in git tab sortable (ed27677)
  • Courtyard generated by IPC footprint generator has courtyard parameter class (fa9b793)
  • Use tabular figures in STEP export window's progress view (2a5cc95)
  • Improve typesetting in dimension inputs (058fdb8)
  • Export STEP from python module (ea5e8b2)
  • Support file:// schema in Links (fedc6f6)
  • Add "Work layer only" checkbox to selection filter dialog (e464ec4)

Bugfixes

  • Fix copy placement tool for packages on the bottom side (53f3ac4)
  • Properly escape project/pool title in recent chooser (7777ada)
  • Fix crash when autoconnecting more than one pin per symbol (e0567f2
  • Reduce idle CPU usage in 3D preview (162a679)
  • Don't crash when encountering layer not found in layer display settings (c11c6d9)
  • Always remove autosaved files when exiting cleanly (ba881b8)
  • Avoid superfluous line breaks in head-up display (5f90eaa)
  • Increase interactive manipulator to project manager socket timeout to 5 seconds to prevent socket breakage on slow machines (ec08ec7)
  • Fix windows not getting raised on X11 and wayland when switching between project manager and interactive manipulator (50841e5)
  • Make it possible to select polygon vertices by hover select (3c86273)
  • Don't smash silkscreen again if it's already omitted (11a4c50)
  • Delete smashed texts if package is gone during startup or netlist reload (4f64739)
  • Apply smooth zoom setting to all canvases (025a46b, 1e6539a)
  • Connect bipoles the right way round when placing them on a net line (cf709a2)
  • Use WAL mode for pool databases to prevent crashes due to locked database (4cfbe5c)
  • Automatically set window title for export file choosers based on action (24281f3)
  • Copy/paste copies net lines attached to pins (41c5d1e)
  • Fix possible crash when copy/pasting diffpairs (6534e8f)
  • Fix STEP export for too short slot holes (9e3c594)
  • Update property panels after undo/redo (cb29541)
  • Use proper window title in open pool/project file chooser (93998c0)
  • Fix selection preview in selection clarification menu on win32 (db61b45)
  • Fix focus passing from project manager to editor on win32 (940aa17)

Changed behavior

  • Deleting the last gate's symbol of a component in a schematic will automatically delete the entire component without the option to keep the component with no symbols visible (f34e006)
  • Save interactive manipulator metadata such as layer visibility and grid spacing to a separate file such as board.json.imp_meta rather than to the board file itself (bb1aa8c)
  • Package interactive manipulator automatically deletes floating junctions and shows junctions only if selected (acd5c44)
  • Actions in tool popover are activated with a single click rather than a double click (576da12)

Removals

  • make all doesn't include horizon-pool and horizon-prj (12da19f)
  • Remove crontab -e style editors from horizon-pool (2edd506)

Misc

  • Refactor core (fd943ae)
  • Factor out search from core (819687c)
  • Make board rebuild a bit faster by storing a shallow copy (no expanded packages) of the board rather than a json serialisation for undo/redo (0ffb118)
  • Make mesh generation for 3D preview independent of UI (005ed87)

Version 1.0.0

No change log since this is the first versioned release.