PrzemoF wrote: ↑Sat Apr 18, 2020 9:58 am
Do we have someone from OCCT here? I just sent them a message pointing to this topic, but I've no idea if they normally check things like this.
The normal way to report some bug in OCCT is reporting it on Bugtracker:
https://dev.opencascade.org/index.php?q ... t_involved
The main problem here is providing steps to reproduce applicable to OpenCASCADE developers. These couldn't be instructions in FreeCAD, as they could be reproduced only by FreeCAD developers. Building and debugging FreeCAD is not fun for external developer due to tremendous list of dependencies, at least on Windows platform.
Bug in FreeCAD occurred on switching to another version of OCCT does not necessarily indicate OCCT being the root cause of the problem. It might be a bug in FreeCAD itself or in a script, like (ab)using OCCT algorithms in wrong way or relying on undocumented behavior of used algorithms, which has been changed.
Normally, steps should be:
- Tcl script for Draw Harness. Draw Harness is a Tcl interpreter with plugins coming with OCCT itself, used for testing, learning OCCT, development and prototyping. This is the perfect scenario, as Draw Harness available with every version of OCCT, known to every OCCT developer, and easily reproducible - it is also easily possible to traverse script within different OCCT releases (and bisect where regression occurred, for example).
- Self-sustained C++ code using OCCT algorithms. It will require more time to OCCT developer for reproducing problem, as it requires development environment, C++ code might contain its own bugs, and it is often not self-sufficient when quoted some lines from another application source code.
- Patches for OCCT fixing the problem. Steps to reproduce are normally required to integrate a bugfix, but if problem fixed by patch is more or less clear from patch itself, it could be also integrated (of course, this scenario considers that FreeCAD user or developer will debug the problem inside OCCT). Most bugs are difficult to fix, but there also numerous trivial issues that might be found and easy to fix.
- Steps within applications developed by Open Cascade like CAD Processor, CAD Assistant, DMU Reviewer, SALOME platform and others. This is indirect reporting, but if issue is reproducible in other OCCT-based applications, their developers will be able reporting it to OCCT developers properly. This is not much useful for FreeCAD, but still, some functionality can be easily reproduced (like importing STEP / IGES files). SALOME comes with Geometry module and Shaper allowing to create new geometry using OCCT algorithms and parametric sketcher.
There were some enthusiasts on FreeCAD forum worked on reporting OCCT bugs on OCCT Bugtracker, so they might help you in this quest. It should be noted, though, that reporting issue is only first step. OCCT developers are interested in improving quality of framework, but without commercial contract (Open Cascade provides Support Contracts specifically for helping with OCCT), the bugs are classified and processed in the order, which may take too long for specific bug.
As in any active project, OCCT has continuous backlog of reported bugs, with no chance to reach 0 level (you may easily collect some statistics from publicly available logs on Bugtracker). Some projects receive so many new bugs, so that they use even bots to automatically close bugs with no activity within some time (like 1 year), this is not currently used by OCCT. The point is, however, is that quality of reported bug directly affects how soon bug could be actually processed. For instance, performing analysis and checking if bug is a regression, and in which OCCT release it has been introduced increases priority of the bug. Bugs with poor description, and steps difficult to reproduce have high chance to be closed as not-reproducible or to vanish in backlog indefinitely due low interest from developers spending much time on such bug.
OCCT is an open source, and with some efforts and reasonable background, everybody may contribute to the project - and this is actually the best way to ensure the bug being fixed soon. Of course, some algorithms might be difficult to understand and debug, but OCCT developers may help external contributor to go into proper direction when see that user really tries to solve the problem.