Ultimaker / CuraEngine

Powerful, fast and robust engine for converting 3D models into g-code instructions for 3D printers. It is part of the larger open source project Cura.
https://ultimaker.com/en/products/cura-software
GNU Affero General Public License v3.0
1.68k stars 881 forks source link

Please start building each version before merging it to the main branch #2071

Closed grepwood closed 5 months ago

grepwood commented 5 months ago

We've barely had 5.7.0 for a month and from what I see 5.7.1 is about to be released according to https://github.com/Ultimaker/CuraEngine/actions/runs/8782671105 but what's this? The pipeline doesn't compile anything. So this probably explains why this project has so many build issues - the issues do not become apparent to the developers before merging into the master branch. The issues, just to name a few are:

Why is it like this?:

If the GitHub project would be configured to require that each PR must produce binaries, then the quality of the project would take a dramatic increase.

jellespijker commented 5 months ago

pr's to main and release branches have unit test, which means that the binaries for these are build, from that branch before they are merged.

furthermore due to CuraEngine being a deps of Cura, there are nightlies being build for our QA each day, both from main as the latest release branch.

Additional each ticket implemented by us has a corresponding build from the working branch made by our QA before merging to main or release.

Additional statistical analysis tools are also run on each open PR for gcode output, speed benchmarks, stress tests. in otherwords our CI/CT is rather comprehensive.

the issue you're referring to were simply the results of GitHub runner images being updated and missing certain system dependencies.

These have been adressed. closing this ticket because each relevant pr merged to main or a release branch is tested, compiled and build in various different ways

grepwood commented 5 months ago

Thank you, this clarifies. For anyone looking for those builds, where can they be found?

jellespijker commented 5 months ago

If you mean the stress tests, benchmarks and regression test these can be found here:

The unit tests themself are tied to the PR's adn require a :heavy_check_mark: before you can merge.

If you mean the actual binaries, these are upload to our jfrog artifactory for consumption by downstream projects (e.q. Cura) and are automaticaly used when doing a conan install for that project itself. If you tried that but you see that CuraEngine is still being build, that is because of ABI compatabilities, you're likely using an other architecture, os, compiler then we use in our build system our on our development systems