Files
OCCT/.github/CONTRIBUTING.md
Pasukhin Dmitry bec9558832 Documentation - Modernize for OCCT 8.0.0, GitHub workflow, and vcpkg build system (#1256)
- Migration from dev.opencascade.org/Mantis/Gitolite infrastructure to GitHub-native
  workflow (Pull Requests, Issues, GitHub Actions CI/CD).
- OCCT 8.0.0 upgrade guide with detailed notes on TCol* typedef deprecation, BSpline
  weight accessors, evaluation hierarchy refactoring (EvalD0/D1/D2/D3/DN), Handle
  out-parameter deprecation, Standard_Mutex → std::mutex, PLib value types, BRepGraph,
  TopoDS_TShape redesign, math wrapper deprecation, mesh factory registry, and more.
- Build system modernization: C++17 requirement, VS2022/GCC8+/Clang7+ compilers,
  vcpkg integration, CMake-driven documentation targets replacing legacy gendoc.
- Removed obsolete documentation: Mantis workflow, access levels, issue lifecycle,
  pre-7.1.0 upgrade history (archived at dev.opencascade.org/doc), in-tree Inspector
  and DFBrowser documentation, 3rd-party build guide (outsourced to vcpkg/upstream).
- INSTALL_DIR_RESOURCE directory now correctly described in the install tree layout.
- Obsolete BUILD_PATCH CMake option removed from documentation.
- Code examples modernized: occ::handle<> syntax, NCollection_*<T> templates, BRepAdaptor_Curve,
  IsDone() checks, null-handle guards, native C++ types over Standard_* typedefs,
  Append() over Appends(), correct variable names.
- Code block language tags: .php → .tcl for Tcl scripts, .glsl for shader listings.
- IGES translator: deprecated API calls updated (SetReadVisible + TransferRoots),
  IDT_ message API replaced with Message_Messenger, thread-safety warning added.
- DE_Wrapper: STEP thread-safety note (per-reader), IGES unsupported for concurrency.
- Removed Mantis tracker link from GitHub issue template config.
- Removed DFBROWSER and INSPECTOR entries from DrawPlugin resource file.
- Tcl reference URL updated (tcl.tk → tcl-lang.org).
2026-05-03 09:15:03 +01:00

3.6 KiB

Contributing to OCCT

Contribute Code

In order to contribute code to OCCT you must sign the Contributor License Agreement (CLA).

Steps to Submit Your Contribution

  1. Fork the repository on GitHub: https://github.com/Open-Cascade-SAS/OCCT
  2. Create a feature branch from an up-to-date master. Any descriptive branch name is fine.
  3. Develop your change following the OCCT Coding Rules. Format the source with clang-format using the .clang-format configuration shipped in the repository.
  4. Test locally. Run the existing DRAW test suite and OpenCascadeGTest tests; create a test case for the change when applicable.
  5. Open a Draft Pull Request against Open-Cascade-SAS/OCCT:master. CI/CD pipelines run on every push and report build, style and test results.
  6. Mark the PR Ready for Review once CI is green. A maintainer will review the change and request updates as needed.
  7. Address review feedback by pushing additional commits to the same branch; CI re-runs automatically.
  8. After approval the PR is merged (typically squashed) by a maintainer.

PR titles follow the convention Group - Summary, for example Modeling - Fix crash in BRepAlgoAPI_Fuse on null shapes.

See the Contribution Workflow and Git Guide for full details.

Contribute Ideas

Every big thing starts with an idea. We appreciate your vision on how to enhance Open CASCADE Technology. Share your thoughts on the OCCT development forum or GitHub Discussions, and submit bug reports or feature requests via GitHub Issues using the provided issue templates.

Contribute Knowledge

Know a lot about OCCT? You can help educate other OCCT users by writing OCCT-related articles or blog posts, creating samples, examples or tutorials, and even by writing a book about OCCT. If you would like us to share your content via official OCCT resources, please contact us.

Contribute Documentation and Tutorials

Do you have an idea on how to make OCCT documentation easier for new users or more exhaustive for professionals? Want to help with proofreading and technical writing? Translating OCCT documentation and materials into your native language is also very much appreciated. Submit documentation improvements as Pull Requests against files under dox/, or open a GitHub Issue describing what you would like to see improved.

Contribute to the Community

At any community interaction point, we value your support in starting forum topics or replying to other users' posts, joining Open CASCADE social networks, participating in GitHub or Stack Overflow projects, and just spreading the word about OCCT. Welcome to our community!