Skip to content

Releases: pcb2gcode/pcb2gcode

v3.0.4

05 Apr 20:30
a5604c4

Choose a tag to compare

Mostly build system changes. One fix for circular apertures with a hole in them.

What’s Changed

  • chore(deps): update dependency geos to v3.14.1 (#892) @renovate[bot]
  • chore: Revert back to release drafter v6. (#895) @eyal0
  • build: ci.yml is a dependency of cmake's configuration. (#893) @eyal0
  • ci: Renovate geos version. (#891) @eyal0
  • test: Refactor the warning about skipping integration tests. (#890) @eyal0
  • test: Explain to the user how to regenerate expected outputs. (#889) @eyal0
  • test: Add target for regenerating expected outputs. (#888) @eyal0
  • chore: Ignore profraw and pycache. (#886) @eyal0
  • refactor: Unify usage of pcb2gcode_add_integration_script_test. (#887) @eyal0
  • Always add the integration tests but disable them as needed. (#883) @eyal0
  • test: Don't write the svg from the voronoi_tests by default. (#882) @eyal0
  • feat: --dry-run argument to python tools. (#880) @eyal0
  • chore: Pin gerbv to v2.13.0 (#879) @eyal0
  • chore(deps): update release-drafter/release-drafter action to v7 (#876) @renovate[bot]
  • chore(deps): update actions/download-artifact action to v8 (#875) @renovate[bot]
  • Use gcov version that matches GNU compiler. (#866) @eyal0

🪲 Bug Fixes

🔨 Build

  • build: Warn when ci.yml is not found. (#894) @eyal0
  • build: Add 'Chores' section to release drafter config (#873) @eyal0
  • build: Treat warnings as errors. (#812) @eyal0
  • build: Use pcb2gcode_add_test_executable for gerberimporter_tests. (#862) @eyal0
  • build: Disable multi-threading for coverage. (#863) @eyal0
  • build: Use newer CodeCoverage.cmake. (#860) @eyal0
  • build: Add tests/CMakeLists.txt for tests. (#853) @eyal0
  • build: Always export compile commands. (#854) @eyal0
  • build: Add clang coverage (#840) @eyal0
  • build: Don't try to remove compile flags. (#845) @eyal0
  • build: Use a shared object for pcb2gcode. (#843) @eyal0

✅ Testing

  • ci: Fix the weekly CI run. (#874) @eyal0
  • ci: Enable Renovate for gerbv version. (#870) @eyal0
  • ci: Add g++-10 compilation. (#864) @eyal0
  • test: Add unit_test label to unit tests. (#861) @eyal0
  • test: Put the error tests from the integration tests into cmake. (#857) @eyal0
  • test: Put passing integration tests into ctests. (#856) @eyal0
  • ci: Use gerbv from the gerbv repo. (#797) @eyal0
  • test: Run ctest in parallel when collecting coverage. (#849) @eyal0
  • ci: Upgrade upload-artifact action. (#844) @eyal0
  • test: Put fix_up_expected into a separate file. (#846) @eyal0
  • ci: Upgrade paths-filter action. (#839) @eyal0
  • ci: Upgrade checkout action. (#838) @eyal0
  • ci: Add clang compilation. (#837) @eyal0
  • ci: Upgrade to newer coveralls GitHub action. (#836) @eyal0

♻️ Refactoring

  • refactor: Combine all the generated cmake into one file. (#867) @eyal0
  • refactor: Use boost optional instead of a boolean. (#848) @eyal0
  • refactor: Move all tools to tools directory. (#834) @eyal0

🧹 Chores

v3.0.3

11 Mar 16:44
7e757ac

Choose a tag to compare

Mostly a lot of changes to the build process including changing from autotools to cmake.

What’s Changed

✨ Features

🪲 Bug Fixes

  • fix: GerberImporter rule of five. (#820) @eyal0
  • fix: Install boost unit test correclty in ci. (#814) @eyal0

🔨 Build

  • build: Increment version to 3.0.3. (#835) @eyal0
  • build: Check integration_test imports in cmake. (#830) @eyal0
  • build: Use boost unit test as library instead of header-only compile. (#807) @eyal0
  • build: Add option to use ccache for compilation. (#806) @eyal0
  • build: Add autolabelling to release-drafter. (#808) @eyal0
  • build: Categorize commits in Release Notes. (#805) @eyal0
  • build: use pull_request_target for release-drafter. (#802) @eyal0
  • build: Use release-drafter to make releases. (#799) @eyal0
  • build: Use cmake for build. (#791) @eyal0

✅ Testing

  • ci: Run examples for Windows and Linux. (#833) @eyal0
  • ci: Fix examples run and add option to force examples. (#826) @eyal0
  • ci: Skip integration test based on Boost and GEOS versions (#829) @eyal0
  • ci: Allow using the ci cache even if ci.yml is changed if the use-ci-cache label is on the PR. (#823) @eyal0
  • ci: Show the SHA commit for cloned repos. (#817) @eyal0
  • ci: Add artifacts into the release draft. (#819) @eyal0
  • ci: Ignore ci caches if ci yaml has changed. (#818) @eyal0
  • ci: Remove release drafter from ci.yml. (#816) @eyal0
  • ci: Add ci label for release drafter. (#811) @eyal0
  • test: Remove SKIP_GERBERIMPORTER_TESTS_PNG and use command line flag --write-pngs. (#801) @eyal0
  • ci: Only use pull_request_target. (#809) @eyal0
  • test: Remove SKIP_GERBERIMPORTER_TESTS. (#800) @eyal0
  • ci: Add option to disable loading cache or ccache. (#798) @eyal0
  • ci: Use UCRT64 instead of MINGW64. (#796) @eyal0
  • ci: Always run gerberimporter_tests. (#795) @eyal0

♻️ Refactoring

  • refactor: Stop using in_place in integration tests. (#825) @eyal0
  • refactor: Remove unused include. (#821) @eyal0
  • refactor: Remove obsolete autotools files. (#810) @eyal0

v3.0.2

03 Mar 05:10
de22e94

Choose a tag to compare

Bug Fixes

  • Tighten merge_near_points distance threshold. #785 (eyal0)

Builds

v3.0.1

01 Mar 02:47

Choose a tag to compare

Builds

What's Changed

  • ci: Don't use random, use run_id and run_attempt. by @eyal0 in #635
  • ci: Use gerbv/main instead of eyal0/master. by @eyal0 in #638
  • fix: Use spikes_keep_in for regular spikes, too. by @eyal0 in #637
  • Report failure to write file by @eyal0 in #640
  • ci: Upgrade to node16 by @eyal0 in #644
  • ci: Use new GITHUB_OUTPUT by @eyal0 in #643
  • ci: Upgrade g++ from 8 to 10. by @eyal0 in #645
  • ci: Build with multiple versions of geos by @eyal0 in #647
  • ci: Use a newer coveralls action by @eyal0 in #648
  • test: Remove parts of the project-controller for performance. by @eyal0 in #654
  • feat: Sort drills by @eyal0 in #657
  • Update Windows build instructions in README by @sybrenstuvel in #658
  • style: constexpr points_per_circle by @eyal0 in #662
  • fix: Start tool indicies at 1. by @eyal0 in #664
  • fix: Use the merged paths for making eulerian paths. by @eyal0 in #670
  • ci: Recompute integration tests for geos bf18ba807. by @eyal0 in #676
  • fix: Always perform at least one step of milling. by @eyal0 in #678
  • ci: Add workflow_dispatch. by @eyal0 in #679
  • Don't generate "SEE ALSO" Texinfo boilerplate in man page by @masto in #685
  • Support POLYGON in wkt_to_svg by @eyal0 in #689
  • ci: Show pcb2gcode version by @eyal0 in #690
  • ci: Various fixes to make CI work again. by @eyal0 in #715
  • fix: Obey nom6 for milldrilling. by @eyal0 in #712
  • test: Make the expectations for the gerberimporter_tests tighter. by @eyal0 in #717
  • feat: Make circles less "chunky" by using more segments in their polygonal approximation. by @eyal0 in #716
  • ci: Upgrade to download-artifact@v4. by @eyal0 in #718
  • fix: Handle degenerate rings in gerberimporter. by @eyal0 in #721
  • Enable windows build in CI by @mar0x in #730
  • ci: Fix release artifacts by @mar0x in #731
  • Fix typo in pacman command for autotools by @yuchuariGMB99 in #732
  • ci: Windows latest boost build fix by @mar0x in #734
  • build: Modernize autoconf. by @eyal0 in #737
  • build: Add --enable-debug flag to configure. by @eyal0 in #738
  • test: Add check_eulerian_paths function by @eyal0 in #739
  • refactor: Add eulerian_paths::path_manager by @eyal0 in #740
  • test: fix eulerian_tests. by @eyal0 in #742
  • ci: Put integration tests back into ci. by @eyal0 in #744
  • feat: Test gerberimporter for correctness only in debug mode. by @eyal0 in #746
  • refactor: Move eulerian_paths logic from hpp to cpp. by @eyal0 in #747
  • New eulerian algorithm by @eyal0 in #743
  • ci: Only run all the examples when doing a scheduled run. by @eyal0 in #755
  • ci: Upgrade to actions/cachev5. by @eyal0 in #756
  • ci: Show version after installing a tool. by @eyal0 in #757
  • fix: Use a consistent random number generator. by @eyal0 in #753
  • ci: Include integration tests as part of coverage. by @eyal0 in #752
  • ci: Only run the quick integration tests when checking coverage. by @eyal0 in #758
  • ci: Gather coverage for modern g++, too. by @eyal0 in #759
  • fix: Have invert-gerbers also properly mask the outline. by @eyal0 in #750
  • ci: Use cache for build. by @eyal0 in #760
  • ci: Use the latest valgrind. by @eyal0 in #761
  • Faster eulerian score by @eyal0 in #771
  • refactor: Remove shared_ptr where possible. by @eyal0 in #775
  • feat: Add sanity-checks flag. by @eyal0 in #772
  • perf: Improve performance with multithreading. by @eyal0 in #777
  • feat: Make path_finding re-entrant. by @eyal0 in #778

New Contributors

Full Changelog: v2.5.0...v3.0.1

v2.5.0

12 Sep 16:54
368f098

Choose a tag to compare

Features

Bug Fixes

  • Stop using CascadedUnion due to deprecation in geos 3.10 #594 (eyal0)
  • Check for deprecated rsvg_handle_render_cairo #595 (eyal0)
  • Specific boost::make_optional because it clashes with std::make_optional #595 (eyal0)
  • rsvg_handle_get_dimensions deprecated, use rsvg_handle_get_intrinsic_size_in_pixels instead #595 (eyal0)
  • don't warn when rounding by less than 1 micro-inch (#597) #597 (Martin Schuster)
  • Don't round bits that will be milldrilled. #632 (eyal0)

Styles

  • Remove unnecessary flags from AM_CPPFLAGS #595 (eyal0)
  • Whitespace in ExcellonProcessor::optimize_bits #632 (eyal0)

Tests

  • Use absolute size in gerberimporter_tests SVG #595 (eyal0)
  • Add drills larger than the min-milldrill-hole-diameter #632 (eyal0)

Builds

Continuous Integration

  • Check gerbv version for updates #589 (eyal0)
  • Temporarily disable Windows CI until it is fixed #598 (eyal0)
  • Display the build info a little earlier in CI #595 (eyal0)
  • Use bash_profile instead of GITHUB_ENV #595 (eyal0)
  • Re-enable Windows in CI #595 (eyal0)
  • Ignore warnings from gtk for windows #595 (eyal0)
  • Update to libgeos 3.11 #595 (eyal0)
  • Fix release environment variables #599 (eyal0)
  • Don't brew unlink parallel #601 (eyal0)
  • Remove specific boost version from macos and windows builds #614 (eyal0)
  • Temporarily disable macos and windows CI. #615 (eyal0)
  • Check the geos commit hash #617 (eyal0)
  • Re-enable windows build #616 (eyal0)
  • Use fewer CPUs on Windows #621 (eyal0)
  • Only package release if the file exists. #634 (eyal0)

Commits

  • dba66d2: Fix "Can't compare with units and without." exception (Nicola Di Lieto) #584
  • a266da6: Fix autoleveller output format (Nicola Di Lieto) #583
  • 45b5bf7: Delete ISSUE_TEMPLATE.md (Eyal)
  • bff0304: Update macos boost to 1.76 (Eyal) #585
  • 2f226e6: add a link to insolante in the readme (jacen92) #586
  • 5702c77: Use geos3.10 in CI. (eyal0) #596
  • fe3ca6a: Ignore warnings from gtk for macos (eyal0) #595
  • 30183cb: isystem for all system includes (eyal0) #595
  • d9bbcfb: Add build dependencies to windows CI build (eyal0) #602
  • 0da1d07: Add missing G53 for absolute zchange in milldrill. (François-Xavier Bourlet) #611
  • f7b93da: don't include .inl files (eyal0) #617
  • fc775ca: updated man page + included script to automatically generate man page (Bernhard B) #623
  • 9a16351: Don't check zsafe against zchange when zchange-absolute (Pierre Clerissi) #625
  • 2e24e54: Need program_options for tests (eyal0) #628
  • 407316e: Make gtk a system header, too, on linux (eyal0) #628
  • 68d7356: Test for geos++ specifically (eyal0) #628
  • 316a8aa: Temporarily disable windows. (eyal0) #628
  • e09f31c: Split up the release steps by OS. (eyal0) #629
  • b980508: Increment version to 2.5.0 (eyal0) #633

What's Changed

  • Fix "Can't compare with units and without." exception by @eyal0 in #584
  • Fix autoleveller output format by @eyal0 in #583
  • Update macos boost to 1.76 by @eyal0 in #585
  • Introduce Insolante in the readme by @jacen92 in #586
  • ci: Check gerbv version for updates by @eyal0 in #589
  • fix: Stop using CascadedUnion due to deprecation in geos 3.10 by @eyal0 in #594
  • Use geos3.10 in CI. by @eyal0 in #596
  • ci: Temporarily disable Windows CI until it is fixed by @eyal0 in #598
  • ci: Use path-inherit and simplify msys2 shell by @eyal0 in #595
  • ci: Fix release environment variables by @eyal0 in #599
  • fix: don't warn when rounding by less than 1 micro-inch by @schumar in #597
  • ci: Don't brew unlink parallel by @eyal0 in #601
  • Add autoconf to windows CI build by @eyal0 in #602
  • feat: Support multiple config files by @eyal0 in #607
  • Add missing G53 for absolute zchange in milldrill. by @eyal0 in #611
  • ci: Remove specific boost version from macos and windows builds by @eyal0 in #614
  • build: new boost.m4 by @eyal0 in https://...
Read more

v2.4.0

11 Apr 05:38

Choose a tag to compare

Bug Fixes

  • Don't use path finding for the outline #574 (eyal0)
  • Use backtracking limit in path_finding #573 (eyal0)
  • Close unclosed contours #578 (eyal0)

Documentation

  • Add images to demonstrate silk lines (eyal0)

Tests

  • Add a new example board #575 (eyal0)
  • Add example_board_new to integration tests #575 (eyal0)
  • add test case for mirror y #572 (eyal0)
  • Improve coverage for mirror-yaxis option #572 (eyal0)

Commits

  • [df7f7e4]: Add option to apply mirroring to the Y axis (vicencb) #572
  • [86788c5]: Merge branch 'example_board_new' into HEAD (eyal0) #572
  • [b8be116]: Fix typo (Eyal)
  • [b3f55dd]: Update issue templates (Eyal)
  • [ed67bef]: Increment version to 2.4.0 (eyal0)

v2.3.1

08 Apr 05:27

Choose a tag to compare

Bug Fixes

  • Use a spike mask instead of line intersections. #561 (eyal0)

Performance Improvements

  • Only mask when there's no mask if no voronoi #560 (eyal0)
  • Use shrunken voronoi to decrease milling #555 (eyal0)

Continuous Integration

  • Remove valgrind from clang runs #559 (eyal0)
  • Use halt soon instead of halt now #558 (eyal0)
  • Use eyal0/valgrind #564 (eyal0)
  • Coveralls requires flag-name for parallel ci now #569 (eyal0)
  • Fix cache saving using restore-key #568 (eyal0)
  • Remove gcc 7 from the CI #570 (eyal0)
  • autoconf is already installed on macos #570 (eyal0)

Commits

  • [5784c09]: Use unique_ptr for gerbv_project_t (eyal0) #551
  • [3596f54]: Revert "ci: Remove valgrind from clang runs" (eyal0) #565
  • [4ee5fe4]: Set theme jekyll-theme-cayman (Eyal)
  • [b05c958]: Set theme jekyll-theme-cayman (Eyal)
  • [f96206c]: Set theme jekyll-theme-merlot (Eyal)
  • [cf9c618]: Set theme jekyll-theme-time-machine (Eyal)
  • [0f1f926]: Set theme jekyll-theme-minimal (Eyal)
  • [e34fc0e]: Increment version to 2.3.1 (eyal0)

v2.3.0

19 Feb 04:27

Choose a tag to compare

The new path-finding is faster but it also does more. For most designs you'll see a speed-up and some milling with lots less retracting. Only for very large designs the processing might slow down. Either way, you'll more than make up for it in time saved while milling.

Features

  • Perform path finding on all milling #540 (eyal0)

Styles

Code Refactoring

Performance Improvements

Tests

Commits

v2.2.3

13 Feb 02:57

Choose a tag to compare

Many performance improvements have improved performance since v2.2.2 by about 57%.

Code Refactoring

  • Add common to_geos and from_geos functions #528 (eyal0)
  • Remove temporary variable in offset_polygon #534 (eyal0)
  • Remove all usage of new #538 (eyal0)
  • Use test tables for gerberimporter tests #544 (eyal0)

Performance Improvements

  • Use sum and symdiff in gerberimporter #531 (eyal0)
  • Do fewer polygon ops #534 (eyal0)
  • Don't buffer twice to find the thermal offset #534 (eyal0)
  • to_geos/from_geos without using WKT #541 (eyal0)

Tests

Continuous Integration

  • Use nested groups for examples #539 (eyal0)
  • Halt examples on first failure #542 (eyal0)
  • Show errors when check or check-valgrind fail #543 (eyal0)

Commits

  • [b6d9455]: Use a box_type instead of {min,max}_{x,y} (eyal0) #515
  • [19888e1]: Remove unused offset calculations (eyal0) #517
  • [a0f7eec]: Ignore empty outline files (eyal0) #516
  • [87f209c]: Refactor PathSurface to compute fewer vertices (eyal0) #519
  • [3b3855f]: Save a step in PathFindingSurface constructor (eyal0) #520
  • [773db83]: Use the default comparison for point_type_fp in PathFindingSurface (eyal0) #520
  • [9421e60]: Use a faster and more accurate intersection algorithm (eyal0)
  • [dd03ed1]: Use geos for buffering of linestring (eyal0)
  • [5bbf9e3]: Don't merge_multi_draws twice. (eyal0) #525
  • [070576e]: Remove unused function. (eyal0) #525
  • [7468f15]: Clean up some invalid operator combinations. (eyal0) #529
  • [246bc23]: Use xor in simplify cutins (eyal0) #530
  • [f4a4855]: Redirect output of time in CI (#533) (Eyal) #533
  • [c082810]: Upgrade CI to Geos 3.9.0 (eyal0) #532
  • [3ff78b4]: Move to_geos and from_geos to geos_helpers (eyal0) #531
  • [0adc623]: Add sum and symdiff functions for vectors (eyal0) #531
  • [2ab7ea7]: Use sum in moire and step and repeat (eyal0) #531
  • [62e3d7f]: Increment version to 2.2.3 (eyal0)

v2.2.2

17 Jan 19:44

Choose a tag to compare

Commits