OCCT 7.8 Release Candidate: Updated Maintenance Workflow

Open Cascade is pleased to announce that the next Open CASCADE Technology (OCCT) minor release (version 7.8.0) is currently in preparation. You can find the "release candidate" sources for OCCT 7.8.0 under the BV7_8_0 tag  and CR0-780-beta branch in the OCCT repository (the branch and tag are not final, they are temporary and will be removed later or can be force updated). The final release is scheduled for December 4, 2023, and will include documentation updates.

Updated OCCT Maintenance Workflow

Starting with OCCT 7.8.0, we are making changes to the structure of OCCT release packages and the version control approach.

Details and Structure of Release Packages:

  • Platform: Linux, Windows (x64)
  • Compilers (Linux): gcc7.5, gcc 11.2
  • Compilers (Windows): vc141, vc143

Structure of Delivery (each point is a separately compressed package):

  • Source only (automatically created by git)
  • The most optimized all-inclusive dynamic build (CMake generated)
  • The most optimized all-inclusive static build (CMake generated)
  • Two versions of TKernel with different memory managers (shared version to modify memory manager)
  • 3rd-party (used for a full build, including qt5)
  • Documentation (the same as on our website)
  • Built samples (separate packages for quick review)

Version Control Update:

In the past, maintenance and minor OCCT releases were not on a single git graph. Each maintenance release was a specific branch with only Standard_Version.hxx updates, and the main graph was marked as the beta version of the next minor release.

Now, maintenance releases will be part of minor releases, and Standard_Version.hxx will be modified step by step. This change ensures a monolithic main branch with a clear release structure.

For each release, there will be one specific commit updating the version file. For example, from "7.8.0 beta" to "7.8.1". After that update, the next week's integration will contain a commit updating the same file from "7.8.1" to "7.8.2 beta".

Each release will have its tag in git.web and GitHub, with the format "VX_Y_Z" for the final version and "BVX_Y_Z" for the release candidate (X - major, Y - minor, Z - maintenance).

Benefits of 7.8.0

Open CASCADE Technology version 7.8.0 is a minor release with over 105 improvements and corrections compared to the previous minor release, 7.7.0.

  • Thread-safety STEP Exchange Interface Update: Improved import/export interface. To use the thread-safe interface, use Step parameters to avoid Static_Interface. For Reader, use "ReadFile and Perform" with specific parameters, and for Writer, use "Transfer and Perform" with specific parameters.
  • Global Fix for Material Storage in XBF: Ensures texture is stored as a byte buffer.
  • Revamped DataExchange Toolkit Structure: Components now have a "TKDE" prefix. The avaliable list: TKDESTEP, TKDEOBJ ,TKDEIGES ,TKDEGLTF ,TKDEVRML ,TKDEPLY ,TKDESTL
  • Enhanced DRAW Toolkit for Data Exchange: Components have a "TKXSDRAW" prefix. The avaliable list: TKXSDRAWSTEP, TKXSDRAWOBJ ,TKXSDRAWIGES ,TKXSDRAWGLTF ,TKXSDRAWVRML ,TKXSDRAWPLY ,TKXSDRAWSTL.
  • Introducing DE_Wrapper Interface: A single interface and workflow for all DataExchange components, with automatic CAD format detection and flexible parameter modification.
  • Plugin DE System: Components register formats into the global DE_Wrapper for real-time loading without recompilation.
  • Revitalized Memory Manager Workflow: Introduction of optimal memory managers (native, jemalloc, tbb) for increased performance, up to 40% for large files and up to 15% for small files.
  • Modernizing NCollection Containers: Low-level container optimizations with modern C++ features like "std::hash support" and "move semantic". This means most OCCT classes are now compatible as elements of STL or Boost hash maps (unordered_map, unordered_set, and multi).
Best regards,
Dmitrii, Technical Leader of OCCT.