Conversation
|
Okay, good work! Let's see how CI goes. I would like to maintain Werror for which ever builds that we can. It stopped working properly with clang because clang is not properly respecting the difference between I wonder why is the error in the oval. The oval is a pretty easy test so I wouldn't expect an error in there... When there is an error, we can emit the .png file showing the error. I don't have a windows platform. If the error is only in Windows, I'd like to know what the error is! I will look at this after CI completes. |
Thank you!
It is possible to make -Werror dependent on the platform/compiler. There are the same warnings in boost with recent g++ on Ubuntu: https://github.com/pcb2gcode/pcb2gcode/actions/runs/19444891796/job/55641874471?pr=730
Agree, this is pretty strange. The thing is the error rate is lower than expected, but it is lower for more than 0.1%: I'm also curious about this and happy to assist you to discover the reason if you give me little a glue how to enable extra data collection. |
|
Oh, are you able to compile the windows version on your computer? Cool! There are some environment variables that you can set to inhibit or enable the creation of .png files in the gerberimporter test. Those png files create the "comparison". I think that it's black where both grebv and pcb2gcode agree that a pixel is not part of a shape. Purple where they both agree that it is part of a shape, and then red where only one reports it and green for the other. Something like that. It's like a diff of two monochromatic png files. Looking at that might give insight. Or maybe we just don't really care. Drawing an oval is hard and you get all these pixels on the boundary that don't agree. Maybe that test just needs to be a little looser to accept that oval drawing will not provide the same results with different versions of Cairo. As for the boost warnings: they were always there. It's just that the compiler's isystem flag causes them to be ignored. The correct operation of the isystem flag broke in a release of a new compiler. I don't recall if it was clang or g++. So I think that we should just disable Werror for that specific version of that specific compiler. |
|
g++ 13 broke the flag, I think. There are multiple sightings of this online. |
Although I'm able to build on local windows machine, I prefer to modify CI workflow. I've made this changes:
and got builds for ubuntu and windows (available here). As far as I understand from both gerberimporter_tests.log, the results are exactly the same on ubuntu and windows, both wide_oval.gbr.png files have the same md5. But BOOST_CHECK_CLOSE() triggers error only on windows. Most likely this is caused by boost version difference, I will check this later. I'll try to update error rate and enable wide_oval back. |
|
Does your work need a merge with the master branch? |
I'm not insist you merge it on master. Let me know if I should change the PR or create another one. I have started my changes in my 'master' and then create PR with it. Since I've made a changes according to your comments, I've made the PR draft to not bother you. Once CI finishes I'll make it 'ready' again. UPD: it seems I've answered wrong question, sorry. I've re-based my commits over the master branch. |
This is required for windows build. gerbv.h already contains extern "C" inside.
| boost: 1_66 | ||
| compiler: g++-10 | ||
| geos: 'main' | ||
| code_coverage: "--enable-code-coverage" |
There was a problem hiding this comment.
Let's put these lines back, please. boost can be latest and geos can be latest, too.
Right now, the CI is failing because none of the CI runs are exporting any code coverage information. But everything else passes, that's great!
There was a problem hiding this comment.
I've changed g++ to latest as well, if you don't mind.
There was a problem hiding this comment.
FYI: Ubuntu-24.04 used in github actions. There is lcov-2.0 in Ubuntu-24.04 Noble repository. It is incompatible with lcov-1.16. To use lcov-2.0 it requires to do more changes than simple installation (take 1) and command line update (take 2).
There was a problem hiding this comment.
Ah, okay. Well, good to know. This can be fixed in a different PR one day.
Yes, it was deliberately changed in gcc 12 - see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119388 . There is the trick in configure.ac, to make boost system. And similar more complex subst for gerbv. Recently I was trying to add mingw64 package for gerbv and found this trick is not always works in windows world. |
| boost: 1_66 | ||
| compiler: g++-10 | ||
| geos: 'main' | ||
| code_coverage: "--enable-code-coverage" |
There was a problem hiding this comment.
Ah, okay. Well, good to know. This can be fixed in a different PR one day.
|
It seems like everything is passing. Ready to merge? |
Yes, please. |
|
Thank you for mention me in Pre-Release! It looks like a personal release now :) Could you please attach the latest windows binary there. Just checked CI, this should be done automatically, but failed. Maybe I can fix this as well... |
|
Done!
The release note is created automatically. 😁
…On Wed, Nov 26, 2025, 13:20 Max ***@***.***> wrote:
*mar0x* left a comment (pcb2gcode/pcb2gcode#730)
<#730 (comment)>
Thank you for mention me in Pre-Release
<https://github.com/pcb2gcode/pcb2gcode/releases/tag/latest>! It looks
like a personal release now :)
Could you please attach the latest windows binary there.
—
Reply to this email directly, view it on GitHub
<#730 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAA2Z4PIF4VNEZ2PMFISUHD36YDRRAVCNFSM6AAAAACMLAUS4CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTKOBTGA4DGOBWG4>
.
You are receiving this because you modified the open/close state.Message
ID: ***@***.***>
|
In pcb2gcode#730, we accidentally didn't update the integration tests to run when code coverage was enabled. This caused us to lose a bunch of coverage. We'll reverse this. We'll also try to be broader about when we running integration tests, for stricter testing.
In pcb2gcode#730, we accidentally didn't update the integration tests to run when code coverage was enabled. This caused us to lose a bunch of coverage. We'll reverse this. We'll also try to be broader about when we running integration tests, for stricter testing.
Enable windows build in CI
wide_oval.gbr test disabled because calculated error is significantly less than test one.
Compilation flag -Werror removed because there are uninitialized variable warnings inside boost.